선미 파이썬 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입니다.
>>>