2-3. Conditionals and Loops

유승우·2022년 5월 2일
0

조건문


  • 조건에 따라 특정한 동작을 하게 하는 명령어
  • 조건을 나타내는 기준과 실행해야 할 명령으로 구성되어있다.
  • 들여쓰기를 주의하여 작성

if - else


print("Tell me your age")
myage = int(input())
if myage < 30:
	print("Welcome to the Club")
else:
	print("Oh! No. You ar not accepted")

조건 판단 방법


비교연산자비교상태설명
x < y~ 보다 작음x가 y보다 작은지 검사
x > y~ 보다 큼x가 y보다 큰지 검사
x == y같음x와 y가 같은지 검사( 값 비교 )
x is y같음x와 y가 같은지 검사( 메모리 주소 비교 )
x !- y같지 않음x와 y가 다른지 검사( 값 비교 )
x is not y같지 않음x와 y가 다른지 검사( 메모리 주소 비교 )
x >= y크거나 같음x가 y보다 이상인지 검사
x <= y작거나 같음x가 y보다 이하인지 검사
💡 -5 부터 256까지는 같은 메모리 주소(정적 메모리)를 사용하기 때문에 is 비교는 같은 결과가 나타난다.

논리 키워드


a논리연산자b결과
TrueandTrueTrue
TrueandFalseFalse
FalseorFalseFalse
TrueorFalseTrue
  • 이외에도 not

삼항 연산자


  • 조건문을 사용하여 참일 경우와 거짓의 경우의 결과를 한줄로 표현
value = 12
is_even = True if value % 2 == 0 else False
print(is_even)
>>> True

elif 구문


  • 수행할 명령문이 한 줄이면 붙여쓰기가 가능
if score >= 90: grade = 'A'
elif score >= 80: grade = 'B'
elif score >= 70: grade = 'C'
elif score >= 60: grade = 'D'
else: grade = 'F'

연습문제


  • 태어난 년도를 계산하여 학교 종류 맞추기
year = int(input("태어난 년도를 입력하세요 : "))
age = 2022 - year + 1

school = ""
if 20 <= age and age <= 26:
	print("대학생")
elif 17 <= age and age < 20:
	print("고등학생")
elif 14 <= age and age < 17:
	print("중학생")
elif 8 <= age and age < 14:
	print("초등학생")
else:
	print("학생이 아닙니다")

반복문


  • 정해진 동작을 반복적으로 수행하게 하는 명령문으로, 반복 시작조건, 종료 조건, 수행 명령으로 구성되어 있다.
  • 조건문과 마찬가지로 들여쓰기를 주의하여 작성

for


  • 반복 실행 횟수가 명확할 때 사용

  • 기본적인 for문

for looper in [1,2,3,4,5]:
	print(f"{looper} : Hello")
  • 범위를 사용한 for문
for looper in range(0,5):
	print(f"{looper} : Hello")

# 간격을 두고 세기
for looper in range(0,10,2):
	print(f"{looper} : Hello")

# 역순으로 세기
for looper in range(10,1,-1):
	print(f"{looper} : Hello")
  • 문자열을 한자리 리스트로 처리
for i in "abcdef":
	print(i)

while


  • 반복 실행 횟수가 명확하지 않을 때 수행

  • 무한 루프에 빠지지 않게 주의!

  • 코드가 복잡하거나 확인해야 할 것이 많으면 여러 개의 print를 사용해 debugging을 확인

  • 기본적인 while문

i = 0
while i < 10:
	print(f'{i} : Hello')
	i += 1

break


  • 특정 조건에 반복 종료
for i in range(10):
	if i == 5:
		break
	print(i)
print("EOP")

continue


  • 특정 조건에서 남은 반복 명령 skip
for i in range(10):
	if i == 5: continue
	print(i)
print("EOP")

연습문제


  • 구구단
x = int(input("몇 단의 구구단을 계산할까요? : "))

for i in range(1,10):
	print(f'({x} X {i} = {dan*i}')
  • 문자를 거꾸로 출력
sentence = "I love you"
reverse_sentence = ""
for char in sentence:
	reverse_sentence = char + reverse_sentence
print(reverse_sentence)
  • 이진수 변환
decimal = 10
result = ''
while (decimal > 0):
	remainder = decimal % 2
	decimal = decimal / 2
	result = str(remainder) + result
print(result)

중첩 반복문


  • 1 ~ 100 의 임의의 숫자 맞추기

0개의 댓글