"선미 파이썬 0323 10일차"의 두 판 사이의 차이

hiblue
이동: 둘러보기, 검색
(새 문서: ==필기== <pre> ''' 2. for문 - 리스트, 튜플, 문자열 등 요소가 나열된 자요형의 첫 요소부터 마지막 요소까지 차례로 변수에 대입...)
 
 
119번째 줄: 119번째 줄:
 
숫자 입력 : 5
 
숫자 입력 : 5
 
1~5까지 짝수의 합은 6입니다.(for문과 range 이용)
 
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)값을 출력
 
2. 1부터 200까지 3과 4의 공배수(3의 배수이면서 4의 배수인)를 누적하고, 누적한 수가 1000을 초과하면 반복문 탈출, 누적한 수와 반복문 탈출할때의 변수(i)값을 출력

2018년 3월 23일 (금) 21:26 기준 최신판

필기

'''
        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입니다.
>>> 

강의노트