공부/Python

[점프 투 파이썬 ] 03장 제어문

순제로 2023. 4. 8. 20:53
728x90

출처: https://wikidocs.net/book/1

 

점프 투 파이썬

이 책은 파이썬이란 언어를 처음 접해보는 독자들과 프로그래밍을 한 번도 해 본적이 없는 사람들을 대상으로 한다. 프로그래밍을 할 때 사용되는 전문적인 용어들을 알기 쉽게 풀어서 …

wikidocs.net

if 문
# if와 else를 사용한 기본 구조
if 조건문:
    수행할 문장1
    수행할 문장2
    ...
else:
    수행할 문장A
    수행할 문장B
    ...

x = 3
y = 2
x>y

True

x<y

False

x != y

True

# "만약 3000원 이상의 돈을 가지고 있으면 택시를 타고 그렇지 않으면 걸어 가라."
money = 20000

if money>=3000:
    print("택시를 타자")
else:
    print("걸어 가자")

택시를 타자

 

#"돈이 3000원 이상 있거나 카드가 있다면 택시를 타고 그렇지 않으면 걸어 가라."
money = 2000
card = True

if money>=2000 or card == True:
    print("택시 타자")
else:
    print("걸어 가자")

택시 타자

1 in [1, 2, 3]

True

1 not in [1,2,3]

False

'a' in ('a', 'b', 'c')

True

#"만약 주머니에 돈이 있으면 택시를 타고, 없으면 걸어 가라."

jumoney = "money"

if 'money' in jumoney:
    print("택시 타자")
else:
    print("걸어가자")

택시 타자

 

  • 조건문에서 아무 일도 하지 않게 설정하고 싶다면?: pass
pocket = ['paper', 'money', 'cellphone']
if 'money' in 'pocket':
    pass 
else:
    print("카드를 꺼내라")

카드를 꺼내라

 

다양한 조건을 판단하는 elif
* elif는 개수에 제한 없이 사용할 수 있다.
money = 2000
card = True

if money>=20000 :
    print("택시 타자")
elif money>=2000 and card==True:
    print("택시 타고 밥 굷자")
else:
    print("걸어 가자")

택시 타고 밥 굷자

 

while 문
  •  반복해서 문장을 수행해야 할 경우 while문을 사용
# while 문의 기본 구조
while <조건문>:
    <수행할 문장1>
    <수행할 문장2>
    <수행할 문장3>
    ...
treehit = 0

while treehit<10:
    treehit += 1
    print("나무 %d 번째 찍는 중." %treehit)

    if treehit == 10:
        print("나무 넘어가유~")

나무 1 번째 찍는 중.

나무 2 번째 찍는 중.

나무 3 번째 찍는 중.

나무 4 번째 찍는 중.

나무 5 번째 찍는 중.

나무 6 번째 찍는 중.

나무 7 번째 찍는 중.

나무 8 번째 찍는 중.

나무 9 번째 찍는 중.

나무 10 번째 찍는 중.

나무 넘어가유~

#여러 가지 선택지 중 하나를 선택해서 입력받는 예제
prompt = """
1. Add
2. Del
3. List
4. Quit

Enter number:"""
# number가 4가 아닌 동안 prompt를 출력하고 사용자로부터 번호를 입력받는다.
number = 0
while number != 4:
    print(prompt)
    number = int(input())

1. Add

2. Del

3. List

4. Quit

Enter number:

1

 

1. Add

2. Del

3. List

4. Quit

Enter number:

4

 

 

  • while문 강제로 빠져나가기
coffee = 10
money = 300
while money:
    print("돈을 받았습니다. 커피를 추출합니다.")
    coffee -= 1
    print("남은 커피는 %d개 입니다." %coffee)
    if coffee == 0:
        print("커피 없다~!!!")
        break

돈을 받았습니다. 커피를 추출합니다.

남은 커피는 9개 입니다.

돈을 받았습니다. 커피를 추출합니다.

남은 커피는 8개 입니다.

돈을 받았습니다. 커피를 추출합니다.

남은 커피는 7개 입니다.

돈을 받았습니다. 커피를 추출합니다.

남은 커피는 6개 입니다.

돈을 받았습니다. 커피를 추출합니다.

남은 커피는 5개 입니다.

돈을 받았습니다. 커피를 추출합니다.

남은 커피는 4개 입니다.

돈을 받았습니다. 커피를 추출합니다.

남은 커피는 3개 입니다.

돈을 받았습니다. 커피를 추출합니다.

남은 커피는 2개 입니다.

돈을 받았습니다. 커피를 추출합니다.

남은 커피는 1개 입니다.

돈을 받았습니다. 커피를 추출합니다.

남은 커피는 0개 입니다. 커피 없다~!!!

 

  • while문의 맨 처음으로 돌아가기(continue)
a = 0
while a<10:
    a += 1
    if a%2 == 0: continue
    print(a)

1

3

5

7

9

 

#무한루프
while True:
    print("무한 ")

 

 

for 문
#기본 구조
for 변수 in 리스트(또는 튜플, 문자열):
    수행할 문장1
    수행할 문장2
    ...
# 전형적인 for문
test_list = ['one', 'two', 'three']
for i in test_list:
    print(i)

one

two

three

# 다양한 for문의 사용
a = [(1,2), (3,4), (5,6)]
for (first, last) in a:
    print(first + last)

3

7

11

# for 문의 응용

"""
총 5명의 학생이 시험을 보았는데 시험 점수가 60점 이상이면 합격이고 그렇지 않으면 불합격이다. 
합격인지 불합격인지 결과를 보여 주시오.
"""

marks = [90, 25, 67, 45, 80]
for mark in marks:
    if mark >= 60:
        print("합격")
    else:
        print("불합격")

합격

불합격

합격

불합격

합격

 

#  for 문과 continue

marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
    number = number +1
    if mark < 60:
        continue
    print("%d 번 학생 축하합니다. 합격입니다." %number)

1 번 학생 축하합니다. 합격입니다.

3 번 학생 축하합니다. 합격입니다.

5 번 학생 축하합니다. 합격입니다.

 

# for 문과 함게 사용하는 range 함수
a = range(0,10)
marks = [90, 25, 67, 45, 80]

for num in range(len(marks)):
    if marks[num] < 60:
        continue
    print("%d 번 학생 축하합니다. 합격입니다." %(num+1))

1 번 학생 축하합니다. 합격입니다.

3 번 학생 축하합니다. 합격입니다.

5 번 학생 축하합니다. 합격입니다.

 

# for 문과 range를 활용한 구구단
for i in range(2,10):
    print('=' * 30)
    for j in range(1,10):
        print( "%d x %d = %d" %(i,j,(i*j)))

 

# 리스트 컴프리헨션 사용하기

# 기존 코드
a = [1,2,3,4]
result = []
for num in a:
    result.append(num*3)

print(result)

[3, 6, 9, 12]

# 리스트 컴프리헨션 사용하기 1 
a = [1,2,3,4]
result = [num * 3 for num in a]
print(result)

[3, 6, 9, 12]

# 리스트 컴프리헨션 사용하기 2
a = [1,2,3,4]
result = [num * 3 for num in a if num % 2 == 0]
print(result)

[6, 12]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90