만약 ~하면 ~하라
ex) 돈이 있으면 택시를 타고, 돈이 없으면 걸어간다
money = True
if money:
print("택시를 타고 가라")
else:
print("걸어가라")
>>> 택시를 타고 가라
<들여쓰기>
if 아래쪽에 들여쓰기가 잘못 되어 있을 경우 *오류 발생!
# 올바른 들여쓰기
if 조건문:
수행할 문장1
수행할 문장2
수행할 문장3
# 잘못된 들여쓰기
money = True
if money:
print("택시를 타고 가라")
print("aa")
else:
print("걸어가라")
>>> lo.py", line 5
else:
^
SyntaxError: invalid syntax
1. 불
if True:
print("참")
else:
print("거짓")
2. 비교연산자
money = 2000
if money >= 3000:
print("택시를 타고 가라")
else:
print("걸어가라")
3. and, or, not
money = 2000
card = 1
if money >= 3000 or card:
print("택시를 타고 가라")
else:
print("걸어가라")
4. x in s, x not in s
money = 2000
card = 1
if 1 not in [1,2,3]:
print("택시를 타고 가라")
else:
print("걸어가라")
>>> 걸어가라
5. 아무 실행 없이 넘어가고 싶을 때 : pass
money = 2000
card = 1
if 1 in [1,2,3]:
pass
else:
print("걸어가라")
6. 다중 조건 판단 elif
pocket = ['paper', 'cellphone']
card = True
if 'money' in pocket:
pass
elif card:
print("택시를 타고가라")
else:
print("걸어가라")
>>> 택시를 타고가라
7. 조건부 표현식
다른 언어의 3항 연산자 <변수 = (조건) ? 참 : 거짓;> 을 파이썬 방식으로 나타낸 것
score = 70
if score >= 60:
message = "success"
else:
message = "failure"
print(message)
>> success
이러한 식을 파이썬의 '조건부 표현식'을 사용하면 훨씬 간단하게 쓸 수 있다!!
score = 70
message = "success" if score >= 60 else "failure"
print (message)
해당 조건이 참일 때 ~를 반복하라
while <조건문>:
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
...
💡 example
treehit = 0
while treehit < 10:
treehit += 1
print("나무를 %d번 찍었습니다." % treehit)
if treehit == 10:
print("나무가 넘어갑니다.")
treehit < 10 인 조건일 때 while안에 있는 문장 반복 실행!
treehit = 9일 때
treehit += 1 -> treehit = 10
if treehit == 10:
print("나무가 넘어갑니다.") 실행
10 < 10 (X) 이므로 반복문 종료!
coffee = 10
money = 300
while money:
print("돈을 받았으니 커피를 줍니다.")
coffee -= 1
print("남은 커피의 양은 %d개 입니다." % coffee)
if not coffee:
print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
break
if문이 실행되고 break가 있으므로 money는 300이지만(while문이 True) 반복문이 종료된다!
a = 0
while a < 10:
a += 1
if a % 2 == 0: -> 짝수인가?
continue
print(a)
while문 안쪽의 문장들을 수행하다가 continue를 만나게되면 그 아래를 실행하지 않고 다시 while문의 맨 처음으로 돌아간다!
=> continue를 만나는건 짝수이므로 print되는 건 홀수만!
while True:
수행할 문장1
수행할 문장2
...
while True:
print("안녕하세요")
>>> 안녕하세요 무한대로 출력..
for 변수 in 리스트(or 튜플, 문자열):
수행할 문장1
수행할 문장2
...
test = ['one', 'two', 'three']
for i in test:
print(i)
a = [(1,2), (3,4), (5,6)]
for (first, last) in a:
print(first + last)
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
number += 1
if mark >= 60:
print("%d번 학생은 합격입니다." % number)
else:
print("%d번 학생은 불합격입니다." % number)
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
number += 1
if mark < 60:
continue
print("%d번 학생 축하합니다. 합격입니다." % number)
= while문과 동일!
i in range(a, b) -> a ≤ i < b
sum = 0
for i in range(1, 11):
sum = sum + i
print(sum)
💡 example. 구구단 (이중포문)
for i in range(2, 10):
for j in range(1, 10):
print(i * j, end=" ")
print('')
>>> 2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
안쪽 for문이 다 끝난 후 바깥쪽 for문으로 다시 돌아온다.
파이썬의 print는 자동개행인데 end 옵션을 줄 경우 개행하지 않고 출력됨!
간결하게 정리하는 것?
result = [x*y for x in range(1, 10) for y in range(1, 10)]
result = []
for x in range(2, 10):
for y in range(1, 10):
result.append(x*y)
담고자 하는 것을 가장 앞에 적는다!
Reference
참고한 영상