파이썬의 변수 할당은 동적 할당으로
메모리 RAM에 변수 공간을 만들어 기록해 미리 변수방을 만드는 방식을 사용하지 않는다.
할당안된상태 (= 값이 없는경우) 에러.
python_logic 프로젝트 파일생성
(선택) conda deactivate
python -m venv venv
venv\Scripts\activate


주석
# 주석
"""
여러줄 주석
"""
print()


, 로 변수할당을 짧게 할 수 있음

sep으로 나눠 출력

순차적 값 대입


swap 공식없이 간결한 값 교환 가능

복합대입연산자

이때 나누기의경우 결과가 실수형이다.
정수를 원할경우 //.


제곱

줄바꿈

식별자: 개발자가 지어주는 이름
변수: 메모리 값에 기록하는 공간
함수: 반복되는 코드를 분리작성
모듈: 함수를 모아 놓은 파일
클래스: 객체지향
파이썬은 변수 대소문자 구별한다.

_를 제외한 특수문자는 변수에 들어갈 수 없다.


import keyword로 예약어를 확인 할 수 있다.
len으로 몇개인지,
iskeyword로 예약어인지 확인한다.

input() 키보드 입력 받기, 이때 모든 input()는 문자열이다.

int() 등으로 타입변환을해 숫자를 계산 할 수 있다

포맷스트링
f'str' 문자열 안에 {} 로 변수를 출력할 수 있다.

format(), 순서대로 값을 대입한다. 다만 갯수가 반드시 일치할것.
{} 안에 index를 활용할 수 있다.
:.1f, :.2f 등으로 소숫점 자리를 제한하거나 지정할 수 있다.





위를 활용한과제
'''
신상 정보를 입력받아, 각 변수에 저장하시오. 변수명은 임의대로 지정함
이름(str), 나이(int), 성별(str, 남|여 로 입력), 키(float), 몸무게(float)
각 변수의 값을 아래의 형식으로 출력하는 코드를 작성하시오. 3가지 방식 모두 사용해 봄
홍길동은 27세 남자이고, 키는 178.5cm 몸무게는 72.0kg 입니다.
'''
name = input('이름을 입력하세요: ')
age = int(input('나이를 입력하세요: '))
gender = input('성별을 입력하세요 (남/여): ')
height = float(input('키를 입력하세요 (cm): '))
weight = float(input('몸무게를 입력하세요 (kg): '))
print(name, '은', age, '세', gender, '이고, 키는', height, 'cm 몸무게는', weight, 'kg 입니다.')
print(f'{name}은 {age}세 {gender}이고, 키는 {height}cm 몸무게는 {weight}kg 입니다.')
print('{}은 {}세 {}이고, 키는 {}cm 몸무게는 {}kg 입니다.'.format(name, age, gender, height, weight))

'''
키보드로 값을 입력받아 요구조건대로 처리하고 출력되게 코드를 작성하시오.
기본값을 가진 변수 생성 할당해 둠 :
total_point = 12500
입력 내용 :
고객 이름 : 황지니 (custom_name : str)
결재 금액 : 3000000 (price : int)
처리 내용 :
결재금액의 5 % 를 포인트(point : float)로 처리
계산된 포인트를 누적포인트(total_point)에 증가 연산 처리함00
출력 내용 :
황지니 고객님의 사용금액은 3000000 원, 발생 포인트는 15000
현재 이용하실 수 있는 누적포인트는 162500 점입니다.
'''
total_point = 12500
custom_name = input('고객 이름을 입력하세요: ')
price = int(input('결재 금액을 입력하세요: '))
point = price * 0.05
total_point += point
print(f'{custom_name} 고객님의 사용금액은 {price} 원, 발생 포인트는 {point:.0f}')
print(f'현재 이용하실 수 있는 누적포인트는 {total_point:.0f} 점입니다.')
print('{} 고객님의 사용금액은 {} 원, 발생 포인트는 {:.0f}'.format(custom_name, price, point))
print('현재 이용하실 수 있는 누적포인트는 {:.0f} 점입니다.'.format(total_point))

파이썬 내장함수
Built-in Functions
The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...
docs.python.org
# 파이썬 내장함수
# https://docs.python.org/ko/3/library/functions.html
# abs() : 절대값을 반환하는 함수
print("abs(): 절대값반영 (예)", abs(-5)) # 5
# all() : 모든 요소가 참인지 확인하는 함수
print("all(): 모든 요소가 참인지 확인 (예)", all([True, True, False])) # False
# any() : 하나라도 참인 요소가 있는지 확인하는 함수
print("any(): 하나라도 참인 요소가 있는지 확인 (예)", any([False, False, True])) # True
# ascill() : 객체를 아스키 코드로 변환하는 함수
print("ascii(): 객체를 아스키 코드로 변환 (예)", ascii('가')) # '\uac00'
# bin() : 정수를 이진수 문자열로 변환하는 함수
print("bin(): 정수를 이진수 문자열로 변환 (예)", bin(10)) # '0b1010'
# bool() : 객체를 불리언 값으로 변환하는 함수
print("bool(): 객체를 불리언 값으로 변환 (예)", bool(0)) # False
# byte() : 객체를 바이트 객체로 변환하는 함수
print("byte(): 객체를 바이트 객체로 변환 (예)", bytes('가', 'utf-8')) # b'\xea\xb0\x80'
# chr() : 아스키 코드 값을 문자로 변환하는 함수
print("chr(): 아스키 코드 값을 문자로 변환 (예)", chr(97)) # 'a'
# dict() : 객체를 딕셔너리로 변환하는 함수
print("dict(): 객체를 딕셔너리로 변환 (예)", dict(a=1, b=2)) # {'a': 1, 'b': 2}
# dir() : 객체의 속성이나 메서드 목록을 반환하는 함수
# 빈 리스트를 넣으면, 파이썬은 "리스트라면 기본적으로 가지고 있는 기능(메서드)들"을 리스트 형태로 반환한다.
print("dir(): 객체의 속성이나 메서드 목록 반환 (예)", dir([])) # 리스트의 메서드 목록
# divmod() : 두 숫자를 나눈 몫과 나머지를 튜플로 반환하는 함수
print("divmod(): 두 숫자를 나눈 몫과 나머지를 튜플로 반환 (예)", divmod(10, 3)) # (3, 1)
# enumerate() : 반복 가능한 객체를 인덱스와 함께 반환하는 함수
print("enumerate(): 반복 가능한 객체를 인덱스와 함께 반환 (예)", list(enumerate(['a', 'b', 'c']))) # [(0, 'a'), (1, 'b'), (2, 'c')]
# eval() : 문자열로 표현된 파이썬 식을 실행하는 함수
print("eval(): 문자열로 표현된 파이썬 식을 실행 (예)", eval('1 + 2 * 3')) # 7
# exec() : 문자열로 표현된 파이썬 코드를 실행하는 함수
code = "new_var = 10 + 20"
exec(code)
print("exec(): 문자열로 표현된 파이썬 코드를 실행 (예)", new_var) # 30
# filter() : 반복 가능한 객체에서 조건에 맞는 요소를 걸러내는 함수
numbers = [-2, -1, 0, 1, 2]
filtered_numbers = filter(lambda x: x > 0, numbers)
print("filter(): 반복 가능한 객체에서 조건에 맞는 요소 걸러내기 (예)", list(filtered_numbers)) # [1, 2]
# float() : 객체를 부동 소수점 숫자로 변환하는 함수
print("float(): 객체를 부동 소수점 숫자로 변환 (예)", float('3.14')) # 3.14
# format() : 문자열을 포맷하는 함수
print("format(): 문자열 포맷 (예)", format(3.14159, '.2f')) # '3.14'
# frozenset() : 객체를 변경 불가능한 집합으로 변환하는 함수
soft_set = frozenset({1, 2, 3})
# soft_set.add(4) # 에러: frozenset은 변경할 수 없음
# globals() : 현재 전역 심볼 테이블을 딕셔너리로 반환하는 함수
# 지금 내 파이썬 프로그램이 기억하고 있는 모든 변수, 함수, 임포트한 라이브러리의 목록을 딕셔너리 형태로 반환하고 .keys()를 붙이면 그 이름(변수명 등)들만 쫙 뽑아서 보여주게 된다.
print("globals(): 현재 전역 심볼 테이블 반환 (예)", globals().keys())
# hash() : 객체의 해시 값을 반환하는 함수
print("hash(): 객체의 해시 값 반환 (예)", hash('hello')) # 해시 값은 객체의 고유한 식별자로, 동일한 객체는 동일한 해시 값을 가지며, 다른 객체는 다른 해시 값을 가집니다. 문자열 'hello'의 해시 값은 실행할 때마다 다를 수 있습니다.
# help() : 객체에 대한 도움말을 출력하는 함수
print("help(): 객체에 대한 도움말 출력 (예)", help(len)) # len
# hex() : 정수를 16진수 문자열로 변환하는 함수
print("hex(): 정수를 16진수 문자열로 변환 (예)", hex(255)) # '0xff'
# id() : 객체의 고유한 식별자를 반환하는 함수
a = 10
print("id(): 객체의 고유한 식별자 반환 (예)", id(a)) # a의 메모리 주소
# input() : 사용자로부터 입력을 받는 함수
# name = input("input(): 사용자로부터 입력 받기 (예) 이름을 입력하세요: ") # 사용자 입력을 기다립니다.
# int() : 객체를 정수로 변환하는 함수
print("int(): 객체를 정수로 변환 (예)", int('123')) # 123
# isinstance() : 객체가 특정 클래스의 인스턴스인지 확인하는 함수
print("isinstance(): 객체가 특정 클래스의 인스턴스인지 확인 (예)", isinstance(123, int)) # True
# issubclass() : 클래스가 다른 클래스의 서브클래스인지 확인하는 함수
print("issubclass(): 클래스가 다른 클래스의 서브클래스인지 확인 (예)", issubclass(bool, int)) # True
# iter() : 반복 가능한 객체의 반복자(iterator)를 반환하는 함수
my_iter = iter([1, 2, 3])
print("iter(): 반복 가능한 객체의 반복자 반환 (예)", next(my_iter)) # 1
print("iter(): 반복 가능한 객체의 반복자 반환 (예)", next(my_iter)) # 2
print("iter(): 반복 가능한 객체의 반복자 반환 (예)", next(my_iter)) # 3
# len() : 객체의 길이를 반환하는 함수
print("len(): 객체의 길이 반환 (예)", len("Hello, World!")) # 13
# list() : 객체를 리스트로 변환하는 함수
print("list(): 객체를 리스트로 변환 (예)", list('abc')) # ['a', 'b', 'c']
# map() : 반복 가능한 객체의 각 요소에 함수를 적용하는 함수
# 사용자로부터 입력받은 문자열들을 한꺼번에 숫자로 바꿀때 map을 제일 많이 사용된다.
str_list = ["1", "5", "10"]
int_list = list(map(int, str_list))
print("map(): 반복 가능한 객체의 각 요소에 함수 적용 (예)", int_list) # [1, 5, 10]
# max() : 인자 중 최대값을 반환하는 함수
print("max(): 최대값 반환 (예)", max(5, 3, 8)) # 8
# memoryview() : 객체의 메모리 뷰를 반환하는 함수
# bytes 객체를 메모리 뷰로 변환하여 반환합니다. 메모리 뷰는 원본 객체의 데이터를 직접 참조하므로, 메모리 효율적으로 데이터를 처리할 수 있습니다.
print("memoryview(): 객체의 메모리 뷰 반환 (예)", memoryview(b'hello')) # <memory at 0x7f8c2b3e5c40>
# min() : 인자 중 최소값을 반환하는 함수
print("min(): 최소값 반환 (예)", min(5, 3, 8)) # 3
# next() : 반복자의 다음 요소를 반환하는 함수
my_iter = iter([1, 2, 3])
print("next(): 반복자의 다음 요소 반환 (예)", next(my_iter)) # 1
print("next(): 반복자의 다음 요소 반환 (예)", next(my_iter)) # 2
print("next(): 반복자의 다음 요소 반환 (예)", next(my_iter)) # 3
# object() : 새로운 객체를 반환하는 함수
print("object(): 새로운 객체 반환 (예)", object()) # <object object at 0x7f8c2b3e5c40>
# oct() : 정수를 8진수 문자열로 변환하는 함수
print("oct(): 정수를 8진수 문자열로 변환 (예)", oct(64)) # '0o100'
# ord() : 문자의 유니코드 코드 포인트를 반환하는 함수
print("ord(): 문자의 유니코드 코드 포인트 반환 (예)", ord('A')) # 65
# pow() : 제곱을 계산하는 함수
print("pow(): 제곱 계산 (예)", pow(2, 3)) # 8
# print() : 객체를 문자열로 출력하는 함수
print("print(): 객체를 문자열로 출력 (예)", "Hello, World!") # Hello, World!
# range() : 정수 시퀀스를 생성하는 함수
print("range(): 정수 시퀀스 생성 (예)", list(range(5))) # [0, 1, 2, 3, 4]
# repr() : 객체의 공식 문자열 표현을 반환하는 함수
print("repr(): 객체의 공식 문자열 표현 반환 (예)", repr('Hello')) # "'Hello'"
# reversed() : 시퀀스의 역순 반복자를 반환하는 함수
print("reversed(): 시퀀스의 역순 반복자 반환 (예)", list(reversed([1, 2, 3]))) # [3, 2, 1]
# round() : 숫자를 반올림하는 함수
print("round(): 숫자 반올림 (예)", round(3.14159, 2)) # 3.14
# set() : 객체를 집합으로 변환하는 함수
print("set(): 객체를 집합으로 변환 (예)", set([1, 2, 2, 3])) # {1, 2, 3}
# slice() : 시퀀스의 슬라이스 객체를 반환하는 함수
ranking_a = ["철수", "영희", "민수", "길동"]
ranking_b = ["사과", "배", "포도", "귤"]
top_three = slice(0, 3)
print(ranking_a[top_three]) # ['철수', '영희', '민수']
print(ranking_b[top_three]) # ['사과', '배', '포도']
# sorted() : 반복 가능한 객체를 정렬하는 함수
print("sorted(): 반복 가능한 객체 정렬 (예)", sorted([3, 1, 2])) # [1, 2, 3]
# str() : 객체를 문자열로 변환하는 함수
print("str(): 객체를 문자열로 변환 (예)", str(123)) # '123'
# sum() : 반복 가능한 객체의 합을 반환하는 함수
print("sum(): 반복 가능한 객체의 합 반환 (예)", sum([1, 2, 3])) # 6
# tuple() : 객체를 튜플로 변환하는 함수
# tuple은 아주 쉽게 말해서 '수정할 수 없는 리스트'[]가 아닌 ()로 감싼다.
print("tuple(): 객체를 튜플로 변환 (예)", tuple([1, 2, 3])) # (1, 2, 3)
# zip() : 여러 반복 가능한 객체를 병렬로 묶는 함수
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
zipped = zip(list1, list2)
print("zip(): 여러 반복 가능한 객체 병렬로 묶기 (예)", list(zipped)) # [(1, 'a'), (2, 'b'), (3, 'c')]
# import() : 모듈을 동적으로 임포트하는 함수
# importlib 모듈의 import_module 함수를 사용하여 모듈을 동적으로 임포트할 수 있습니다.
import importlib
del 정의된 변수를 지운다.

파이썬에서는 main을 아래와 같이 표현한다.
if __name__ == "__main":
파이썬에서는 함수를 def라 한다.

문자열 추출시 대표적으로 인덱싱과 슬라이싱이 있고.
upper은 대문자, lower는 소문자로 변환된다.

immutable
문자열, 숫자 등의 데이터를 수정할 수 없다. 주소가 바뀌거나 새로 기록하는 것과는 다르다.
upper()를 하거나 새로 할당하거나 한경우 '주소'가 바뀌는 것이지
해당 객체를 '수정'한것이 아니다.


문자 앞을 대문자로 바꾸거나
대문자 소문자를 스위치 할 수 있다.
# capitalize() : 문자열의 첫 글자를 대문자로, 나머지는 소문자로 변환하는 메서드
print(tt2.capitalize()) # Orange
# swapcase() : 대문자는 소문자로, 소문자는 대문자로 변환하는 메서드
print(tt2.swapcase()) # oRaNGe

문자열에서 공백을 모두 없애거나, 앞 뒤 공백을 없앨 수 있다.
strip(), lstrip(), rstrip()
* strip 벗겨내다, 제거하다

구분자 사이의 공백을 없앨때 sep=''를 사용한다.

공백과 줄바꿈을 기준으로 데이터를 추출해 리스트화 할 수 있다.
* split: 쪼개다, 분열하다, 비용을 각자 나눠서 낼 때
# split() : 문자열을 공백을 기준으로 나누어 리스트로 반환하는 메서드
s2 = "Python is great"
print(s2.split()) # ['Python', 'is', 'great']
# splitlines() : 문자열을 줄바꿈을 기준으로 나누어 리스트로 반환하는 메서드
s3 = "Line 1\nLine 2\nLine 3"
print(s3.splitlines()) # ['Line 1', 'Line 2', 'Line 3']
['Python', 'is', 'great']
['Line 1', 'Line 2', 'Line 3']

index(), find()를 통해 순번 조회가 가능하다.
이 둘의 차이는 index는 없는 데이터를 조회할 경우 error를 뱉어내지만 find는 뱉어내지않고 false(-1)값으로 알려준다는 점.



외의 함수를 조회하고 싶다면 dir를 사용한다.
dif(str)사용시 문자열 str에 관련된 함수 dir를 반환한다.

'SK 네트웍스 AI 캠프' 카테고리의 다른 글
| SK 네트웍스 AI 캠프 - 1_프로그래밍 데이터 기초 - Day5_파이썬_객체지향 프로그래밍_OOP (0) | 2026.05.06 |
|---|---|
| SK 네트웍스 AI 캠프 - 1_프로그래밍 데이터 기초 - Day4_파일입출력_예외처리 (0) | 2026.05.04 |
| [SK네트웍스 Family AI 캠프] 32기 1주차 회고 (0) | 2026.05.04 |
| SK 네트웍스 AI 캠프 - 1_프로그래밍 데이터 기초 - Day3_파이썬 함수 (0) | 2026.04.30 |
| SK 네트웍스 AI 캠프 - 1_프로그래밍 데이터 기초 - Day1_파이썬_개발환경_구축_작성방법 (0) | 2026.04.28 |