operator모듈
산술연산자
비교연산자
eq(equal) / ne(not equal) / gt(greater) / ge(greater equal) / lt(little) / le(little equal)
논리연산자
vaccine = (age < 20) or (age >= 65)
= vaccine = operator.or_(operator.lt(age, 20), operator.ge(age, 65))
조건식 어떤 조건에 따라 실행이 분기되는 식
A if 조건식 else B : 조건식의 결과가 true이면 A 실행, 그렇지 않으면 B실행
True일 경우: 적설량 : 50mm, 대설 경보 발령!! (if 앞부분 출력)
False일 경우: 적설량 : 10mm, 대설 경보 해제!! (else 뒷부분 출력)
조건문 어떤 조건에 따라 프로그램을 분기함
If: 단일조건
If 조건식 :
실행문
korScore = int(input('국어 점수 입력 : '))
engScore = int(input('영어 점수 입력 : '))
matScore = int(input('수학 점수 입력 : '))
avgScore = korScore + engScore + matScore / 3
print('평균 : {}'.format(avgScore))
if avgScore >= 90:
print('참 잘했어요~')
if~else: 양자택일, 조건식 결과에 따라 둘 중 하나가 실행
if 조건식 :
실행문
Else:
실행문
💥참고) pass: ‘나중에 코딩하겠다’라는 뜻의 키워드
floatNum = float(input('소수 입력 : '))
if floatNum - int(floatNum) >= 0.5:
print('올림 : {}'.format(int(floatNum) + 1))
else:
print('버림 : {}'.format(int(floatNum)))
userPoint = int(input('고객 포인트 입력 : '))
minAblePoint = int(input('고객 포인트 입력 : '))
print('포인트 사용 가능') if userPoint >= minAblePoint else print('포인트 사용 불가능')
result = '가능' if userPoint >= minAblePoint else '불가능'
print('포인트 사용 가능 여부 : {}'.format(result))
💥모든 조건식은 if~else문으로 변경할 수 있으나, 모든 if~else문을 조건식으로 변경할 수 있는 것은 아니다
rainPercentage = int(input('비올 확률 입력 : '))
minRainPercentage = 55
#조건식
print('우산을 챙기세요.') if rainPercentage >= minRainPercentage else print('양산을 챙기세요.')
#if~else문
if rainPercentage >= minRainPercentage:
print('우산을 챙기세요.')
else:
print('양산을 챙기세요.')
if~elif문: 다자택일(다중조건), 여러가지 조건식 결과에 따라 실행문 결정
중첩 조건문: 조건문 안에 또 다른 조건문
selectNum = int(input('출퇴근 대상자 인가요? 1. Yes \t 2. No \n'))
if selectNum ==1:
print('교통수단을 선택하ㅔ요.')
trans = int(input('1. 도보, 자전거 \t 2. 버스, 지하철 \t 3. 자가용 \n'))
if trans == 1:
print('세금 감면 5%')
elif trans == 2:
print('세금 감면 3%')
elif trans == 3:
print('세금 감면 1%')
elif selectNum == 2:
print('세금 변동 없습니다.')
else:
print('잘못 입력했습니다.')
반복문 특정 실행 반복
1. For문: 주로 횟수에 의한 반복
-> 0~4 반복
💥 반복범위설정- range()함수
startNum = int(input('반복의 시작 입력 : '))
endNum = int(input('반복의 끝 입력 : '))
for i in range(startNum, (endNum + 1)):
print(i)
2. while문: 조건에 의한 반복
조건식이 false가 될 때 실행문 중단
gugudanNum = int(input('희망 구구단 입력 :'))
n=1
while n <10:
result = gugudanNum * n
print('{} * {} = {}'.format(gugudanNum, n, result))
n += 1
currentThickness = 30
rotationCount = 0
removeThickness = 0.15
while currentThickness >= 20:
rotationCount += 1
currentThickness -= removeThickness
safeRotationCount = rotationCount - 1
print('운행 가능 횟수 : {}'.format(safeRotationCount))
운행 가능 횟수 : 66
💥 반복문 사용시 무한 반복에 주의!
n = 1
while n < 10:
print('Hello!')
-> 결과값 무한루프
n += 1
추가하면 무한루프 막음
- flag = True
num = 0
sum = 0
while flag:
num += 1
sum += num
print('{}까지의 합은 {}입니다'.format(num,sum))
-> 조건식에 논리형 데이터 사용해 무한반복 실행
if sum >=1000:
flag = False
반복 제어 가능
import random
sum = 0
date = 1
flag = True
while flag:
patientCount = random.randint(50,100)
sum += patientCount
date += 1
print('날짜: {}, \t 오늘 환자수: {}, \t 누적환자수: {}'.format(date, patientCount, sum))
if sum >= 10000:
flag = False
> 반복문 제어
1. continue키워드: 반복실행 중 continue를 만나면 다음 반복문 실행하지 않고 위로 올라감
for i in range(100):
if i % 7 != 0:
continue
print('{}는 7의 배수입니다.'.format(i))
-> 조건 만족하는 경우 다시 위로 올라감 / 만족하지 않는 경우만 넘어감
2. Else: 반복문이 종료된 후 실행
cnt = 0
for i in range(100):
if i % 7 != 0:
continue
print('{}는 7의 배수입니다.'.format(i))
cnt += 1
else:
print('99까지의 정수 중 7의 배수는 {}개입니다.'.format(cnt))
minNum = 0
for i in range(1, 101):
if i % 3 != 0 or i % 7 != 0:
continue
print('공배수: {}'.format(i))
if minNum ==0:
minNum = i
else:
print('최소공배수 : {}'.format(minNum))
공배수: 21
공배수: 42
공배수: 63
공배수: 84
최소공배수 : 21
3. Break: 반복실행 중 break를 만나면 반복문을 빠져나온다
num = 0
while True:
print('Hello')
num += 1
if num >= 5:
break
print('The END!!')
Hello
Hello
Hello
Hello
Hello
The END!!
-> break 걸리면 while밖으로 나옴
result = 1
num = 0
for i in range(1,11):
result *= i
if result > 50:
num = i
break
print('num: {}, result: {}'.format(num, result))
limitWeight = 2200
currentWeight = 800
date = 1
while True:
date += 1
currentWeight +=70
if currentWeight >=2200:
break
print('이유식 중단 날짜: {}일'.format(date))
중첩반복문
for i in range(1, 10):
for j in range(i):
print('*', end='') # end='' ->개행하지 않음
print()