파이썬 반복문과 리스트

기존 유투브 영상은 설명없이 키보드로 코드를 작성하는 모습만 보여드려서 보기가 불편하여, 정답 코드로 대체합니다.
본 컨텐츠는 저작권법의 보호를 받으며, 무단 복제, 가공, 외부 오픈이 확인될 경우, 법적 책임을 물을 수 있습니다,

Exercise 31. 반복문

  • 1 ~ 10까지의 숫자에 대해 모두 더한 값을 출력하는 프로그램을 for 문을 사용하여 작성하세요.
In [1]:
sum = 0
for num in range(1, 11):
    sum += num
print (sum)
55

Exercise 32. 반복문

  • 사용자로부터 2 ~ 9 사이의 숫자를 입력 받은 후, 해당 숫자에 대한 구구단을 출력하세요.
In [16]:
digit = int(input())
for num in range(1, 10):
    print (digit, "x", num, "=", digit * num)
9
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

Exercise 33. 반복문과 문자열 다루기 (split)

  • 사용자로부터 , 로 구분된 여러 이름을 입력받아서, 한 줄에 하나씩 이름을 출력하세요
    • 사용자 입력: Dave,David,Andy,Arthor
    • 출력 예:
      Dave
      David
      Andy
      Arthor
In [20]:
strings = input()
for string in strings.split(","):
    print (string)
Dave,David,Andy,Arthor
Dave
David
Andy
Arthor

Exercise 34. 반복문과 문자열 다루기 (split)

  • 사용자로부터 [이름1],[이름2],[이름3] 과 같은 형식으로 데이터를 입력받아서, 한 줄에 하나씩 이름을 출력하세요
    • 사용자 입력: [Dave],[David],[Andy],[Arthor]
    • 출력 예:
      Dave
      David
      Andy
      Arthor
In [26]:
strings = "[Dave],[David],[Andy],[Arthor]"
for string in strings.split(","):
    # print (string)
    print (string.strip("[]"))
Dave
David
Andy
Arthor

Exercise 35. 반복문과 조건문

  • 1부터 30까지의 숫자 중 3의 배수만 출력하세요.
In [28]:
for num in range(1, 31):
    if num % 3 == 0:
        print (num)
3
6
9
12
15
18
21
24
27
30

Exercise 36. 반복문 (while)

  • 1부터 100까지 숫자를 모두 더한 값을 출력하세요.
    • 단 while 구문을 사용해서 작성하세요.
In [32]:
total, num = 0, 1

while num < 101:
    total += num
    num += 1

print (total)  
5050

Exercise 37. 반복문 (while)

  • 사용자로부터 4자리의 숫자로 구성된 데이터를 입력받아서
    • 비밀번호와 같으면 '비밀번호가 맞습니다.'를 출력하고 종료하세요.
    • 비밀번호와 다르면 '비밀번호가 틀렸습니다.'를 출력하고 다시 사용자로부터 데이터를 입력받으세요.
      • 비밀번호는 4312 입니다.
In [36]:
password = "4312"
data = str()

while data != password:
    data = input()
    if data == password:
        print ("비밀번호가 맞습니다.")
        break
    else:
        print ("비밀번호가 틀렸습니다.")
111
비밀번호가 틀렸습니다.
111
비밀번호가 틀렸습니다.
4312
비밀번호가 맞습니다.

Exercise 38. 데이터 구조와 반복문 (리스트)

  • 다음 리스트 변수에서 음수 데이터를 삭제하고, 양수만 가진 리스트 변수로 만들고, 해당 변수를 출력하세요.
num_list = [0, -11, 31, 22, -11, 33, -44, -55]
In [51]:
num_list = [0, -11, 31, 22, -11, 33, -44, -55]
num_list2 = list()

for index, num in enumerate(num_list):
    if num >= 0:
        num_list2.append(num)
    
print (num_list2)
[0, 31, 22, 33]

Exercise 39. 데이터 구조와 반복문 (리스트)

  • 다음 리스트에 있는 데이터의 길이를 한 라인에 하나씩 출력하세요.
list_data = ["fun-coding", "Dave", "Linux", "Python", "javascript", "front-end", "back-end", "dataengineering"]
In [61]:
list_data = ["fun-coding", "Dave", "Linux", "Python", "javascript", "front-end", "back-end", "dataengineering"]
for data in list_data:
    print ("\"" + data + "\"" + "'s length is", len(data))
"fun-coding"'s length is 10
"Dave"'s length is 4
"Linux"'s length is 5
"Python"'s length is 6
"javascript"'s length is 10
"front-end"'s length is 9
"back-end"'s length is 8
"dataengineering"'s length is 15

Exercise 40. 데이터 구조와 반복문 (리스트)

  • 다음 리스트에 있는 숫자를 역 방향으로 출력하세요.
    • 단, 리스트에 있는 숫자들은 한 라인에 하나씩 출력하세요.
      data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      
  • 실행 예:
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
In [64]:
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
data.reverse()

for item in data:
    print (item)
10
9
8
7
6
5
4
3
2
1

Exercise 41. 데이터 구조 (리스트), 반복문, 문자열 다루기

  • 다음과 같이 파일 이름(확장자 포함) 저장하고 있는 리스트가 있을 때 확장자를 제거하고 파일 이름만 출력하세요.
filelist = ['exercise01.docx', 'exercise02.docx', 'exercise03.docx', 'exercise04.docx', 'exercise05.docx']
In [69]:
filelist = ['exercise01.docx', 'exercise02.docx', 'exercise03.docx', 'exercise04.docx', 'exercise05.docx']

for filename in filelist:
    print (filename.split(".")[0])
exercise01
exercise02
exercise03
exercise04
exercise05

Exercise 42. 데이터 구조 (리스트), 반복문, 조건문, 문자열 다루기

  • 파일 이름이 다음과 같은 리스트에 저장되어 있을 때 확장자가 .txt 인 파일에 대한 리스트를 출력하라
filelist = ['exercise01.docx', 'exercise02.csv', 'exercise03.txt', 'exercise04.hwp']
In [72]:
filelist = ['exercise01.docx', 'exercise02.csv', 'exercise03.txt', 'exercise04.hwp']

for filename in filelist:
    if filename.split(".")[1] == "txt":
        print (filename)
exercise03.txt

Exercise 43. 문자열 다루기와 조건문

  • prices 변수에 입력된 값을 원 화로 바꿔서 계산하세요.
prices = '100 달러'
  • 환율은 다음과 같음
    통화단위 원화 환율
    달러 1112

출력:
111200 원

In [77]:
prices = '100 달러'
price = prices.split()
print (int(price[0]) * 1112, "원")
111200 원

Exercise 44. 문자열 다루기와 조건문

  • 사용자로부터 달러 또는 위안 금액을 입력받은 후 이를 원으로 바꿔서 계산하세요.
    • 사용자는 100 달러, 100 위안 과 같이 금액과 통화명 사이에 공백을 넣어 입력하기로 합니다.
    • 각 통화별 환율은 다음과 같습니다.
      통화단위 원화 환율
      달러 1112
      위안 171

출력:
111200 원

In [81]:
prices = '100 위안'
price = prices.split()
if price[1] == "달러":
    print (int(price[0]) * 1112, "원")
elif price[1] == "위안":
    print (int(price[0]) * 171, "원")
17100 원

Exercise 45. 문자열 다루기, 조건문, 데이터 구조 (dictionary)

  • 다음 통화별 환율을 통화단위와 원화 환율을 가진 딕셔너리로 만들고 사용자로부터 달러, 엔, 또는 위안 금액을 입력받은 후 이를 원으로 바꿔서 계산하세요.
    • 사용자는 100 달러, 100 위안 과 같이 금액과 통화명 사이에 공백을 넣어 입력하기로 합니다.
      통화단위 원화 환율
      달러 1112
      위안 171
      1010
In [86]:
exchange = {"달러": 1112, "위안": 171, "엔": 1010}

prices = input()
price = prices.split()
if price[1] == "달러" or price[1] == "위안" or price[1] == "엔":
    print (int(price[0]) * exchange[price[1]], "원")
100 위안
17100 원

Exercise 46. 이중 반복문

  • 구구단을 2단부터 9단까지 다음과 같이 출력하세요
    • 출력 예
      2 X 1 = 2
      2 X 2 = 4
      2 X 3 = 6
      2 X 4 = 8
      2 X 5 = 10
      2 X 6 = 12
      2 X 7 = 14
      2 X 8 = 16
      2 X 9 = 18
      3 X 1 = 3
      3 X 2 = 6
      .
      .
      .
      9 X 7 = 63
      9 X 8 = 72
      9 X 9 = 81
      
In [89]:
for num1 in range(2, 10):
    for num2 in range(1, 10):
        print (num1, "x", num2, "=", num1 * num2)
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

Exercise 47. 이중 반복문과 조건문

  • 구구단을 2단부터 9단까지 출력하되, 계산 값이 짝수인 경우에만 출력하세요
    • 예: 3 X 3 = 9 에서 9는 홀수이므로 출력하지 않는다.
    • 예: 2 X 4 = 8 에서 8은 짝수이므로 출력한다.
    • 최종 출력 예
      2 X 2 = 4
      2 X 3 = 6
      2 X 4 = 8
      2 X 5 = 10
      2 X 6 = 12
      2 X 7 = 14
      2 X 8 = 16
      2 X 9 = 18
      3 X 2 = 6
      3 X 4 = 12
      3 X 6 = 18
      3 X 8 = 24
      4 X 2 = 8
      4 X 3 = 12
      4 X 4 = 16
      4 X 5 = 20
      4 X 6 = 24
      4 X 7 = 28
      4 X 8 = 32
      4 X 9 = 36
      5 X 2 = 10
      5 X 4 = 20
      5 X 6 = 30
      5 X 8 = 40
      6 X 2 = 12
      6 X 3 = 18
      6 X 4 = 24
      6 X 5 = 30
      6 X 6 = 36
      6 X 7 = 42
      6 X 8 = 48
      6 X 9 = 54
      7 X 2 = 14
      7 X 4 = 28
      7 X 6 = 42
      7 X 8 = 56
      8 X 2 = 16
      8 X 3 = 24
      8 X 4 = 32
      8 X 5 = 40
      8 X 6 = 48
      8 X 7 = 56
      8 X 8 = 64
      8 X 9 = 72
      9 X 2 = 18
      9 X 4 = 36
      9 X 6 = 54
      9 X 8 = 72
      
In [93]:
for num1 in range(2, 10):
    for num2 in range(1, 10):
        result = num1*num2
        if result % 2 == 0:
            print (num1, "x", num2, "=", result)
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
3 x 2 = 6
3 x 4 = 12
3 x 6 = 18
3 x 8 = 24
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
5 x 2 = 10
5 x 4 = 20
5 x 6 = 30
5 x 8 = 40
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
7 x 2 = 14
7 x 4 = 28
7 x 6 = 42
7 x 8 = 56
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
9 x 2 = 18
9 x 4 = 36
9 x 6 = 54
9 x 8 = 72

Exercise 48. 이중 반복문과 데이터 구조 (리스트)

  • 아파트 동호수를 다음과 같은 두 리스트 변수를 활용해서 출력하세요.
    • 단, 각 동과 동 사이에는 구분이 되도록 한 라인씩 띄워서 출력하세요
dongs = ["6209동", "6208동", "6207동"]
hos = ["101호", "102호", "103호", "104호"]
  • 출력 예:
    6209동 101호
    6209동 102호
    6209동 103호
    6209동 104호
    
    6208동 101호
    6208동 102호
    6208동 103호
    6208동 104호
    
    6207동 101호
    6207동 102호
    6207동 103호
    6207동 104호
    
In [96]:
dongs = ["6209동", "6208동", "6207동"]
hos = ["101호", "102호", "103호", "104호"]
for dong in dongs:
    for ho in hos:
        print (dong, ho)
6209동 101호
6209동 102호
6209동 103호
6209동 104호
6208동 101호
6208동 102호
6208동 103호
6208동 104호
6207동 101호
6207동 102호
6207동 103호
6207동 104호
In [ ]: