[python기초 문제풀이]
- 반복문
반복문(01)
1부터 100까지 정수 중 십의자리와 일의자리에 대해 각각 홀/짝수를 구분하는 프로그램을 만들어보자.
for i in range(1,101): if i <=9: if i % 2 == 0: print('[{}]: 홀수!'.format(i)) else: print(('[{}]: 짝수!'.format(i))) else: num10 = i // 10 num1 = i % 10 result10 =' ' if num10 % 2 ==0: result10='짝수' else: result10 ='홀수' result1='0' if num1 !=0: if num1 % 2 ==0: result1='짝수' else: result1 ='홀수' print('[{}] 십의자리 : {}!!, 일의자리 : {}'.format(i,result10,result1)) [2]: 짝수! [3]: 홀수! [4]: 짝수! [10] 십의자리 : 홀수!!, 일의자리 : 0 [11] 십의자리 : 홀수!!, 일의자리 : 홀수 [12] 십의자리 : 홀수!!, 일의자리 : 짝수 ...➜ 9이하의 조건과,10이상의 조건 설정 후, 중첩조건 설정
➜ 십의 자리의 경우, 일의 자리가 0일경우는 조건 추가 설정 필요함반복문(02)
1부터 사용자가 입력한 정수까지의 합, 홀수의 합, 짝수의 합 그리고 팩토리얼을 출력하는 프로그램을 만들어보자.
Num =int(input('정수 입력 :')) addNum=0 for i in range(1,(Num+1)): addNum+=i addNumFormated= format(addNum,',') print('합 결과 : {} '.format(addNumFormated)) oddSum=0 for i in range(1,(Num+1)): if i % 2 !=0: oddSum+=i oddSumFormated= format(oddSum,',') print('홀수 합 결과 : {} '.format(oddSumFormated)) evenSum=0 for i in range(1,(Num+1)): if i % 2 ==0: evenSum+=i evnSumFormated= format(evenSum,',') print('짝수 합 결과 : {} '.format(evnSumFormated)) facotoria=1 for i in range(1,(Num+1)): facotoria *= i factoriaResultFormated= format(facotoria,',') print('팩토리얼 결과 : {} '.format(factoriaResultFormated)) 정수 입력 :10 합 결과 : 55 홀수 합 결과 : 25 짝수 합 결과 : 30 팩토리얼 결과 : 3,628,800반복문(03)
‘*’를 이용해서 다음과 같이 다양한 모양을 출력해보자.
for i in range(1, 6): for j in range(i): print('*', end='') print() for i1 in range(1, 6): for i2 in range(6 - i1 - 1): print(' ', end='') for i3 in range(i1): print('*', end='') print() for i in range(5, 0, -1): for j in range(i): print('*', end='') print() for i in range(5, 0, -1): for j in range(5 - i): print(' ', end='') for j in range(i): print('*', end='') print() for i in range(1, 10): if i < 5: for j in range(i): print('*', end='') else: for j in range(10-i): print('*', end='') print() for i in range(1, 6): for j in range(1, 6): if j == i: print('*', end='') else: print(' ', end='') print() for i in range(5, 0, -1): for j in range(1, 6): if j == i: print('*', end='') else: print(' ', end='') print() for i1 in range(1, 6): for i2 in range(5 - i1): print(' ', end='') for n3 in range(i1 * 2 - 1): print('*', end='') print() for i1 in range(1, 6): for i2 in range(i1 - 1): print(' ', end='') for n3 in range(11 - (i1 * 2)): print('*', end='') print()반복문(04)
집 앞 버스 정류장에서 학교까지 가는 버스 A, B, C 의 운행정보가 다음과 같을 때,
2대 이상의 버스가 정차하는 시간대를 출력해보자.busA = 15 busB = 13 busC = 8 totalMin = 17 * 60 for i in range(totalMin + 1): if i < 20 or i > (totalMin - 60): if i % busA == 0 and i % busB == 0: print('busA와 busB 동시 정차!!', end='') hour = 6 + i // 60 min = i % 60 print('\t{}:{}'.format(hour, min)) else: if i % busA == 0 and i % busB == 0: print('busA와 busB 동시 정차!!', end='') hour = 6 + i // 60 min = i % 60 print('\t{}:{}'.format(hour, min)) elif i % busA == 0 and i % busC == 0: print('busA와 busC 동시 정차!!', end='') hour = 6 + i // 60 min = i % 60 print('\t{}:{}'.format(hour, min)) elif i % busB == 0 and i % busC == 0: print('busB와 busC 동시 정차!!', end='') hour = 6 + i // 60 min = i % 60 print('\t{}:{}'.format(hour, min))반복문(05)
톱니가 각각 n1개와 n2개의 톱니바퀴가 서로 맞물려 회전할 때, 회전을 시작한 후 처음 맞물린 톱니가 최초로 다시 만나게 될 때까지의 톱니의 수와 각각의 바퀴 회전수를 출력해보자.(단, n2는 n1보다 크다.)
gearATCnt = int(input('GearA 톱니수 입력: ')) gearBTCnt = int(input('GearB 톱니수 입력: ')) # gearBTCnt가 gearATCnt보다 크다고 가정한다. gearA = 0 gearB = 0 leastNum = 0 flag = True while flag: if gearA != 0: if gearA != leastNum: gearA += gearATCnt else: flag = False else: gearA += gearATCnt if gearB != 0 and gearB % gearATCnt == 0: leastNum = gearB else: gearB += gearBTCnt print('gearA: {}, gearB: {}'.format(gearA, gearB)) print('최초 만나는 톱니수(최소공배수): {}톱니'.format(leastNum)) print('gearA 회전수: {}회전'.format(int(leastNum / gearATCnt))) print('gearB 회전수: {}회전'.format(int(leastNum / gearBTCnt)))반복문(06)
윤년 구하기
연도가 4로 나누어 떨어지고 100으로 나누어 떨어지지 않으면 윤년이다.
또는 연도가 400으로 나누어 떨어지면 윤년이다.year = int(input('연도 입력: ')) if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): print('{}년: 윤년!!'.format(year)) else: print('{}년: 평년'.format(year)) for year in range(2021, (2021+101)): if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): print('{}년: 윤년!!'.format(year)) else: print('{}년: 평년'.format(year))