지금까지 알아본 자료형은 집을 지을 때 재료에 해당한다.
나무, 돌, 시멘트를 준비 완료 했는가? 그렇다면 이제 철근을 세워보자.
1. if 문
조건문.
예를 들어, '돈이 있으면 택시를 타고 가고, 돈이 없으면 걸어간다.'
if 조건문:
수행할 문장1
else:
수행할 문장A
파이썬은 들여쓰기를 굉장히 잘 수행해야 한다.
들여쓰기? 어떻게 하는 건가요?
Tab을 누르거나 Spacebar를 4번 누르면 된다. (상관없지만, 커뮤니티에서는 공백 4번을 권장한다고 한다.)
다른 언어에서는 if 속의 문장들을 {}로 감싸지만, 파이썬은 들여쓰기를 이용한다.
들여쓰기가 많아서 지저분해요!
그럼 이렇게 써도 된다.
>>> pocket = ['paper', 'money', 'cellphone']
>>> if 'money' in pocket: pass
... else: print("카드를 꺼내라")
비교 연산자
x < y / x > y
x == y / x != y [같지 않다]
x >= y / x <= y (부등호 다음이 등호)
돈이 3000원 이상 있거나 카드가 있다면 택시를 타고 가고, 그렇지 않으면 걸어가라.
>>> money = 2000
>>> card = True
>>> if money >= 3000 or card:
... print("택시를 타고 가라")
... else:
... print("걸어가라")
...
택시를 타고 가라
다양한 조건문
and | x와 y 모두 참 |
or | x와 y 둘 중 하나만 참이어도 참 |
not | x가 거짓이면 참 |
in | x in 문자열, 리스트, 튜플 |
not in | x not in 문자열, 리스트, 튜플 |
만약 조건문에서 가만히 있고 싶다면 어떻게 해야 하나요!
공백을 두면 될까? 'pass'라고 쓰면 된다!
elif 조건문
다양한 조건을 판단한다
이전 조건문이 거짓일 때 수행된다. 기본 구조는 똑같다.
개수에 제한이 없다.
주머니에 돈이 있으면 택시를 타고 가고, 주머니에 돈은 없지만 카드가 있으면 택시를 타고 가고, 돈도 없고 카드도 없으면 걸어가라.
>>> pocket = ['paper', 'cellphone']
>>> card = True
>>> if 'money' in pocket:
... print("택시를 타고가라")
... elif card:
... print("택시를 타고가라")
... else:
... print("걸어가라")
...
택시를 타고가라
2. while 문
반복문
>>> treeHit = 0
>>> while treeHit < 10:
... treeHit = treeHit +1
... print("나무를 %d번 찍었습니다." % treeHit)
... if treeHit == 10:
... print("나무 넘어갑니다.")
...
나무를 1번 찍었습니다.
나무를 2번 찍었습니다.
나무를 3번 찍었습니다.
나무를 4번 찍었습니다.
나무를 5번 찍었습니다.
나무를 6번 찍었습니다.
나무를 7번 찍었습니다.
나무를 8번 찍었습니다.
나무를 9번 찍었습니다.
나무를 10번 찍었습니다.
나무 넘어갑니다.
treeHit = treeHit + 1 이 문장을 표현할 수있는 다른 방식!
treeHit += 1
break
그럼 while 문은 무한정 반복인 건가요!! 도르마무인가요!!
강제로 빠져나오는 방법이 있습니다. break 입니다.
# coffee.py
coffee = 10
while True:
money = int(input("돈을 넣어 주세요: "))
if money == 300:
print("커피를 줍니다.")
coffee = coffee -1
elif money > 300:
print("거스름돈 %d를 주고 커피를 줍니다." % (money -300))
coffee = coffee -1
else:
print("돈을 다시 돌려주고 커피를 주지 않습니다.")
print("남은 커피의 양은 %d개 입니다." % coffee)
if coffee == 0:
print("커피가 다 떨어졌습니다. 판매를 중지 합니다.")
break
continnue
while 문의 맨 처음으로 돌아가기
해당 조건에 부합하면 해당 문의 맨 처음으로 갈 수 있다.
무한 루프
while True:
위 문장은 영원히 출력된다. 홈페이지에서 이렇게 쓰이는 경우가 있을 것이다.
3. for 문
for 변수 in 리스트(or 튜플, 문자열) :
리스트의 첫 번째부터 마지막 요소까지 차례로 변수에 대입한다.
for 문과 while 문은 무슨 차이일까?
for 문은 리스트에 담긴 것을 하나씩 뽑아올 때 쓴다.
while 문은 상황을 반복할 때 사용한다.
>>> test_list = ['one', 'two', 'three']
>>> for i in test_list:
... print(i)
...
one
two
three
marks = [90, 25, 67, 45, 80] # 학생들의 시험 점수 리스트
number = 0 # 학생에게 붙여 줄 번호
for mark in marks: # 90, 25, 67, 45, 80을 순서대로 mark에 대입
number = number +1
if mark >= 60:
print("%d번 학생은 합격입니다." % number)
else:
print("%d번 학생은 불합격입니다." % number)
1번 학생은 합격입니다
2번 학생은 불합격입니다
3번 학생은 합격입니다
4번 학생은 불합격입니다
5번 학생은 합격입니다
continue 문
for 문의 처음으로 돌아가는 기능을 이용할 수 있다.
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
number += 1
if mark < 60:
print("%d번 학생은 불합격입니다" % number)
continue
print("%d번 학생은 합격입니다. 축하합니다." % number)
range 함수
range(10)은 0부터 10미만의 숫자를 포함하는 range 객체를 만든다.
그렇다면? 이 숫자 리스트를 만들어주는 range 함수를 for 문과 함께 잘 쓸 수 있다.
a = range(1, 11) = [1 ~ 10] (끝 숫자는 포함되지 않는다.)
>>> add = 0
>>> for i in range(1, 11):
... add = add + i
>>> print(add)
55
for 와 range 를 이용한 구구단
>>> for i in range(2,10): # 1번 for문
... for j in range(1, 10): # 2번 for문
... print(i*j, end=" ")
... print('')
end=" " 를 이용하는 이유는 다음 줄로 넘기지 말고 띄어쓰기 하기 위함이다.
print(' ')는 단끼리의 줄 구분을 하기 위함이다.
마지막으로, 조건문에서 주의할 한가지
if , while , for 문장 끝에 : 꼭 붙일 것!!
Studying Date : 23.12.02
Studying Source : https://www.youtube.com/watch?v=Sg33k9IVRr8&list=PLU9-uwewPMe05-khW3YcDEaHMk_qA-7lI&index=5, https://wikidocs.net/22
'Programming > Python' 카테고리의 다른 글
점프 투 파이썬 (6) 입출력 (2) | 2023.12.03 |
---|---|
점프 투 파이썬 (5) 함수 (1) | 2023.12.03 |
점프 투 파이썬 (3) 자료형, 변수 (3) | 2023.12.02 |
점프 투 파이썬 (2) 기초, 자료형 (2) | 2023.12.01 |
점프 투 파이썬 (1) 파이썬이란 무엇인가? (2) | 2023.11.30 |