점프 투 파이썬 (4) 제어문 If - While - For

2023. 12. 2. 17:26·Programming/Python

지금까지 알아본 자료형은 집을 지을 때 재료에 해당한다.

나무, 돌, 시멘트를 준비 완료 했는가? 그렇다면 이제 철근을 세워보자.

 

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("걸어가라")
...
택시를 타고가라

출처;&nbsp;https://wikidocs.net/20

 

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
'Programming/Python' 카테고리의 다른 글
  • 점프 투 파이썬 (6) 입출력
  • 점프 투 파이썬 (5) 함수
  • 점프 투 파이썬 (3) 자료형, 변수
  • 점프 투 파이썬 (2) 기초, 자료형
Ctrl_engineer
Ctrl_engineer
Ctrl 키는 혼자일 때보다 다른 키와 함께할 때 진짜 힘을 발휘합니다. 데이터도, 사람도 마찬가지입니다. 연결되고 흐를 때, 세상은 더 나은 방향으로 움직입니다. 저는 데이터의 흐름을 설계하고, 신뢰를 심는 엔지니어가 되고자 합니다. 이곳은, 그 여정의 작은 흔적들을 기록하는 공간입니다.
  • Ctrl_engineer
    Ctrl the flow
    Ctrl_engineer
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • Research (8)
        • Raspberry Pi (8)
      • Data Enginnering (24)
        • Cloud (3)
        • Elastic (6)
        • Database (9)
        • Pipeline (3)
      • CS STUDY (0)
        • Computer Science (0)
        • DataStructure & Algorithm (0)
      • Programming (13)
        • Python (13)
      • Mathematics and Statistics (10)
      • Data Science (3)
        • Data Insight (2)
        • Learning (0)
        • ML & DL (0)
      • DIARY (0)
      • TIL (Today I Learned) (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    heap size
    Khan Academy
    SQL
    proxyjump 설정
    indexing
    Statistics and Probability
    py4e
    라즈베리파이 네트워크 설정
    elasticSearch
    3blue1brown
    linear algebra
    라즈베리파이5
    Khan
    오블완
    티스토리챌린지
    climb-mates
    점프투파이썬
    spark
    ssh 비밀번호 없이 접속
    부스트코스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Ctrl_engineer
점프 투 파이썬 (4) 제어문 If - While - For
상단으로

티스토리툴바