if <조건>: # if를 쓰고 조건 삽입 후 " : " 입력
<수행 명령 1-1> # 들여쓰기(indentation) 후 수행명령 입력
<수행 명령 1-2> # 같은 조건하에 실행일 경우 들여쓰기 유지
else: # 조건이 불일치할 경우 수행할 명령 block
<수행 명령 2-1> # 조건 불일치 시 수행할 명령 입력
<수행 명령 2-2> # 조건 불일치 시 수행할 명령 들여쓰기 유지
print("Tell me your age?") myage = int(input()) if myage < 30: print("Welcome to the Club") else: print("Oh! No. You are not accepted")
Tell me your age?
32
Oh! No. You are not accepted
x < y x > y
x <= y x >= y
x == y x is y
x != y x is not y
is 연산은 메모리의 주소를 비교한다.
a = 1 b = 1 print(a == b) print(a is b)
True
True
a = [1, 2, 3, 4, 5] b = a[:] print(a == b) print(a is b)
True
False
b = a print(a is b)
True
a = -5 b = -5 print(a is b)
True
a = -6 b = -6 print(a is b)
False
if 1: print("True") else: print("False")
True
a = 8, b = 5 if a == 8 and b == 4 # False if a > 7 or b > 7 # True if not (a > 7) # False] boolean_list = [True, False, True, False, True] all(boolean_list) # False any(boolean_list) # True
- 조건문을 사용하여 참일 경우와 거짓일 경우의 결과를 한줄에 표현
value = 12 is_even = True if value % 2 == 0 else False print(is_even) # True
- 마지막 조건문에 따라 Grade 값에 D가 할당됨
if score >= 90: grade = 'A' if score >= 60: grade = 'B' else: grade = 'F'
- 첫 if문을 만족하면 그 밑의 elif문은 실행하지 않는다
if score >= 90: grade = 'A' elif score >= 60: grade = 'B' else: grade = 'F'
- 예제
birth_year = int(input("당신이 태어난 년도를 입력해 주세요 : ")) age = 2023 - birth_year + 1 message = "" if 20 <= age and age <= 26: message = "대학생" elif 17 <= age and age < 20: message = "고등학생" elif 14 <= age and age < 17: message = "중학생" elif 8 <= age and age < 14: message = "초등학생" else: print("학생이 아닙니다.") print(message)
당신이 태어난 년도를 입력해 주세요 : 2000
대학생
기본적인 반복문 : 반복 범위를 지정하여 반복문 수정
- looper 변수에 1 할당
- 'Hello' 출력
- 리스트(대괄호 속 숫자들)에 있는 값 차례로 looper 할당
- 5까지 할당한 후 반복 block 수행 후 종료
for looper in [1, 2, 3, 4, 5]: print(f"{looper} : Hello")
1 : Hello
2 : Hello
3 : Hello
4 : Hello
5 : Hello
for looper in range(0, 5):
print(f"{looper} : Hello")
range(1, 5) = [1, 2, 3, 4] range(5) = range(0, 5) = [0, 1, 2, 3, 4]
for i in "abcdefg":
print(i)
for i in ['a', 'b', 'c']:
print(i)
for i in range(1, 10, 2): # 1부터 10까지 2씩 증가시키면서 반복문 수행
print(i)
for i in range(10, 1, -1): # 10부터 1까지 -1씩 감소시키면서 반복문 수행
print(i)
조건이 만족하는 동안 반복 명령문을 수행
- i 변수에 1할당
- i가 10미만인지 판단
- 조건에 만족할 때 i 출력, i에 1을 더함
- i가 10이 되면 반복 종료
i = 1 while i < 10: print(i) i += 1
for문은 while문으로 변환 가능
- 반복 실행횟수를 명확히 알 때
for i in range(0, 5): print(i)
- 반복 실행횟수가 명확하지 않을 때
i = 0 while i < 5: print(i) i = i + 1
for i in range(10):
if i == 5:
break
print(i)
print("EOP")
for i in range(10):
if i == 5:
continue
print(i)
print("EOP")
for i in range(10):
print(i,)
else:
print("EOP")
i = 0
while i < 10:
print(i,)
i += 1
else:
print("EOP")
- 문장 거꾸로 출력하기
sentence = input() reverse_sentence = '' for char in sentence: reverse_sentence = char + reverse_sentence print(reverse_sentence)
I love you
uoy evol I
- 구구단 출력
print("구구단 몇단을 계산할까요? ") dan = int(input()) print(f"구구단 {dan}단을 계산합니다.") for i in range(1, 10): print(f"{dan} X {i} = {dan*i}")
구구단 몇단을 계산할까요?
5
구구단 5단을 계산합니다.
5 X 1 = 5
5 X 2 = 10
5 X 3 = 15
5 X 4 = 20
5 X 5 = 25
5 X 6 = 30
5 X 7 = 35
5 X 8 = 40
5 X 9 = 45
- Decimal to Binary
decimal = int(input()) binary = '' while (decimal > 0): remainder = decimal % 2 decimal = decimal // 2 binary = str(remainder) + binary print(binary)
100
1100100
- Debugging Loop : Loop 내에 변수들의 값을 Print문으로 확인
print("input decimal number : ",) decimal = int(input()) binary = '' loop_counter = 0 while (decimal > 0): temp_decimal_input = decimal temp_binary_input = binary remainder = decimal % 2 decimal = decimal // 2 binary = str(remainder) + binary print("-----", loop_counter, "loop value check -----") print("Initial decimal :", temp_decimal_input, ", Remainder :", remainder, ", Initial binary :", temp_binary_input) print("Output decimal :", decimal, ", Output binary :", binary) print("------------------------------") print("") loop_counter += 1 print("Binary number is", binary)
import random
true_value = random.randint(1, 100)
input_value = 9999999
print("숫자를 맞춰보세요(1~100)")
while true_value != input_value:
input_value = int(input())
if input_value > true_value: # 사용자의 입력값이 true_value보다 클 때
print("숫자가 너무 큽니다")
elif input_value < true_value: # 사용자의 입력값이 true_value보다 작을 때
print("숫자가 너무 작습니다")
else:
break
print(f"정답입니다, 입력한 숫자는 {true_value}")
숫자를 맞춰보세요(1~100)
50
숫자가 너무 큽니다
25
숫자가 너무 큽니다
12
숫자가 너무 큽니다
6
숫자가 너무 작습니다
8
숫자가 너무 큽니다
7
정답입니다, 입력한 숫자는 7
- 0을 입력하면 종료하는 구구단
print("구구단 몇 단을 계산할까요? ") while True: dan = int(input()) if 1 <= dan and dan <= 9: print(f"구구단 {dan}단을 계산합니다.") for i in range(1, 10): print(f"{dan} X {i} = {dan * i}") elif dan == 0: print("구구단을 종료합니다.") break else: print("잘못 입력하셨습니다.")
구구단 몇단을 계산할까요?
10
잘못 입력하셨습니다.
3
구구단 3단을 계산합니다.
3 X 1 = 3
3 X 2 = 6
3 X 3 = 9
3 X 4 = 12
3 X 5 = 15
3 X 6 = 18
3 X 7 = 21
3 X 8 = 24
3 X 9 = 27
0
구구단을 종료합니다.
- 0을 입력하면 종료하는 구구단 : 안좋은 예시
print("구구단 몇 단을 계산할까요? ") x = 1 while (x != 0): x = int(input()) if x == 0: break if not (1 <= x <= 9): print("잘못 입력하셨습니다, 1부터 9사이의 숫자를 입력해주세요.") continue else: print("구구단" + str(x) + "단을 계산합니다.") for i in range(1, 10): print(str(x) + " X " + str(i) + " = " + str(x * i)) print("구구단 몇 단을 계산할까요(1 ~ 9)?") print("구구단을 종료합니다.")
구구단 몇 단을 계산할까요?
100
잘못 입력하셨습니다, 1부터 9사이의 숫자를 입력해주세요.
3
구구단3단을 계산합니다.
3 X 1 = 3
3 X 2 = 6
3 X 3 = 9
3 X 4 = 12
3 X 5 = 15
3 X 6 = 18
3 X 7 = 21
3 X 8 = 24
3 X 9 = 27
구구단 몇 단을 계산할까요(1 ~ 9)?
0
구구단을 종료합니다.
kor_score = [49, 79, 20, 100, 80]
math_score = [43, 59, 85, 30, 90]
eng_score = [49, 79, 48, 60, 100]
midterm_score = [kor_score, math_score, eng_score]
student_score = [0, 0, 0, 0, 0]
i = 0
for subject in midterm_score:
for score in subject:
student_score[i] += score
i += 1
i = 0
else:
a, b, c, d, e = student_score
student_average = [a / 3, b / 3, c / 3, d / 3, e / 3]
print(student_average)
[47.0, 72.33333333333333, 51.0, 63.333333333333336, 90.0]