#2단 구구단 코드를 작성해보자 for i in range(10): print('2 x {} = {}'.format(i,(2*i))) #숫자를 받아서 구구단이 작성되도록 해보자 a = int(input('숫자를 입력하세요.:')) for num in range(10): print('{} x {} = {}'.format(a,num,(a*num)))
for i in range(1,11,2):
이라고 되어있을때 순차적으로 설명하자면 1 에서부터 10까지 2씩 증가한다는 뜻. (순서는 1이아닌 무조건 0부터 세야하니 11이라고 써져있어도 10까지만이라고 생각해야함)
<참고> 위의 경우에 시작이 0인 경우는 0 생략 가능, 세번째 단계를 나타내는 숫자가 1인 경우 1 생략가능
#1부터 100까지의 정수 중 2의 배수와 3의 배수를 구분해서 출력하자. n = 1 while n < 101: if n % 2 == 0: print('{}는 2의 배수이다.'.format(n)) if n % 3 == 0: print('{}는 3의 배수이다.'.format(n)) n+=1 #실행결과 2는 2의 배수이다. 3는 3의 배수이다. 4는 2의 배수이다. 6는 2의 배수이다. 6는 3의 배수이다. . . 99는 3의 배수이다. 100는 2의 배수이다.
#자동차 바퀴가 한번 구를 때마다 0.15mm씩 마모된다고 한다. #현재의 바퀴 두께가 30 mm 이고 최소 운행 가능 바퀴 두께가 20mm라고 할 때 #앞으로 구를 수 있는 횟수를 구해보자. recentWidth = 30 rotation = 0 remove = 0.15 while recentWidth >=20: rotation += 1 recentWidth -= remove saferotaioncount = rotation - 1 print(saferotaioncount) #실행결과 66
#하루에 독감으로 병원에 내방하는 환자 수가 50명에서 100명 사이일때, 누적 독감 환자 수가 최초 10,000명을 넘는 날짜를 구해보자. import random patient = random.randint(50,100) # 랜덤으로 뽑힌 환자 수 sum_patient = 0 #환자의 합 date = 0 # 날짜 일수 flag = True while flag: patient = random.randint(50, 100) date += 1 sum_patient += patient print('오늘환자수:{} \t 날짜:{} \t 누적 환자수:{}'.format(patient, date, sum_patient)) if sum_patient > 10000: flag = False #실행결과 오늘환자수:74 날짜:1 누적 환자수:74 오늘환자수:69 날짜:2 누적 환자수:143 . . 오늘환자수:68 날짜:128 누적 환자수:9821 오늘환자수:72 날짜:129 누적 환자수:9893 오늘환자수:51 날짜:130 누적 환자수:9944 오늘환자수:96 날짜:131 누적 환자수:10040
#0부터 100까지 7의 배수를 구하자 cnt = 0 for i in range(1,101): if i % 7 != 0: continue print('{} 는 7의 배수입니다'.format(i)) cnt += 1 else: print('0부터 100까지 7의 배수는 {} 개 입니다.'.format(cnt))
위에서 언급한 Continue 함수와 다르게 반복을 실행하다 break를 만나면 남은 반복문이 있더라도 그냥 종료해버리는 키워드이다. (실행을 중단하고 반복문을 빠져나옴)
break키워드를 쓰고 반복문을 빠져나와야하니 그다음 실행문은 코드블럭 밖으로 나와 써야 에러가 안난다!
#1부터 100까지 정수를 더할 때, 합계가 100이 넘는 최초의 정수 찾기. sum = 0 for i in range(100): sum += i if sum > 100: num_wanted = i break print(num_wanted) #실행결과 14
#새끼 강아지 체중이 2.2kg가 넘으면 이유식을 중단하려고 한다. 한번 이유식을 먹을때 체중이 70g 증가한다고 할때, #예상되는 이유식 중단 날짜를 구하자. (현재 체중은 800g) recentWeight = 800 date = 0 signal = True while signal: date += 1 recentWeight += 70 if recentWeight > 2200: date_wanted = date break print('예상되는 이유식 중단 날짜는: {}'.format(date_wanted),'일') #실행결과 예상되는 이유식 중단 날짜는: 21 일
반복문안에 또다른 반복문이 중첩되어 있는 것
진짜 이해안되서 보고 또보고 뜯어보고 고쳐본 중첩반복문...
한단계씩 풀어서 써보려고 한다.
1) 우선 기본 for 문을 작성
for j in range(10): print('*') #실행결과 * * * * * * * * * *
2) '*' 이 행바꿈이 되지않고 한줄에 표현되어야 하니 end=''를 활용하자
for j in range(10): print('*',end='') #실행결과 **********
3) 이것을 9줄로 늘려보자
for i in range(1,10): for j in range(10): print('*',end='') print() #실행결과 ********** ********** ********** ********** ********** ********** ********** ********** **********
4) 이것을 이제 트리모양으로 깍아(?)야 하니 식을 아래와 같이 고쳐보자.
for i in range(1,10): for j in range(1,1+i): print('*',end='') print() #실행결과 * ** *** **** ***** ****** ******* ******** *********
5) 그냥 아래와 같이 범위를 i 로 지정해도 같은 결과가 나온다.
for i in range(1,10): for j in range(i): print('*',end='') print() #실행결과 * ** *** **** ***** ****** ******* ******** *********
중첩반복문에서 완전히 멘붕🤮