name = 'hyunwoo'
name
>> 'hyunwoo'
List01 = [1,3,5] # 영문자(대, 소문자 구분), 숫자, 언더바o()만 사용 가능
list_01 = [2,4,6] # 소문자 예시 (다른 변수)
List_01[1,3,5]
00dic = {num : 11, num2 : 22}
00dic
>> SyntaxError: invalid syntax : 구문(문법) 에러 발생
* 예약어는 변수로 사용할 수 없습니다
> True = set("hyunwoo")
True
>> IndentationError: unexpected indent : 에러 발생 (보통 들여쓰기, 띄어쓰기 에러)
연산자 | 설명 |
---|---|
a ==b | a와 b가 같다 |
a != b | a와 b는 같지 않다 |
a < b | a가 b보다 작다 |
a <= b | a는 b보다 작거나 같다 |
연산자 | 설명 |
---|---|
a and b | a,b 조건이 모두 참일 때, True로 리턴 |
a or b | a,b 조건 중 하나라도 참일 때, True로 리턴 |
a not b | 조건을 반대로 뒤집는다 |
예시)
not 3 > 5 # 원래 False 지만 출력 시 True로 리턴
in | not in | 설명 |
---|---|---|
x in list | x not in list | 리스트 안에 x가 있는지, 없는지 확인 |
x in tuple | x not in tuple | 튜플 안에 x가 있는지, 없는지 확인 |
x in 문자열 | x not in 문자열 | 문자열 안에 x가 있는지, 없는지 확인 |
예시)
'h' in 'hyunwoo'
>> True
> (1+2<4) and (' ' in 'hello aiffel')
>> True
while 조건:
수행할 문장
> 예시)
num = 0
while num <= 5:
print(num)
num += 1
>> 0~5 까지 하나씩 행마다 순차적으로 출력
while 문 강제로 빠져나오기 (명령어 break)
코드 예시)
korean_pretzel = 10
while korean_pretzel:
print('꽈배기 ', korean_pretzel, '개 있습니다.')
order = int(input('주문 개수 : '))
korean_pretzel -= order
print('남은 꽈배기는 ', korean_pretzel, '개 입니다.')
print('*'*25)
if korean_pretzel <= 0:
print('꽈배기 품절입니다.')
break
** break
a = 0 # a는 0
while a < 10: # a가 10보다 작을 동안
a += 1 # a에 a+1의 값을 할당하고
if a % 2 == 0: # 만약 a를 2로 나눈 나머지가 0과 동일하면 (짝수 산술식)
break # 루프를 깨버리고 나온다.
print(a) # (if문 블럭 밖이므로) 아니라면 a를 출력한다.
** continue
a = 0 # a는 0
while a < 10: # a가 10보다 작을 동안
a += 1 # a에 a+1의 값을 할당하고
if a % 2 == 0: # 만약 a를 2로 나눈 나머지가 0과 동일하면
continue # 넘어가고 루프 선두로 돌아가서 계속 루프를 탄다.
print(a) # (if문 블럭 밖이므로) 아니라면 a를 출력한다.
** for 문의 기본 구조
for 변수 in 컬렉션: # 변수는 보통 i 를 자주 씁니다.(iterator의 약자)
수행할 문장
** 리스트로 반복문 만들기
a = [1,2,3]
for i in a:
print(i, '번 출력')
>> 1번 출력, 2번 출력, 3번 출력
** 2개 변수를 가진 리스트로 반복문 활용
a =[('apple','사과'), ('banana', '바나나'), ('melon', '멜론')]
for (en, ko) in a:
print(en, '는 한국어로', ko, '입니다.')
>> apple 는 한국어로 사과 입니다.
>> banana 는 한국어로 바나나 입니다.
>> melon 는 한국어로 멜론 입니다.
** range 함수의 구조
range(시작, 끝+1, 증가) # 시작값과 증가값은 생략할 수 있고, 그 값는 각각 0,1로 자동 설정
# 중요한 부분은 '끝값', [끝값은 끝+1]로 표현 됩니다.
for i in range(0,6,2): # 0부터 5까지 2씩 증가해라
print(i)
>> 0
>> 2
>> 4
활용 문제(구구단 만들기) 앞 화살표 펼치기!
n = int(input("원하는 단수를 입력하세요:"))
for x in range(1, 10):
print(n,"*",x,"=",n*x)
** if 문 기본 구조
if 조건 1:
수행할 문장1
수행할 문장2
elif 조건 2:
수행할 문장3
수행할 문장4
else:
수행할 문장5
수행할 문장6
예시 코드
# 코드 실행 후 나오는 흰 박스에 `20000`, `15000`, `6000`, `3000`을 넣은 후
엔터를 눌러보세요. 조건(돈)에 따라 출력이 달라집니다.
money = int(input('현재 수중에 있는 돈은 얼마인가요?'))
if money >= 16000:
print('택시도 타고, 커피도 마신다.')
elif money >= 12000:
print('커피는 포기하고 택시를 탄다.')
elif money >= 5300:
print('커피를 마시고 버스에 탄다.')
else:
print('목이 마르지만 참고 버스를 탄다.')
def 함수 이름(매개변수):
수행할 문장1
수행할 문장2
...
# 간단한 함수를 통해 매개변수와 인수의 차이를 느껴 보세요.
def add(a, b): # a, b는 매개변수
return a + b # a + b 로 반환(리턴)
add(1, 2) # 함수 호출. 1, 2는 인수
>> 3
** 매개변수(parameter) : 함수에 입력되어 전달된 값을 받는 변수
** 인수(argument, arg) : 함수를 호출할 때 전달하는 입력 값
# 위치 인수의 예
def print_nums(a, b, c):
print(c)
print(b)
print(a)
a = [10, 20, 30] # 리스트
print_nums(*a)
>> 30
>> 20
>> 10
** print(a) 리스트 앞에 ' * '를 붙이면 언패킹 되어서 print(10, 20, 30)과 같아진다
** 언패킹(unpaking)은 말 그대로 리스트나 튜플의 포장을 푼다는 뜻입니다.
단, 매개 변수의 개수와 리스트의 요소 개수가 같아야 합니다. 개수가 같지 않으면 에러가 발생합니다.
** 가변 인수 기본 구조
def 함수명(*매개변수):
코드
** 예시 코드
# 가변 인수의 예
def sum_nums(*args):
sum = 0
for arg in args:
sum += arg
return sum
sum_nums(1, 2, 3)
>> 6 # 1+2+3, args1 + args2 + args3
** 예시 코드
# 키워드 인수의 예
def dog_info(name, age, breed):
print('이름 :', name)
print('나이 :', age)
print('품종 :', breed)
# 순서가 달라도 키워드가 순서에 맞게 들어갑니다.
dog_info(age=10, breed='진돗개', name='규봉이')
>> 이름 : 규봉이
>> 나이 : 10
>> 품종 : 진돗개
** 키워드 가변 인수 기본 구조
def 함수명(**매개변수):
코드
주의할 점은 인수를 함수에 넣을 때, 꼭 키워드와 함께 넣어야 합니다** 중요중요!
활용문제 프로필 함수 만들기! 펼쳐주세요# 누군가의 프로필 함수
def someone_profile(name, age, MBTI):
print('나를 소개합니다.')
print('이름:', name)
print('나이:', age)
print('MBTI :', MBTI)
# Q. MBTI가 ESFJ, 나이가 20살인 모두연의 프로필을 만들어 보세요.
a = {'gw', 20, 'ESFJ'} # a라는 딕셔너리 선언
someone_profile(*a) # 언패킹 사용! a 딕셔너리를 *a 자리에 넣어도 됩니다.
>> 나를 소개합니다.
>> 이름 : gw
>> 나이 : 20