선미 파이썬 0323 10일차
azuremei
필기
''' 2. for문 - 리스트, 튜플, 문자열 등 요소가 나열된 자요형의 첫 요소부터 마지막 요소까지 차례로 변수에 대입 - 요소개수만큼 반복 [for문 기본 구조] for 변수 in 리스트 : 수행문 (이때 변수에는 리스트의 요소 값이 대입된 상태) for문에서 사용되는 변수는 대입되는 것이므로 미리 만들어놓지 않아도 된다(while문과는 다름>>개꿀) ''' print() print("[for문]") #for a in [1, 2, 3] : # print(a) #원래 우리가 알던 in은 '조건식'에서 사용될 때 #특정 값이 리스트의 요소에 포함되었는지 판별해서 True/False로 반별해주는 것, for문에서는 a가 리스트의 1, 2, 3에 대입되어 리스트가 끝날 때 까지 명령을 수행한다. for a in ["한국", "중국", "일본", 10] : print(a*2) #변수가 숫자만일 필요가 없다 ##문자열은 한 문자가 하나의 요소이다. #for a in "ABCD" : # print(a) for d in "ABCD" : print(d) #수행문에서 꼭 저 변수(d)를 사용해야 하는 건 아니다. # print(하하호호)라고 해도 출력이 가능 #d라는 변수는 살아있다. print("for문이 끝난 뒤의 d의 값 : ", d) #리스트 안의 튜플을 순서대로 튜플 변수에 담기 for (a, b) in [(1, 2), (3, 4),] : print("({}, {})".format(a,b)) #요소가 중요, 하나으 ㅣ요소 형태만 동일하게 해주면 대입 가능(>>리스트의 요소가 값이 두 개 있는 튜플 형태이므로 값이 두 개 있는 튜플로 대입을 받았다.) #for문에서 값을 받는 변수도 동일한 형태로 맞춰졌다. print() #range() : 지정한 범위 만큼의 숫자들을 '반환'(앞으로 많이 사용할 변수) #list(range(범위) ) >해당 범위만큼 숫자가 생성 >>0~9까지의 리스트가 생성 : 1이 아니라 0부터 생성한다. print(list(range(10))) print( (list(range(1, 10))) ) # 시작숫자 지정 >>>1~9까지, 끝숫자 포함x print( (range(35, 46))) # 35~45까지 print( (list(range(1, 10, 2))) ) # 2씩 증가 my_sum = 0 # 이걸 하지 않으면 for문 안에서 오류, #누적할때 my_sum+1..인데 없는 함수에 누적이 안되므로 for i in range(1, 11) : # 몇부터 몇가지 반복해라 #print(i) my_sum += i #i의 값을 my_sum에 누적(my_sum+1+my_sum+2.....??) #이 때 my_sum(숫자) print("1~10까지의 합", my_sum) #입력 횟수만큼 반복 #count = int(input("반복 횟수 입력 : ")) #for i in range(count) : #반복횟수에 5 입력시 범위 1~4 # print(i) #반복할 횟수가 정해졌을 때 포문을 사용하면 훨씬 편하다. #for문의 활용 예시 num = 0 # 몇 번째 학생인지 score_list = [30, 95, 64, 23, 100] # 점수 목록(리스트) for score in score_list : #리스트의 값이 스코어 변수에 하나씩 대입 num += 1 #넘을 만들 때 1로 만들었으면 넘+=1을 제일 마지막에 입력 if score >= 60 : print("{}번 학생 합격입니다.".format(num)) else : print("{}번 학생 불합격입니다.".format(num)) #불합격을 얘기해주면 민망하니까 합격만 얘기해주자 #컨티뉴를 사용해서 ''' num = 0 # 몇 번째 학생인지 score_list = [30, 95, 64, 23, 100] # 점수 목록(리스트) for score in score_list : #리스트의 값이 스코어 변수에 하나씩 대입 num += 1 #넘을 만들 때 1로 만들었으면 넘+=1을 제일 마지막에 입력 if score > 60 : print("{}번 학생 합격입니다.".format(num)) else : continue #for문에서 컨티뉴는 다음 점수 가지러 감 ''' ''' 반복문에 추가하기 continue for문에서는 다음 요소를 대입하는 식으로 점프 ''' #if나 for문처럼 문자열을 통일해야 하는 경우 문자열 주석도 들여쓰기를 해 줘야 함 print() #for문 활용 예시 #2중for문 >>>> 구구단 출력하기 - for문 안에 for문 하나 더 사용하기 for i in range(2, 10): #구구단의 단 #i의 for문 첫 번째 수행문 - j for문 시작 for j in range(1, 10) : #구구단에서 곱해지는 1부터 9까지의 수 #i는 2일때 j의 포문 시작 >>이때 j는 1 print("{} * {} = {} ".format(i, j, (i*j))) #i for문 두 번째 수행문 - 개행 print() ''' 2 * 1 = 2 ... 2 * 9 = 18 [개행] 3 * 1 = 3 .... 3 * 9 = 27 ''' #for문 연습 ''' 1. 1부터 입력받은 수까지 짝수의 합 구하기 [출력결과] 숫자 입력 : 5 1~5까지 짝수의 합은 6입니다.(for문과 range 이용) my_sum=0 for a in range(2, int(input("숫자 입력 : ")), 2) : my_sum +=a print("1부터 {}까지 짝수의 합은 {}입니다.".format(a, my_sum)) 2. 1부터 200까지 3과 4의 공배수(3의 배수이면서 4의 배수인)를 누적하고, 누적한 수가 1000을 초과하면 반복문 탈출, 누적한 수와 반복문 탈출할때의 변수(i)값을 출력 for i in~~~ [출력결과] 빠져나온 수 :156 누적한 수 : 1092 3. 1~100의 정수 중 2의 배수 또는 4의 배수를 역순으로 출력 2와 4의 공배수는 [4]처럼 출력하기 [출력 결과] [100] 98 [96] 94 [92].....[4] 2 ''' #자료형, 반복문 등응 앞에 한 내용 중에 어렵거나 못 풀겠는 문제 있으면 메일 보내
결과창
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D D >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45] >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45] [1, 3, 5, 7, 9] >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1 2 3 4 5 6 7 8 9 10 >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] Traceback (most recent call last): File "C:\김선미\0322.py", line 50, in <module> mysum += i #i의 값을 지정 NameError: name 'mysum' is not defined >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 반복 횟수 입력 : 6 0 1 2 3 4 5 >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 Traceback (most recent call last): File "C:\김선미\0322.py", line 57, in <module> for i in range(count) : #반복횟수에 5 입력시 범위 1~4 NameError: name 'count' is not defined >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 불합격 합격 합격 불합격 합격 >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 불합격 1번 학생 불합격입니다. 합격 2번 학생 합격입니다. 합격 3번 학생 합격입니다. 불합격 4번 학생 불합격입니다. 합격 5번 학생 합격입니다. >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 >>> 5 5 >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 합격 1번 학생 합격입니다. 합격 4번 학생 합격입니다. >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 2번 학생 합격입니다. 3번 학생 합격입니다. 5번 학생 합격입니다. >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 불합격 1번 학생 불합격입니다. 합격 2번 학생 합격입니다. 합격 3번 학생 합격입니다. 불합격 4번 학생 불합격입니다. 합격 5번 학생 합격입니다. >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 1번 학생 불합격입니다. 2번 학생 합격입니다. 3번 학생 합격입니다. 4번 학생 불합격입니다. 5번 학생 합격입니다. >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 1번 학생 불합격입니다. 2번 학생 합격입니다. 3번 학생 합격입니다. 4번 학생 불합격입니다. 5번 학생 합격입니다. 2 Traceback (most recent call last): File "C:\김선미\0322.py", line 97, in <module> print("{} * {} : ".format()) IndexError: tuple index out of range >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 1번 학생 불합격입니다. 2번 학생 합격입니다. 3번 학생 합격입니다. 4번 학생 불합격입니다. 5번 학생 합격입니다. Traceback (most recent call last): File "C:\김선미\0322.py", line 98, in <module> print("{} * {} = {} ".format(), (i, j, "=", (i*j))) IndexError: tuple index out of range >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 1번 학생 불합격입니다. 2번 학생 합격입니다. 3번 학생 합격입니다. 4번 학생 불합격입니다. 5번 학생 합격입니다. Traceback (most recent call last): File "C:\김선미\0322.py", line 98, in <module> print("{} * {} = {} ".format(), i, j, "=", (i*j)) IndexError: tuple index out of range >>> ========================== RESTART: C:\김선미\0322.py ========================== [for문] 한국한국 중국중국 일본일본 20 A B C D for문이 끝난 뒤의 d의 값 : D (1, 2) (3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] range(35, 46) [1, 3, 5, 7, 9] 1~10까지의 합 55 1번 학생 불합격입니다. 2번 학생 합격입니다. 3번 학생 합격입니다. 4번 학생 불합격입니다. 5번 학생 합격입니다. 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 >>> ========================== RESTART: C:/김선미/연습연습.py ========================== 숫자 입력 : 5 1 3 >>> ========================== RESTART: C:/김선미/연습연습.py ========================== 숫자 입력 : 5 2 4 >>> ========================== RESTART: C:/김선미/연습연습.py ========================== 숫자 입력 : 5 Traceback (most recent call last): File "C:/김선미/연습연습.py", line 21, in <module> num +=2 NameError: name 'num' is not defined >>> ========================== RESTART: C:/김선미/연습연습.py ========================== 숫자 입력 : 5 숫자 입력 : 5 Traceback (most recent call last): File "C:/김선미/연습연습.py", line 22, in <module> print("1부터 {}까지 짝수의 합은 {}입니다.".format(int(input("숫자 입력 : ")), num)) NameError: name 'num' is not defined >>> ========================== RESTART: C:/김선미/연습연습.py ========================== 숫자 입력 : 5 Traceback (most recent call last): File "C:/김선미/연습연습.py", line 21, in <module> my_sum +=2 NameError: name 'my_sum' is not defined >>> ========================== RESTART: C:/김선미/연습연습.py ========================== 숫자 입력 : 5 Traceback (most recent call last): File "C:/김선미/연습연습.py", line 21, in <module> my_sum +=a NameError: name 'my_sum' is not defined >>> ========================== RESTART: C:/김선미/연습연습.py ========================== 숫자 입력 : 5 1부터 2까지 짝수의 합은 2입니다. 1부터 4까지 짝수의 합은 6입니다. >>>