├── Chapter16
├── file_16_1_2b.py
├── file_16_1_2a.py
└── file_16_1_1.py
├── Chapter25
├── file_25_1d.py
├── file_25_1e.py
├── file_25_1a.py
├── file_25_1b.py
├── file_25_1c.py
├── file_25_1f.py
├── file_25_1_5.py
├── file_25_1_4.py
└── file_25_2_5.py
├── Chapter24
├── file_24_1.py
├── file_24_2.py
├── file_24_3.py
├── file_24_1_6.py
├── file_24_1_9.py
├── file_24_1_5.py
├── file_24_2_6.py
├── file_24_1_7.py
├── file_24_1_8.py
├── file_24_2_5a.py
├── file_24_2_5b.py
└── file_24_2_5c.py
├── 연습문제_해답.pdf
├── Chapter11
├── file_11_2g.py
├── file_11_2c.py
├── file_11_2h.py
├── file_11_2n.py
├── file_11_2o.py
├── file_11_2b.py
├── file_11_2l.py
├── file_11_2_2.py
├── file_11_2m.py
├── file_11_2a.py
├── file_11_2j.py
├── file_11_2i.py
├── file_11_2e.py
├── file_11_2f.py
├── file_11_2_1b.py
├── file_11_2d.py
├── file_11_2_1a.py
└── file_11_2k.py
├── Chapter27
├── file_27_7_1a.py
├── file_27_7_2a.py
├── file_27_8_1b.py
├── file_27_8_2b.py
├── file_27_8_3b.py
├── file_27_7_2b.py
├── file_27_8_3a.py
├── file_27_8_1a.py
├── file_27_8_2a.py
├── file_27_7_3a.py
├── file_27_7_1b.py
├── file_27_8_5b.py
├── file_27_13.py
├── file_27_4c.py
├── file_27_8_5a.py
├── file_27_7_3b.py
├── file_27_7_3c.py
├── file_27_4a.py
└── file_27_4b.py
├── Chapter29
├── file_29_1_1b.py
├── file_29_1_2b.py
├── file_29_1_2a.py
├── file_29_1_1a.py
├── file_29_1_4.py
├── file_29_1_3b.py
├── file_29_1_3a.py
├── file_29_1_12.py
├── file_29_6_2.py
├── file_29_4_2.py
├── file_29_5b.py
├── file_29_6_1b.py
├── file_29_6_1a.py
├── file_29_2_2a.py
├── file_29_2_1d.py
├── file_29_2_2c.py
├── file_29_4_4b.py
├── file_29_1_11.py
├── file_29_4_4a.py
├── file_29_1_9.py
├── file_29_4_3a.py
├── file_29_5a.py
├── file_29_1_8.py
├── file_29_2_2b.py
├── file_29_2_1b.py
├── file_29_1_5.py
├── file_29_4_5a.py
├── file_29_1_10.py
├── file_29_2_1c.py
├── file_29_3_1.py
├── file_29_4_5b.py
├── file_29_2_1a.py
├── file_29_1_6.py
├── file_29_4_5c.py
├── file_29_1_7.py
├── file_29_6_4d.py
├── file_29_3_2.py
├── file_29_4_3b.py
├── file_29_4_8.py
├── file_29_3_4.py
├── file_29_5_3.py
├── file_29_4_6.py
├── file_29_5_1.py
├── file_29_4_9.py
├── file_29_3_3.py
├── file_29_6_4c.py
├── file_29_6_3b.py
├── file_29_6_3a.py
├── file_29_4_7.py
├── file_29_4_1.py
├── file_29_6_4b.py
├── file_29_5_2.py
└── file_29_6_4a.py
├── Chapter26
├── file_26_1.py
└── file_26_1_1.py
├── Chapter10
├── file_10_1.py
├── file_10_1_2a.py
├── file_10_1_5.py
├── file_10_1_2b.py
├── file_10_1_4.py
├── file_10_1_1.py
├── file_10_1_3.py
├── file_10_1_6.py
├── file_10_1_7.py
└── file_10_1_8.py
├── Chapter14
├── file_14_2b.py
├── file_14_3_1c.py
├── file_14_4e.py
├── file_14_4f.py
├── file_14_4j.py
├── file_14_4k.py
├── file_14_3_1a.py
├── file_14_4a.py
├── file_14_4d.py
├── file_14_3_1b.py
├── file_14_4_b.py
├── file_14_2a.py
├── file_14_4b.py
├── file_14_4h.py
├── file_14_4c.py
├── file_14_4g.py
├── file_14_2_1.py
├── file_14_2c.py
├── file_14_3b.py
├── file_14_4_2.py
├── file_14_3a.py
├── file_14_4i.py
├── file_14_4_a.py
├── file_14_4_1.py
├── file_14_4_3a.py
└── file_14_4_3b.py
├── Chapter17
├── file_17_1_3c.py
├── file_17_1_4.py
├── file_17_1_3b.py
├── file_17_1_3a.py
├── file_17_1_2.py
└── file_17_1_5.py
├── Chapter09
├── file_9_2.py
├── file_9_4a.py
└── file_9_4b.py
├── Chapter19
├── file_19_1_2b.py
├── file_19_1_2a.py
├── file_19_1_1.py
└── file_19_1.py
├── Chapter37
├── file_37_2a.py
├── file_37_4_2.py
├── file_37_2b.py
├── file_37_3.py
├── file_37_4_1.py
├── file_37_4.py
├── file_37_2d.py
└── file_37_2c.py
├── Chapter39
├── file_39_3a.py
├── file_39_3b.py
├── file_39_6a.py
├── file_39_6b.py
├── file_39_3d.py
├── file_39_6c.py
├── file_39_1b.py
├── file_39_1a.py
├── file_39_6d.py
├── file_39_5a.py
├── file_39_8.py
├── file_39_8_1.py
├── file_39_3c.py
├── file_39_2.py
├── file_39_6e.py
├── file_39_4c.py
├── file_39_3_1a.py
├── file_39_3_1b.py
├── file_39_3e.py
├── file_39_4a.py
├── file_39_5b.py
├── file_39_7a.py
├── file_39_4b.py
├── file_39_7b.py
└── file_39_2_1.py
├── Chapter12
├── file_12_1_2.py
├── file_12_1_3b.py
└── file_12_1_3a.py
├── Chapter31
├── file_31_4_1b.py
├── file_31_4_1a.py
├── file_31_4_4c.py
├── file_31_4_4b.py
├── file_31_4_2.py
├── file_31_4_3c.py
├── file_31_4_3a.py
├── file_31_4_3b.py
└── file_31_4_4a.py
├── Chapter22
├── file_22_5_4b.py
├── file_22_2_1.py
├── file_22_3b.py
├── file_22_2_4.py
├── file_22_2_2.py
├── file_22_1_1.py
├── file_22_1_3.py
├── file_22_1_6.py
├── file_22_1_2.py
├── file_22_5_1.py
├── file_22_4_5.py
├── file_22_4_4c.py
├── file_22_4_4b.py
├── file_22_4_7.py
├── file_22_1_7.py
├── file_22_4_1b.py
├── file_22_5_2.py
├── file_22_1_4.py
├── file_22_4_1a.py
├── file_22_5_4a.py
├── file_22_2_3.py
├── file_22_4_4a.py
├── file_22_5_3b.py
├── file_22_3a.py
├── file_22_4_3.py
├── file_22_5_3a.py
├── file_22_3_1.py
├── file_22_4_6.py
├── file_22_2_5.py
├── file_22_1_5.py
└── file_22_4_2.py
├── Chapter35
├── file_35_3_1b.py
├── file_35_6_1.py
├── file_35_3_5b.py
├── file_35_3_7c.py
├── file_35_6_2a.py
├── file_35_6_2b.py
├── file_35_3_1a.py
├── file_35_1_1b.py
├── file_35_1_6b.py
├── file_35_4_1.py
├── file_35_1_1a.py
├── file_35_3_2.py
├── file_35_3_5a.py
├── file_35_2_1.py
├── file_35_1_6a.py
├── file_35_1_3c.py
├── file_35_2_2.py
├── file_35_1_5b.py
├── file_35_3_8b.py
├── file_35_4_3.py
├── file_35_3_7b.py
├── file_35_5_2.py
├── file_35_1_2.py
├── file_35_1_3b.py
├── file_35_4_6.py
├── file_35_5_4.py
├── file_35_3_6.py
├── file_35_6_3b.py
├── file_35_3_3b.py
├── file_35_3_7a.py
├── file_35_3_8a.py
├── file_35_1_5a.py
├── file_35_6_3a.py
├── file_35_1_4c.py
├── file_35_5_7.py
├── file_35_1_3a.py
├── file_35_3_3a.py
├── file_35_1_4b.py
├── file_35_2_3.py
├── file_35_5_5.py
├── file_35_4_9.py
├── file_35_3_4.py
├── file_35_6_5.py
├── file_35_4_11.py
├── file_35_1_4a.py
├── file_35_4_4.py
├── file_35_5_9.py
├── file_35_4_7.py
├── file_35_6_4.py
├── file_35_5_10.py
└── file_35_5_6.py
├── Chapter13
├── file_13_1_1b.py
├── file_13_1_1a.py
├── file_13_1_2f.py
├── file_13_1_2a.py
├── file_13_1_2d.py
├── file_13_1_3.py
├── file_13_1_2c.py
├── file_13_1_2e.py
├── file_13_1_4.py
└── file_13_1_2b.py
├── Chapter18
├── file_18_1_2.py
├── file_18_1.py
├── file_18_1_3.py
└── file_18_1_1.py
├── Chapter33
├── file_33_7_a.py
├── file_33_7_b.py
├── file_33_7_c.py
├── file_33_7_e.py
├── file_33_2_1d.py
├── file_33_5.py
├── file_33_6.py
├── file_33_2_1c.py
├── file_33_3_1b.py
├── file_33_2_1b.py
├── file_33_2_1a.py
├── file_33_3_1a.py
├── file_33_4_1b.py
├── file_33_4_1a.py
└── file_33_7_d.py
├── Chapter38
├── file_38_4_1.py
├── file_38_2a.py
├── file_38_3.py
├── file_38_2b.py
├── file_38_4.py
└── file_38_4_2.py
├── Chapter32
├── file_32_6_1b.py
├── file_32_6_2.py
├── file_32_6_1a.py
├── file_32_4_2.py
├── file_32_6_3.py
└── file_32_4_1.py
├── Chapter41
├── file_41_1_1.py
├── file_41_1_3.py
├── file_41_1_4.py
├── file_41_1_2.py
├── file_41_2_2.py
├── file_41_1_5.py
├── file_41_2_3.py
└── file_41_2_1.py
├── .project
├── .pydevproject
└── README.md
/Chapter16/file_16_1_2b.py:
--------------------------------------------------------------------------------
1 | x = float(input())
2 | print(abs(x))
3 |
--------------------------------------------------------------------------------
/Chapter25/file_25_1d.py:
--------------------------------------------------------------------------------
1 | for i in range(0, 11):
2 | print(i)
3 |
--------------------------------------------------------------------------------
/Chapter25/file_25_1e.py:
--------------------------------------------------------------------------------
1 | for i in range(11):
2 | print(i)
3 |
--------------------------------------------------------------------------------
/Chapter25/file_25_1a.py:
--------------------------------------------------------------------------------
1 | for i in [1, 2, 3, 4, 5]:
2 | print(i)
3 |
--------------------------------------------------------------------------------
/Chapter25/file_25_1b.py:
--------------------------------------------------------------------------------
1 | for letter in "Hello":
2 | print(letter)
3 |
--------------------------------------------------------------------------------
/Chapter25/file_25_1c.py:
--------------------------------------------------------------------------------
1 | for i in range(0, 11, 1):
2 | print(i)
3 |
--------------------------------------------------------------------------------
/Chapter24/file_24_1.py:
--------------------------------------------------------------------------------
1 | i = 1
2 | while i <= 10:
3 | print(i)
4 | i += 1
5 |
--------------------------------------------------------------------------------
/연습문제_해답.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Jpub/Python_Algorithms/HEAD/연습문제_해답.pdf
--------------------------------------------------------------------------------
/Chapter11/file_11_2g.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | print(math.pi) # 출력: 3.141592653589793
--------------------------------------------------------------------------------
/Chapter25/file_25_1f.py:
--------------------------------------------------------------------------------
1 | a = 10
2 | b = 0
3 | for i in range(a, b, -2):
4 | print(i)
5 |
--------------------------------------------------------------------------------
/Chapter27/file_27_7_1a.py:
--------------------------------------------------------------------------------
1 | s = "안녕하세요!"
2 |
3 | for letter in s:
4 | print(letter)
5 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2c.py:
--------------------------------------------------------------------------------
1 | c, d = divmod(13, 4)
2 |
3 | print(c, d, sep = ", ") # 출력: 3, 1
4 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_1b.py:
--------------------------------------------------------------------------------
1 | s = 0
2 | for i in range(1, 101):
3 | s = s + i
4 | print(s)
5 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_2b.py:
--------------------------------------------------------------------------------
1 | p = 1
2 | for i in range(2, 12, 2):
3 | p = p * i
4 | print(p)
5 |
--------------------------------------------------------------------------------
/Chapter26/file_26_1.py:
--------------------------------------------------------------------------------
1 | for i in range(1, 3):
2 | for j in range(1, 4):
3 | print(i, j)
4 |
--------------------------------------------------------------------------------
/Chapter26/file_26_1_1.py:
--------------------------------------------------------------------------------
1 | for i in range(4):
2 | for j in range(3):
3 | print("안녕! 철수")
4 |
--------------------------------------------------------------------------------
/Chapter10/file_10_1.py:
--------------------------------------------------------------------------------
1 | a = int(input("숫자를 입력하여라: "))
2 |
3 | b = a ** 2
4 |
5 | print(a, "의 제곱:", b)
6 |
--------------------------------------------------------------------------------
/Chapter16/file_16_1_2a.py:
--------------------------------------------------------------------------------
1 | x = float(input())
2 |
3 | if x < 0:
4 | x = (-1) * x
5 |
6 | print(x)
7 |
--------------------------------------------------------------------------------
/Chapter24/file_24_2.py:
--------------------------------------------------------------------------------
1 | i = 1
2 | while True:
3 | print(i)
4 | i += 1
5 | if i > 10: break
6 |
--------------------------------------------------------------------------------
/Chapter24/file_24_3.py:
--------------------------------------------------------------------------------
1 | i = 1
2 | while True:
3 | print(i)
4 | if i >= 10: break
5 | i += 1
6 |
--------------------------------------------------------------------------------
/Chapter27/file_27_7_2a.py:
--------------------------------------------------------------------------------
1 | x = 2
2 |
3 | for i in range (-2, 3):
4 | x = x ** 2
5 |
6 | print(x)
7 |
--------------------------------------------------------------------------------
/Chapter27/file_27_8_1b.py:
--------------------------------------------------------------------------------
1 | s = 0
2 | for i in range(1, 11, 2):
3 | s = s + i ** 2
4 |
5 | print(s)
6 |
--------------------------------------------------------------------------------
/Chapter27/file_27_8_2b.py:
--------------------------------------------------------------------------------
1 | s = 0
2 | for y in range(5, -3, -2):
3 | s = s + 2 * y
4 |
5 | print(s)
6 |
--------------------------------------------------------------------------------
/Chapter27/file_27_8_3b.py:
--------------------------------------------------------------------------------
1 | s = 0
2 | for i in range(1, 6):
3 | s = s + (i + 1) ** 2
4 |
5 | print(s)
6 |
--------------------------------------------------------------------------------
/Chapter14/file_14_2b.py:
--------------------------------------------------------------------------------
1 | a = "Hello World"
2 |
3 | print(a[-1]) # 마지작 문자를 출력
4 | print(a[-3]) # 문자 r을 출력
5 |
--------------------------------------------------------------------------------
/Chapter14/file_14_3_1c.py:
--------------------------------------------------------------------------------
1 | s = input("네 개 문자를 가진 단어를 입력하여라: ")
2 |
3 | s_rev = str[::-1]
4 |
5 | print(s_rev)
6 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4e.py:
--------------------------------------------------------------------------------
1 | a = "My NaMe is JohN"
2 | b = a.lower()
3 |
4 | print(b) # 출력: my name is john
5 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4f.py:
--------------------------------------------------------------------------------
1 | a = "My NaMe is JohN"
2 | b = a.upper()
3 |
4 | print(b) # 출력: MY NAME IS JOHN
5 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4j.py:
--------------------------------------------------------------------------------
1 | import string
2 |
3 | print(string.ascii_lowercase) # 출력: abcdefghijklmnopqrstuvwxyz
4 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4k.py:
--------------------------------------------------------------------------------
1 | import string
2 |
3 | print(string.ascii_uppercase) # 출력: ABCDEFGHIJKLMNOPQRSTUVWXYZ
4 |
--------------------------------------------------------------------------------
/Chapter27/file_27_7_2b.py:
--------------------------------------------------------------------------------
1 | x = 2
2 |
3 | i = -2
4 | while i < 3:
5 | x = x ** 2
6 | i = i + 1
7 |
8 | print(x)
9 |
--------------------------------------------------------------------------------
/Chapter27/file_27_8_3a.py:
--------------------------------------------------------------------------------
1 | s = 0
2 | i = 1
3 |
4 | while i < 6:
5 | i += 1
6 | s = s + i ** 2
7 |
8 | print(s)
9 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_2a.py:
--------------------------------------------------------------------------------
1 | p = 1
2 |
3 | i = 2
4 | while i <= 10:
5 | p = p * i
6 | i += 2
7 |
8 | print(p)
9 |
--------------------------------------------------------------------------------
/Chapter17/file_17_1_3c.py:
--------------------------------------------------------------------------------
1 | a = float(input())
2 | b = float(input())
3 |
4 | maximum = max(a, b)
5 | print("큰 값: ", maximum)
6 |
--------------------------------------------------------------------------------
/Chapter27/file_27_8_1a.py:
--------------------------------------------------------------------------------
1 | s = 0
2 | i = 1
3 |
4 | while i <= 9:
5 | s = s + i ** 2
6 | i += 2
7 |
8 | print(s)
9 |
--------------------------------------------------------------------------------
/Chapter27/file_27_8_2a.py:
--------------------------------------------------------------------------------
1 | s = 0
2 | y = 5
3 |
4 | while y != -3:
5 | s = s + 2 * y
6 | y = y - 2
7 |
8 | print(s)
9 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_1a.py:
--------------------------------------------------------------------------------
1 | s = 0
2 |
3 | i = 1
4 | while i <= 100:
5 | s = s + i
6 | i = i + 1
7 |
8 | print(s)
9 |
--------------------------------------------------------------------------------
/Chapter14/file_14_3_1a.py:
--------------------------------------------------------------------------------
1 | s = input("네 개 문자를 가진 단어를 입력하여라: ")
2 |
3 | s_rev = s[3] + s[2] + s[1] + s[0]
4 |
5 | print(s_rev)
6 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4a.py:
--------------------------------------------------------------------------------
1 | a = " Hello "
2 | b = a.strip()
3 |
4 | print(b, "Poseidon!") # Hello Poseidon!을 출력한다.
5 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4d.py:
--------------------------------------------------------------------------------
1 | a = "I am newbie in Python. Python rocks!"
2 | i = a.find("newbie")
3 |
4 | print(i) # 출력: 5
5 |
--------------------------------------------------------------------------------
/Chapter17/file_17_1_4.py:
--------------------------------------------------------------------------------
1 | x = int(input("정수를 입력하여라: "))
2 |
3 | if x % 2 == 0:
4 | print("짝수")
5 | else:
6 | print("홀수")
7 |
--------------------------------------------------------------------------------
/Chapter27/file_27_7_3a.py:
--------------------------------------------------------------------------------
1 | f = int(input())
2 | x = 3
3 |
4 | for j in range(20, f, -5):
5 | x = x / 2
6 |
7 | print(x, j)
8 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_4.py:
--------------------------------------------------------------------------------
1 | N = int(input())
2 | s = 0
3 | for i in range(3, 3 * N + 3, 3):
4 | s = s + i ** i
5 |
6 | print(s)
7 |
--------------------------------------------------------------------------------
/Chapter10/file_10_1_2a.py:
--------------------------------------------------------------------------------
1 | radius = float(input("반지름값을 입력하여라: "))
2 |
3 | area = 3.14159 * radius ** 2
4 |
5 | print("원의 면적: ", area)
6 |
--------------------------------------------------------------------------------
/Chapter14/file_14_3_1b.py:
--------------------------------------------------------------------------------
1 | s = input("네 개 문자를 가진 단어를 입력하여라: ")
2 |
3 | a, b, c, d = s
4 | s_rev = d + c + b + a
5 |
6 | print(s_rev)
7 |
--------------------------------------------------------------------------------
/Chapter16/file_16_1_1.py:
--------------------------------------------------------------------------------
1 | a = int(input())
2 |
3 | y = 5
4 | if a * 2 > 100:
5 | a = a * 3
6 | y = a * 4
7 |
8 | print(a, y)
9 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_3b.py:
--------------------------------------------------------------------------------
1 | N = int(input())
2 | s = 0
3 | for i in range(2, 2 * N + 2, 2):
4 | s = s + i ** 2
5 |
6 | print(s)
7 |
--------------------------------------------------------------------------------
/Chapter25/file_25_1_5.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | n = int(input("정수를 입력하여라: "))
4 |
5 | for i in range(n + 1):
6 | print(math.sqrt(i))
7 |
--------------------------------------------------------------------------------
/Chapter27/file_27_7_1b.py:
--------------------------------------------------------------------------------
1 | s = "안녕하세요!"
2 |
3 | i = 0
4 | while i < len(s) :
5 | letter = s[i]
6 | print(letter)
7 | i += 1
8 |
--------------------------------------------------------------------------------
/Chapter27/file_27_8_5b.py:
--------------------------------------------------------------------------------
1 | s = 0
2 |
3 | for y in range(5, -10, -3):
4 | s = s - 2 * y
5 | s = s - 4 * (y - 3)
6 |
7 | print(s)
8 |
--------------------------------------------------------------------------------
/Chapter09/file_9_2.py:
--------------------------------------------------------------------------------
1 | #-*- coding: utf-8 -*-
2 | name = input("이름을 입력하세요: ")
3 | print("안녕하세요, ", name, "님!", sep="")
4 | print("좋은 하루 보내세요!")
5 |
--------------------------------------------------------------------------------
/Chapter10/file_10_1_5.py:
--------------------------------------------------------------------------------
1 | fahrenheit = float(input("화씨 온도를 입력하여라: "))
2 |
3 | kelvin = (fahrenheit + 459.67) / 1.8
4 |
5 | print("켈빈 온도:", kelvin)
--------------------------------------------------------------------------------
/Chapter14/file_14_4_b.py:
--------------------------------------------------------------------------------
1 | number = int(input("정수를 입력하여라: "))
2 |
3 | reversed_number = int(str(number)[::-1])
4 |
5 | print(reversed_number)
6 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_3a.py:
--------------------------------------------------------------------------------
1 | N = int(input())
2 | s = 0
3 | i = 2
4 | while i <= 2 * N:
5 | s = s + i ** 2
6 | i += 2
7 |
8 | print(s)
9 |
--------------------------------------------------------------------------------
/Chapter09/file_9_4a.py:
--------------------------------------------------------------------------------
1 | S = 0
2 | a = float(input("첫 번째 수를 입력하세요: "))
3 | b = float(input("두 번째 수를 입력하세요: "))
4 | s = a + b
5 | print("두 수의 합:", S)
6 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2h.py:
--------------------------------------------------------------------------------
1 | a = "5.2"
2 | b = "2.4"
3 |
4 | print(a + b) # 출력: 5.22.4
5 | print(float(a) + float(b)) # 출력: 7.6
6 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2n.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | seq = [5.5, 6.3, 2] # 숫자들의 시퀀스를 변수 seq에 할당
4 | print(math.fsum(seq)) # 출력: 13.8
5 |
--------------------------------------------------------------------------------
/Chapter19/file_19_1_2b.py:
--------------------------------------------------------------------------------
1 | a = float(input())
2 |
3 | if a > 0:
4 | print("양수")
5 | elif a < 0:
6 | print("음수")
7 | else:
8 | print("0")
9 |
--------------------------------------------------------------------------------
/Chapter27/file_27_13.py:
--------------------------------------------------------------------------------
1 | for i in range(1, 10):
2 | for j in range(1, 10):
3 | print(i, "x", j, "=", i * j, end = "\t")
4 | print()
5 |
--------------------------------------------------------------------------------
/Chapter37/file_37_2a.py:
--------------------------------------------------------------------------------
1 | def get_message():
2 | msg = "안녕 철수"
3 | return msg
4 |
5 | # 메인 코드
6 | print("안녕!")
7 | a = get_message()
8 | print(a)
--------------------------------------------------------------------------------
/Chapter39/file_39_3a.py:
--------------------------------------------------------------------------------
1 | def f1(b):
2 | b += 1
3 | print(b) # 11이 출력됨
4 |
5 | # 메인 코드
6 | a = 10
7 | f1(a)
8 | print(a) # 10이 출력됨
9 |
--------------------------------------------------------------------------------
/Chapter39/file_39_3b.py:
--------------------------------------------------------------------------------
1 | def f1(a):
2 | a += 1
3 | print(a) # 11이 출력됨
4 |
5 | # 메인 코드
6 | a = 10
7 | f1(a)
8 | print(a) # 10이 출력됨
9 |
--------------------------------------------------------------------------------
/Chapter10/file_10_1_2b.py:
--------------------------------------------------------------------------------
1 | PI = 3.14159
2 |
3 | radius = float(input("반지름값을 입력하여라: "))
4 |
5 | area = PI * radius ** 2
6 |
7 | print("원의 면적: ", area)
8 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2o.py:
--------------------------------------------------------------------------------
1 | import math # math 모듈을 임포트한다.
2 |
3 | a = math.tan(10)
4 | print(a) # 출력: 0.6483608274590866
5 |
--------------------------------------------------------------------------------
/Chapter12/file_12_1_2.py:
--------------------------------------------------------------------------------
1 | x = float(input("x 값을 입력하여라: "))
2 | z = float(input("z 값을 입력하여라: "))
3 |
4 | y = 10 * x - (10 - z) / 4
5 |
6 | print("결과:", y)
7 |
--------------------------------------------------------------------------------
/Chapter25/file_25_1_4.py:
--------------------------------------------------------------------------------
1 | total = 0
2 |
3 | for i in range(10):
4 | a = float(input("숫자를 입력하여라: "))
5 | total = total + a
6 |
7 | print(total)
8 |
--------------------------------------------------------------------------------
/Chapter27/file_27_4c.py:
--------------------------------------------------------------------------------
1 | s = "I have a dream"
2 |
3 | letter = input("검색할 영문자를 입력하여라: ")
4 |
5 | if letter in s:
6 | print("문자", letter, "를 찾았습니다.")
7 |
--------------------------------------------------------------------------------
/Chapter27/file_27_8_5a.py:
--------------------------------------------------------------------------------
1 | s = 0
2 | y = 5
3 |
4 | while y > -9:
5 | s = s - 2 * y
6 | y = y - 3
7 | s = s - 4 * y
8 |
9 | print(s)
10 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_12.py:
--------------------------------------------------------------------------------
1 | x = int(input("숫자를 입력하여라: "))
2 | count = 0
3 |
4 | while x != 0:
5 | count += 1
6 | x = x // 10
7 |
8 | print(count)
9 |
--------------------------------------------------------------------------------
/Chapter29/file_29_6_2.py:
--------------------------------------------------------------------------------
1 | grains = 1
2 | total = 1
3 | for i in range(63):
4 | grains = 2 * grains
5 | total = total + grains
6 |
7 | print(total)
8 |
--------------------------------------------------------------------------------
/Chapter31/file_31_4_1b.py:
--------------------------------------------------------------------------------
1 | words = [None] * 10
2 | for i in range(10):
3 | words[i] = input()
4 |
5 | for word in words[::-1]:
6 | print(word)
7 |
--------------------------------------------------------------------------------
/Chapter10/file_10_1_4.py:
--------------------------------------------------------------------------------
1 | a = float(input("가속도값을 입력하여라: "))
2 | t = float(input("주행 시간을 입력하여라: "))
3 |
4 | S = 0.5 * a * t ** 2
5 |
6 | print("주행 거리(m):", S)
7 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2b.py:
--------------------------------------------------------------------------------
1 | import math # math 모듈을 임포트한다.
2 |
3 | p = 3.14159265
4 | a = math.cos(2 * p)
5 |
6 | print(a) # 출력: 1.0
7 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2l.py:
--------------------------------------------------------------------------------
1 | import math # math 모듈을 임포트한다.
2 |
3 | a = math.sin(3 * math.pi / 2)
4 | print(a) # 출력: -1.0
5 |
--------------------------------------------------------------------------------
/Chapter14/file_14_2a.py:
--------------------------------------------------------------------------------
1 | a = "Hello World"
2 |
3 | print(a[0]) # 첫 번째 문자를 출력
4 | print(a[6]) # 문자 W를 출력
5 | print(a[10]) # 마지작 문자를 출력
6 |
--------------------------------------------------------------------------------
/Chapter17/file_17_1_3b.py:
--------------------------------------------------------------------------------
1 | a = float(input())
2 | b = float(input())
3 |
4 | maximum = a
5 | if b > a:
6 | maximum = b
7 |
8 | print("큰 값: ", maximum)
9 |
--------------------------------------------------------------------------------
/Chapter22/file_22_5_4b.py:
--------------------------------------------------------------------------------
1 | sentence = input("영어 문장을 입력하여라: ")
2 |
3 | if sentence[0] == sentence[0].upper() and sentence[-1] in ".?!":
4 | print("이상 없음!")
5 |
--------------------------------------------------------------------------------
/Chapter24/file_24_1_6.py:
--------------------------------------------------------------------------------
1 | p = 1
2 |
3 | i = 1
4 | while i <= 20:
5 | a = float(input())
6 | p = p * a
7 |
8 | i += 1
9 |
10 | print(p)
11 |
--------------------------------------------------------------------------------
/Chapter24/file_24_1_9.py:
--------------------------------------------------------------------------------
1 | total = 0
2 |
3 | a = float(input())
4 | while a != -1:
5 | total = total + a
6 | a = float(input())
7 |
8 | print(total)
9 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_2.py:
--------------------------------------------------------------------------------
1 | for x in range(-20, 21):
2 | for y in range(-20, 21):
3 | if 3 * x ** 2 - 6 * y ** 2 == 6:
4 | print(x, y)
5 |
--------------------------------------------------------------------------------
/Chapter39/file_39_6a.py:
--------------------------------------------------------------------------------
1 | def display_value():
2 | print(test) # 10 출력
3 |
4 | # 메인 코드
5 | test = 10
6 | display_value()
7 | print(test) # 10 출력
8 |
--------------------------------------------------------------------------------
/Chapter27/file_27_7_3b.py:
--------------------------------------------------------------------------------
1 | f = int(input())
2 | x = 3
3 |
4 | j = 20
5 | while j > f:
6 | x = x / 2
7 | j += -5
8 |
9 | j -= -5
10 | print(x, j)
11 |
--------------------------------------------------------------------------------
/Chapter27/file_27_7_3c.py:
--------------------------------------------------------------------------------
1 | f = int(input())
2 | x = 3
3 |
4 | j = 20
5 | while j > f:
6 | x = x / 2
7 | j -= 5
8 |
9 | j += 5
10 | print(x, j)
11 |
--------------------------------------------------------------------------------
/Chapter31/file_31_4_1a.py:
--------------------------------------------------------------------------------
1 | words = [None] * 10
2 | for i in range(10):
3 | words[i] = input()
4 |
5 | for i in range(9, -1, -1):
6 | print(words[i])
7 |
--------------------------------------------------------------------------------
/Chapter10/file_10_1_1.py:
--------------------------------------------------------------------------------
1 | base = float(input("밑변을 입력하여라: "))
2 | height = float(input("높이를 입력하여라: "))
3 |
4 | area = base * height
5 |
6 | print("평행 사변형의 면적:", area)
7 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4b.py:
--------------------------------------------------------------------------------
1 | a = "I am newbie in Java. Java rocks!"
2 | b = a.replace("Java", "Python")
3 |
4 | print(b) # 츨력: I am newbie in Python. Python rocks
5 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4h.py:
--------------------------------------------------------------------------------
1 | age = int(input("당신의 나이를 입력하여라: "))
2 |
3 | new_age = age + 10
4 | message = "10년 후 당신의 나이는 " + str(new_age) + "살 입니다."
5 |
6 | print(message)
7 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4c.py:
--------------------------------------------------------------------------------
1 | a = "Hello Olympians!"
2 | print(len(a)) # 출력: 16
3 |
4 | b = "I am newbie in Python"
5 | k = len(b)
6 | print(k) # 출력: 21
7 |
--------------------------------------------------------------------------------
/Chapter22/file_22_2_1.py:
--------------------------------------------------------------------------------
1 | x = float(input())
2 |
3 | if x == 0 or x == 4:
4 | print("오류: 0-나눗셈")
5 | else:
6 | y = (5 + x) / x + (x + 9) / (x - 4)
7 | print(y)
8 |
--------------------------------------------------------------------------------
/Chapter24/file_24_1_5.py:
--------------------------------------------------------------------------------
1 | total = 0
2 |
3 | i = 1
4 | while i <= 4:
5 | a = float(input())
6 | total = total + a
7 |
8 | i += 1
9 |
10 | print(total)
11 |
--------------------------------------------------------------------------------
/Chapter24/file_24_2_6.py:
--------------------------------------------------------------------------------
1 | p = 1
2 |
3 | a = float(input())
4 | while True:
5 | p = p * a
6 | a = float(input())
7 | if a == -1: break
8 |
9 | print(p)
10 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4g.py:
--------------------------------------------------------------------------------
1 | a = "I am newbie in Java. Java rocks!"
2 | b = a.replace("Java", "Python").upper()
3 |
4 | print(b) # 출력: I AM NEWBIE IN PYTHON. PYTHON ROCKS
5 |
--------------------------------------------------------------------------------
/Chapter17/file_17_1_3a.py:
--------------------------------------------------------------------------------
1 | a = float(input())
2 | b = float(input())
3 |
4 | if b > a:
5 | maximum = b
6 | else:
7 | maximum = a
8 |
9 | print("큰 값: ", maximum)
10 |
--------------------------------------------------------------------------------
/Chapter24/file_24_1_7.py:
--------------------------------------------------------------------------------
1 | n = int(input())
2 |
3 | p = 1
4 |
5 | i = 1
6 | while i <= n:
7 | a = float(input())
8 | p = p * a
9 | i += 1
10 |
11 | print(p)
12 |
--------------------------------------------------------------------------------
/Chapter29/file_29_5b.py:
--------------------------------------------------------------------------------
1 | maximum = -1
2 |
3 | for i in range(10):
4 | w = int(input("몸무게값을 입력하여라: "))
5 | if w > maximum:
6 | maximum = w
7 |
8 | print(maximum)
9 |
--------------------------------------------------------------------------------
/Chapter35/file_35_3_1b.py:
--------------------------------------------------------------------------------
1 | LAKES = 20
2 |
3 | depths = [None] * LAKES
4 | for i in range(LAKES):
5 | depths[i] = float(input())
6 |
7 | maximum = max(depths)
8 | print(maximum)
--------------------------------------------------------------------------------
/Chapter39/file_39_6b.py:
--------------------------------------------------------------------------------
1 | def display_value():
2 | test = 20
3 | print(test) # 20 출력
4 |
5 | # 메인 코드
6 | test = 10
7 | display_value()
8 | print(test) # 10 출력
9 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2_2.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | a = float(input("가속도값을 입력하여라: "))
4 | S = float(input("주행 거리를 입력하여라: "))
5 |
6 | t = math.sqrt(2 * S / a)
7 |
8 | print("주행 시간(초):", t)
9 |
--------------------------------------------------------------------------------
/Chapter14/file_14_2_1.py:
--------------------------------------------------------------------------------
1 | number = int(input("세 자리 정수를 입력하여라: "))
2 |
3 | digit1, digit2, digit3 = str(number)
4 |
5 | total = int(digit1) + int(digit2) + int(digit3)
6 | print(total)
7 |
--------------------------------------------------------------------------------
/Chapter14/file_14_2c.py:
--------------------------------------------------------------------------------
1 | name = "Zeus"
2 |
3 | a, b, c, d = name
4 |
5 | print(a) # 문자 Z을 출력
6 | print(b) # 문자 e을 출력
7 | print(c) # 문자 u을 출력
8 | print(d) # 문자 s을 출력
9 |
--------------------------------------------------------------------------------
/Chapter19/file_19_1_2a.py:
--------------------------------------------------------------------------------
1 | a = float(input())
2 |
3 | if a > 0:
4 | print("양수")
5 | else:
6 | if a < 0:
7 | print("음수")
8 | else:
9 | print("0")
10 |
--------------------------------------------------------------------------------
/Chapter22/file_22_3b.py:
--------------------------------------------------------------------------------
1 | print("네 사람의 몸무게를 입력하여라: ")
2 |
3 | w1 = int(input())
4 | w2 = int(input())
5 | w3 = int(input())
6 | w4 = int(input())
7 |
8 | print(min(w1, w2, w3, w4))
9 |
--------------------------------------------------------------------------------
/Chapter29/file_29_6_1b.py:
--------------------------------------------------------------------------------
1 | for f in range(0, 1001, 5):
2 | fahrenheit = f / 10
3 | kelvin = (fahrenheit + 459.67) / 1.8
4 | print("화씨 온도:", fahrenheit, "켈빈 온도:", kelvin)
5 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2m.py:
--------------------------------------------------------------------------------
1 | import math # math 모듈을 임포트한다.
2 |
3 | print(math.sqrt(9)) # 출력: 3.0
4 | print(math.sqrt(2)) # 출력: 1.4142135623730951
5 |
--------------------------------------------------------------------------------
/Chapter37/file_37_4_2.py:
--------------------------------------------------------------------------------
1 | def total(a, b):
2 | return a + b
3 |
4 | # 메인 코드
5 | num1 = float(input())
6 | num2 = float(input())
7 |
8 | print(num1, "+", num2, ":", total(num1, num2))
9 |
--------------------------------------------------------------------------------
/Chapter10/file_10_1_3.py:
--------------------------------------------------------------------------------
1 | miles_driven = float(input("주행한 총 마일을 입력하여라: "))
2 | gallons = float(input("소비된 갤런 값을 입력하여라: "))
3 |
4 | mpg = miles_driven / gallons
5 |
6 | print("자동차 연비(MPG):", mpg)
--------------------------------------------------------------------------------
/Chapter11/file_11_2a.py:
--------------------------------------------------------------------------------
1 | a = -5
2 | b = abs(a)
3 |
4 | print(abs(a)) # 출력: 5
5 | print(b) # 출력: 5
6 | print(abs(-5.2)) # 출력: 5.2
7 | print(abs(5.2)) # 출력: 5.2
--------------------------------------------------------------------------------
/Chapter13/file_13_1_1b.py:
--------------------------------------------------------------------------------
1 | number1 = int(input("첫 번째 숫자를 입력하여라: "))
2 | number2 = int(input("두 번째 숫자를 입력하여라: "))
3 |
4 | q, r = divmod(number1, number2)
5 |
6 | print("몫값:", q, "\n나머지 값:", r)
7 |
--------------------------------------------------------------------------------
/Chapter24/file_24_1_8.py:
--------------------------------------------------------------------------------
1 | total = 0
2 |
3 | i = 1
4 | while i <= 20:
5 | a = int(input())
6 | if a % 2 != 0:
7 | total= total + a
8 | i += 1
9 |
10 | print(total)
11 |
--------------------------------------------------------------------------------
/Chapter24/file_24_2_5a.py:
--------------------------------------------------------------------------------
1 | n = int(input())
2 |
3 | p = 1
4 |
5 | i = 1
6 |
7 | while i <= n:
8 | a = float(input())
9 | p = p * a
10 |
11 | i += 1
12 |
13 | print(p)
14 |
--------------------------------------------------------------------------------
/Chapter29/file_29_6_1a.py:
--------------------------------------------------------------------------------
1 | fahrenheit = 0
2 | while fahrenheit <= 100:
3 | kelvin = (fahrenheit + 459.67) / 1.8
4 | print("화씨 온도:", fahrenheit, "켈빈 온도:", kelvin)
5 | fahrenheit += 0.5
6 |
--------------------------------------------------------------------------------
/Chapter17/file_17_1_2.py:
--------------------------------------------------------------------------------
1 | a = float(input())
2 |
3 | z = a * 10
4 | w = (z - 4) * (a - 3) / 7 + 36
5 |
6 | if a < z >= w:
7 | y = 2 * a
8 | else:
9 | y = 4 * a
10 |
11 | print(y)
12 |
--------------------------------------------------------------------------------
/Chapter29/file_29_2_2a.py:
--------------------------------------------------------------------------------
1 | for i in range(100, 1000):
2 | digit3, r = divmod(i, 100)
3 | digit2, digit1 = divmod(r, 10)
4 | if digit3 < digit2 and digit2 < digit1:
5 | print(i)
6 |
--------------------------------------------------------------------------------
/Chapter37/file_37_2b.py:
--------------------------------------------------------------------------------
1 | def display(color):
2 | msg = "무지개에 " + color + "이 있다."
3 | return msg
4 |
5 | # 메인 코드
6 | print(display("빨간색"))
7 | print(display("노란색"))
8 | print(display("파란색"))
9 |
--------------------------------------------------------------------------------
/Chapter14/file_14_3b.py:
--------------------------------------------------------------------------------
1 | a = "Hello World"
2 |
3 | print(a[3:-2]) # "lo Wor"를 출력
4 | print(a[-4:-2]) # 문자 o와 r을 출력
5 | print(a[-3:]) # "rld"를 출력
6 | print(a[:-3]) # "Hello Wo"를 출력
7 |
--------------------------------------------------------------------------------
/Chapter19/file_19_1_1.py:
--------------------------------------------------------------------------------
1 | x = int(input())
2 | y = 10
3 |
4 | if x < 30:
5 | if x < 15:
6 | y = y + 2
7 | else:
8 | y -= 1
9 | else:
10 | y += 1
11 |
12 | print(y)
13 |
--------------------------------------------------------------------------------
/Chapter29/file_29_2_1d.py:
--------------------------------------------------------------------------------
1 | x = input("한 자릿수 정수(0 - 9)를 입력하여라: ")
2 |
3 | for i in range(100, 1000):
4 | digit3, digit2, digit1 = str(i)
5 | if x in [digit3, digit2, digit1]:
6 | print(i)
7 |
--------------------------------------------------------------------------------
/Chapter29/file_29_2_2c.py:
--------------------------------------------------------------------------------
1 | for digit3 in range(1, 8):
2 | for digit2 in range(digit3 + 1, 9):
3 | for digit1 in range(digit2 + 1, 10):
4 | print(digit3 * 100 + digit2 * 10 + digit1)
5 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_4b.py:
--------------------------------------------------------------------------------
1 | x = int(input())
2 |
3 | number_of_divisors = 2
4 | for i in range(2, x // 2 + 1):
5 | if x % i == 0:
6 | number_of_divisors += 1
7 |
8 | print(number_of_divisors)
9 |
--------------------------------------------------------------------------------
/Chapter39/file_39_3d.py:
--------------------------------------------------------------------------------
1 | def f1(a):
2 | a[0] += 1
3 | print(a[0]) # 6이 출력됨
4 |
5 | # 메인 코드
6 | a = [5, 10, 15, 20]
7 | print(a[0]) # 5가 출력됨
8 | f1(a)
9 | print(a[0]) # 6이 출력됨
10 |
--------------------------------------------------------------------------------
/Chapter39/file_39_6c.py:
--------------------------------------------------------------------------------
1 | def display_value():
2 | print(test) # 이 명령문에서 오류가 발생한다.
3 | test = 20
4 | print(test)
5 |
6 | # 메인 코드
7 | test = 10
8 | display_value()
9 | print(test)
10 |
--------------------------------------------------------------------------------
/Chapter13/file_13_1_1a.py:
--------------------------------------------------------------------------------
1 | number1 = int(input("첫 번째 숫자를 입력하여라: "))
2 | number2 = int(input("두 번째 숫자를 입력하여라: "))
3 |
4 | q = number1 // number2
5 | r = number1 % number2
6 |
7 | print("몫값:", q, "\n나머지 값:", r)
8 |
--------------------------------------------------------------------------------
/Chapter18/file_18_1_2.py:
--------------------------------------------------------------------------------
1 | x = int(input("정수를 입력하여라(0 - 999): "))
2 |
3 | if x <= 9:
4 | count = 1
5 | elif x <= 99:
6 | count = 2
7 | else:
8 | count = 3
9 |
10 | print("자릿수:", count)
11 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_11.py:
--------------------------------------------------------------------------------
1 | x = int(input())
2 | s = 0
3 |
4 | while x != 0:
5 | digit = x % 10 # x MOD 10 연산
6 | s = s + digit
7 | x = x // 10 # x DIV 10 연산
8 |
9 | print(s)
10 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_4a.py:
--------------------------------------------------------------------------------
1 | x = int(input())
2 |
3 | number_of_divisors = 0
4 | for i in range(1, x + 1):
5 | if x % i == 0:
6 | number_of_divisors += 1
7 |
8 | print(number_of_divisors)
9 |
--------------------------------------------------------------------------------
/Chapter09/file_9_4b.py:
--------------------------------------------------------------------------------
1 | a = float(input("첫 번째 수를 입력하세요: "))
2 | b = float(input("두 번째 수를 입력하세요: "))
3 | s = a + b
4 | d = a - b
5 | average = a + b / 2
6 | print("합:", s)
7 | print("차:", d)
8 | print("평균:", average)
9 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_9.py:
--------------------------------------------------------------------------------
1 | count = 0
2 |
3 | x = float(input("숫자를 입력하여라: "))
4 | while int(x) == x:
5 | if x > 0:
6 | count += 1
7 | x = float(input("숫자를 입력하여라: "))
8 |
9 | print(count)
10 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_3a.py:
--------------------------------------------------------------------------------
1 | m1 = int(input())
2 | m2 = int(input())
3 | s = 0
4 | while m2 != 0:
5 | if m2 % 2 != 0:
6 | s += m1
7 |
8 | m1 *= 2
9 | m2 //= 2
10 |
11 | print(s)
12 |
--------------------------------------------------------------------------------
/Chapter35/file_35_6_1.py:
--------------------------------------------------------------------------------
1 | DAYS = 31
2 |
3 | t = [None] * DAYS
4 |
5 | for i in range(DAYS):
6 | t[i] = int(input())
7 |
8 | for i in range(DAYS):
9 | if t[i] < 2:
10 | print(i + 1, end = "\t")
--------------------------------------------------------------------------------
/Chapter39/file_39_1b.py:
--------------------------------------------------------------------------------
1 | def f1(test):
2 | test += 1
3 | print(test) # f1() 프로시저의 test 변수를 출력한다(6을 출력).
4 |
5 | # 메인 코드
6 | test = 5
7 | f1(test)
8 | print(test) # 메인 코드의 test 변수를 출력한다(5를 출력).
9 |
--------------------------------------------------------------------------------
/Chapter24/file_24_2_5b.py:
--------------------------------------------------------------------------------
1 | n = int(input())
2 |
3 | p = 1
4 |
5 | i = 1
6 |
7 | while True:
8 | a = float(input())
9 | p = p * a
10 |
11 | i += 1
12 | if i > n: break
13 |
14 | print(p)
15 |
--------------------------------------------------------------------------------
/Chapter31/file_31_4_4c.py:
--------------------------------------------------------------------------------
1 | import math
2 | ELEMENTS = 50
3 |
4 | values = [None] * ELEMENTS
5 | for i in range(ELEMENTS):
6 | values[i] = float(input())
7 |
8 | total = math.fsum(values)
9 |
10 | print(total)
--------------------------------------------------------------------------------
/Chapter29/file_29_5a.py:
--------------------------------------------------------------------------------
1 | w = int(input("몸무게값을 입력하여라: "))
2 | maximum = w
3 |
4 | for i in range(9):
5 | w = int(input("몸무게값을 입력하여라: "))
6 | if w > maximum:
7 | maximum = w
8 |
9 | print(maximum)
10 |
--------------------------------------------------------------------------------
/Chapter31/file_31_4_4b.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 50
2 |
3 | values = [None] * ELEMENTS
4 |
5 | total = 0
6 | for i in range(ELEMENTS):
7 | values[i] = float(input())
8 | total = total + values[i]
9 |
10 | print(total)
--------------------------------------------------------------------------------
/Chapter33/file_33_7_a.py:
--------------------------------------------------------------------------------
1 | a = [3, 6, 10, 12, 4, 2, 1]
2 |
3 | print(len(a)) # 출력: 7
4 |
5 | length = len(a[2:4])
6 | print(length) # 출력: 2
7 |
8 | for i in range(len(a)):
9 | print (a[i], end = " ") # 출력: 3 6 10 12 4 2 1
--------------------------------------------------------------------------------
/Chapter10/file_10_1_6.py:
--------------------------------------------------------------------------------
1 | VAT = 0.19
2 | price_before_tax = float(input("상품의 세전 가격을 입력하여라: "))
3 |
4 | sales_tax = price_before_tax * VAT
5 | price_after_tax = price_before_tax + sales_tax
6 |
7 | print("세후 가격:", price_after_tax)
--------------------------------------------------------------------------------
/Chapter14/file_14_4_2.py:
--------------------------------------------------------------------------------
1 | import random
2 |
3 | last_name = input("당신의 영문 성 이름을 입력하여라: ")
4 |
5 | # 100과 999 사이의 랜덤 정수를 얻는다.
6 | random_int = random.randrange(100, 1000)
7 |
8 | print(last_name[:4].lower() + str(random_int))
9 |
--------------------------------------------------------------------------------
/Chapter22/file_22_2_4.py:
--------------------------------------------------------------------------------
1 | a = float(input("a 값을 입력하여라: "))
2 | b = float(input("b 값을 입력하여라: "))
3 |
4 | if a != 0:
5 | x = -b / a
6 | print(x)
7 | elif b != 0:
8 | print("불능")
9 | else:
10 | print("부정")
11 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_8.py:
--------------------------------------------------------------------------------
1 | count = 0
2 |
3 | total = 0 # total 변수의 초기화
4 | while total <= 1000:
5 | x = float(input())
6 | count += 1
7 | total += x # total 변수의 갱신/변경
8 |
9 | print(count)
10 |
--------------------------------------------------------------------------------
/Chapter37/file_37_3.py:
--------------------------------------------------------------------------------
1 | def add( n1, n2, n3 ):
2 | result = n1 + n2 + n3
3 | return result
4 |
5 | # 메인 코드
6 | a = input()
7 | b = input()
8 | c = input()
9 |
10 | total = add( a, b, c )
11 |
12 | print(total)
13 |
--------------------------------------------------------------------------------
/Chapter31/file_31_4_2.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 5
2 |
3 | values = [None] * ELEMENTS
4 |
5 | for i in range(ELEMENTS):
6 | values[i] = float(input())
7 | for value in values[::-1]:
8 | if value > 0:
9 | print(value)
10 |
--------------------------------------------------------------------------------
/Chapter38/file_38_4_1.py:
--------------------------------------------------------------------------------
1 | def display_abs(n):
2 | if n < 0:
3 | n = (-1) * n
4 | print(n)
5 |
6 | # 메인 코드
7 | a = float(input())
8 | display_abs(a) #입력값에 대한 절댓값을 출력한다.
9 | print(a) #입력값을 출력한다.
10 |
--------------------------------------------------------------------------------
/Chapter31/file_31_4_3c.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 100
2 |
3 | values = [None] * ELEMENTS
4 |
5 | for i in range(ELEMENTS):
6 | values[i] = int(input())
7 |
8 | for value in values[1::2]:
9 | if value % 2 == 0:
10 | print(value)
--------------------------------------------------------------------------------
/Chapter37/file_37_4_1.py:
--------------------------------------------------------------------------------
1 | def total(a, b):
2 | s = a + b
3 | return s
4 |
5 | # 메인 코드가 여기서 시작된다.
6 | num1 = float(input())
7 | num2 = float(input())
8 | result = total(num1, num2)
9 | print(num1, "+", num2, ":", result)
10 |
--------------------------------------------------------------------------------
/Chapter39/file_39_1a.py:
--------------------------------------------------------------------------------
1 | def f1():
2 | test = 22
3 | print(test)
4 | return True
5 |
6 | def f2(test):
7 | print(test)
8 |
9 | # 메인 코드
10 | test = 5
11 | print(test)
12 | ret = f1()
13 | f2(10)
14 | print(test)
15 |
--------------------------------------------------------------------------------
/Chapter39/file_39_6d.py:
--------------------------------------------------------------------------------
1 | def display_value():
2 | global test
3 | print(test) # 10 출력
4 | test = 20
5 | print(test) # 20 출력
6 |
7 | # 메인 코드
8 | test = 10
9 | display_value()
10 | print(test) # 20 출력
11 |
--------------------------------------------------------------------------------
/Chapter12/file_12_1_3b.py:
--------------------------------------------------------------------------------
1 | x = float(input("x 값을 입력하여라: "))
2 | w = float(input("w 값을 입력하여라: "))
3 | z = float(input("z 값을 입력하여라: "))
4 |
5 | y = (5 * (3 * x ** 2 + 5 * x + 2)/(7 * w - 1 / z) - z)/(4 * ((3 + x) / 7))
6 |
7 | print("결과:", y)
8 |
--------------------------------------------------------------------------------
/Chapter29/file_29_2_2b.py:
--------------------------------------------------------------------------------
1 | for digit3 in range(1, 10):
2 | for digit2 in range(10):
3 | for digit1 in range(10):
4 | if digit3 < digit2 and digit2 < digit1:
5 | print(digit3 * 100 + digit2 * 10 + digit1)
6 |
--------------------------------------------------------------------------------
/Chapter31/file_31_4_3a.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 100
2 | values = [None] * ELEMENTS
3 |
4 | for i in range(ELEMENTS):
5 | values[i] = int(input())
6 |
7 | for i in range(ELEMENTS):
8 | if i % 2 != 0 and values[i] % 2 == 0:
9 | print(values[i])
--------------------------------------------------------------------------------
/Chapter14/file_14_3a.py:
--------------------------------------------------------------------------------
1 | a = "Hello World"
2 |
3 | print(a[7:9]) # 문자 o와 r을 출력
4 |
5 | print(a[4:10:2]) # step이 2로 설정. 문자 o, W, r을 출력
6 |
7 | print(a[7:]) # 문자 o, r, l, d를 출력
8 |
9 | print(a[:3]) # 문자 H, e, l을 출력
10 |
--------------------------------------------------------------------------------
/Chapter24/file_24_2_5c.py:
--------------------------------------------------------------------------------
1 | n = int(input())
2 |
3 | p = 1
4 |
5 | i = 1
6 | if i <= n:
7 | while True:
8 | a = float(input())
9 | p = p * a
10 |
11 | i += 1
12 | if i > n: break
13 |
14 | print(p)
15 |
--------------------------------------------------------------------------------
/Chapter29/file_29_2_1b.py:
--------------------------------------------------------------------------------
1 | x = int(input("한 자릿수 정수(0 - 9)를 입력하여라: "))
2 |
3 | for i in range(100, 1000):
4 | digit3, r = divmod(i, 100)
5 | digit2, digit1 = divmod(r, 10)
6 |
7 | if x in [digit1, digit2, digit3]:
8 | print(i)
9 |
--------------------------------------------------------------------------------
/Chapter37/file_37_4.py:
--------------------------------------------------------------------------------
1 | def maximum(val1, val2):
2 | m = val1
3 | if val2 > m:
4 | m = val2
5 | return m
6 |
7 | # 메인 코드
8 | a = float(input())
9 | b = float(input())
10 | maxim = maximum(a, b)
11 |
12 | print(maxim)
13 |
--------------------------------------------------------------------------------
/Chapter38/file_38_2a.py:
--------------------------------------------------------------------------------
1 | def display_line():
2 | print("-----------------------------")
3 |
4 | # 메인 코드
5 | print("안녕하세요!")
6 | display_line()
7 | print("어떻게 지내세요?")
8 | display_line()
9 | print("당신의 이름은 무엇입니까?")
10 | display_line()
11 |
--------------------------------------------------------------------------------
/Chapter31/file_31_4_3b.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 100
2 |
3 | values = [None] * ELEMENTS
4 |
5 | for i in range(ELEMENTS):
6 | values[i] = int(input())
7 |
8 | for i in range(1, ELEMENTS, 2):
9 | if values[i] % 2 == 0:
10 | print(values[i])
--------------------------------------------------------------------------------
/Chapter31/file_31_4_4a.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 50
2 |
3 | values = [None] * ELEMENTS
4 | for i in range(ELEMENTS):
5 | values[i] = float(input())
6 |
7 | total = 0
8 | for i in range(ELEMENTS):
9 | total = total + values[i]
10 |
11 | print(total)
--------------------------------------------------------------------------------
/Chapter13/file_13_1_2f.py:
--------------------------------------------------------------------------------
1 | number = int(input("다섯 자리 정수를 입력하여라: "))
2 |
3 | r, digit5 = divmod(number, 10)
4 | r, digit4 = divmod(r, 10)
5 | r, digit3 = divmod(r, 10)
6 | digit1, digit2 = divmod(r, 10)
7 |
8 | print(digit1, digit2, digit3, digit4, digit5)
9 |
--------------------------------------------------------------------------------
/Chapter18/file_18_1.py:
--------------------------------------------------------------------------------
1 | name = input("이름이 무엇인가요?")
2 |
3 | if name == "홍길동":
4 | print("나의 삼촌이군요!")
5 | elif name == "김영희":
6 | print("나의 누나군요!")
7 | elif name == "김영숙":
8 | print("나의 엄마군요!")
9 | else:
10 | print("죄송하지만 나는 당신을 모릅니다.")
11 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_5.py:
--------------------------------------------------------------------------------
1 | s = 0
2 | count = 0
3 | for i in range(100):
4 | x = float(input())
5 | if x > 0:
6 | s = s + x
7 | count += 1
8 |
9 | if count != 0:
10 | print(s / count)
11 | else:
12 | print("숫자가 입력되지 않습니다!")
13 |
--------------------------------------------------------------------------------
/Chapter35/file_35_3_5b.py:
--------------------------------------------------------------------------------
1 | CITIES = 10
2 | DAYS = 31
3 |
4 | # 입력받은 값을 리스트 t에 저장한다.
5 | t = [ [None] * DAYS for i in range(CITIES) ]
6 | for i in range(CITIES):
7 | for j in range(DAYS):
8 | t[i][j] = int(input())
9 |
10 | print(min(t))
--------------------------------------------------------------------------------
/Chapter39/file_39_5a.py:
--------------------------------------------------------------------------------
1 | def prepend_title(name, title = "Mr."):
2 | return title + " " + name
3 |
4 | # 메인 코드
5 |
6 | # Mr. John King 출력
7 | print(prepend_title("John King"))
8 |
9 | # Ms. Maria Miller 출력
10 | print(prepend_title("Maria Miller", "Ms."))
--------------------------------------------------------------------------------
/Chapter39/file_39_8.py:
--------------------------------------------------------------------------------
1 | def factorial(value):
2 | if value == 1:
3 | return_value = 1
4 | else:
5 | return_value = value * factorial(value - 1)
6 |
7 | return return_value
8 |
9 | # 메인 코드
10 | print(factorial(5)) # 120 출력
11 |
--------------------------------------------------------------------------------
/Chapter39/file_39_8_1.py:
--------------------------------------------------------------------------------
1 | def Fib(n):
2 | if n == 0 or n == 1:
3 | return_value = n
4 | else:
5 | return_value = Fib(n - 1) + Fib(n - 2)
6 |
7 | return return_value
8 |
9 | # 메인 코드
10 | num = int(input())
11 | print(Fib(num))
12 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2j.py:
--------------------------------------------------------------------------------
1 | # [1, 2, 3, 4, 5]를 변수 a에 할당
2 | a = range(1, 6)
3 |
4 | # [0, 1, 2, 3, 4, 5]를 변수 b에 할당
5 | b = range(6)
6 |
7 | # [0, 10, 20, 30, 40]를 변수 c에 할당
8 | c = range(0, 50, 10)
9 |
10 | # [100, 95, 90, 85]를 변수 d에 할당
11 | d = range(100, 80, -5)
--------------------------------------------------------------------------------
/Chapter27/file_27_4a.py:
--------------------------------------------------------------------------------
1 | s = "I have a dream"
2 |
3 | letter = input("검색할 영문자를 입력하여라: ")
4 |
5 | found = False
6 | for a in s:
7 | if a == letter:
8 | found = True
9 | break
10 |
11 | if found == True:
12 | print("문자 ", letter, "를 찾았습니다.")
--------------------------------------------------------------------------------
/Chapter39/file_39_3c.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 10
2 |
3 | def display(b):
4 | for i in range(ELEMENTS):
5 | print(b[i], end = "\t")
6 |
7 | # 메인 코드
8 | a = [None] * ELEMENTS
9 | for i in range(ELEMENTS):
10 | a[i] = int(input())
11 |
12 | display(a)
13 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_5a.py:
--------------------------------------------------------------------------------
1 | x = int(input("1보다 큰 정수를 입력하여라: "))
2 |
3 | number_of_divisors = 2
4 | for i in range(2, x // 2 + 1):
5 | if x % i == 0:
6 | number_of_divisors += 1
7 |
8 | if number_of_divisors == 2:
9 | print("숫자", x, "은/는 소수입니다.")
10 |
--------------------------------------------------------------------------------
/Chapter35/file_35_3_7c.py:
--------------------------------------------------------------------------------
1 | ROWS = 30
2 | COLUMNS = 20
3 |
4 | a = [ [None] * COLUMNS for i in range(ROWS) ]
5 |
6 | for i in range(ROWS):
7 | for j in range(COLUMNS):
8 | a[i][j] = float(input())
9 |
10 | for row in a:
11 | print(min(row), max(row))
--------------------------------------------------------------------------------
/Chapter35/file_35_6_2a.py:
--------------------------------------------------------------------------------
1 | DAYS = 31
2 |
3 | t = [None] * DAYS
4 |
5 | for i in range(DAYS):
6 | t[i] = int(input())
7 |
8 | count = 0
9 | for i in range(DAYS):
10 | if t[i] < 2:
11 | count += 1
12 |
13 | if count != 0:
14 | print("강설 가능성이 있습니다.")
--------------------------------------------------------------------------------
/Chapter39/file_39_2.py:
--------------------------------------------------------------------------------
1 | def add(number1, number2):
2 | result = number1 + number2
3 | return result
4 |
5 | def display_sum(num1, num2):
6 | print(add(num1, num2))
7 |
8 | # 메인 코드
9 | a = int(input())
10 | b = int(input())
11 |
12 | display_sum(a, b)
13 |
--------------------------------------------------------------------------------
/Chapter22/file_22_2_2.py:
--------------------------------------------------------------------------------
1 | x = float(input())
2 |
3 | if x >= 0:
4 | if x == 0 or x == 3:
5 | print("오류: 0-나눗셈")
6 | else:
7 | y = (7 + x) / (x - 3) + (3 - x) / x
8 | print(y)
9 | else:
10 | y = 40 * x / (x - 5) + 3
11 | print(y)
12 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_10.py:
--------------------------------------------------------------------------------
1 | while True:
2 | print("두 개의 숫자를 입력하여라: ")
3 | a = int(input())
4 | b = int(input())
5 |
6 | result = a ** b
7 | print("결과: ", result)
8 |
9 | answer = input("반복하시겠습니까? ")
10 | if answer.upper() != "YES": break
11 |
--------------------------------------------------------------------------------
/Chapter17/file_17_1_5.py:
--------------------------------------------------------------------------------
1 | pay_rate = float(input())
2 | hours_worked = int(input())
3 |
4 | if hours_worked <= 40:
5 | gross_pay = pay_rate * hours_worked
6 | else:
7 | gross_pay = pay_rate * 40 + 1.5 * pay_rate * (hours_worked - 40)
8 |
9 | print("급여:", gross_pay)
10 |
--------------------------------------------------------------------------------
/Chapter35/file_35_6_2b.py:
--------------------------------------------------------------------------------
1 | DAYS = 31
2 |
3 | t = [None] * DAYS
4 |
5 | for i in range(DAYS):
6 | t[i] = int(input())
7 |
8 | found = False
9 | for i in range(DAYS):
10 | if t[i] < 2:
11 | found = True
12 |
13 | if found == True:
14 | print("강설 가능성이 있습니다.")
--------------------------------------------------------------------------------
/Chapter37/file_37_2d.py:
--------------------------------------------------------------------------------
1 | def get_fullname():
2 | first_name = input("영문 성을 입력하여라: ")
3 | last_name = input("영문 이름을 입력하여라: ")
4 | return first_name, last_name
5 |
6 | # 메인 코드
7 | fname, lname = get_fullname()
8 | print("영문 성:", fname)
9 | print("영문 이름:", lname)
10 |
--------------------------------------------------------------------------------
/Chapter38/file_38_3.py:
--------------------------------------------------------------------------------
1 | def add_and_display ( n1, n2, n3, n4 ):
2 | result = n1 + n2 + n3 + n4
3 | print(result)
4 |
5 |
6 | # 메인 코드
7 | a = float(input())
8 | b = float(input())
9 | c = float(input())
10 | d = float(input())
11 | add_and_display ( a, b, c, d )
12 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2i.py:
--------------------------------------------------------------------------------
1 | import random # random 모듈을 임포트한다.
2 |
3 | # 0과 65535 사이의 랜덤 정수를 출력한다.
4 | print(random.randrange(0, 65536))
5 |
6 | # 0과 10 사이의 랜덤 정수를 출력한다.
7 | print(random.randrange(11))
8 |
9 | # -20과 20 사이의 랜덤 정수를 출력한다.
10 | print(random.randrange(-20, 21))
11 |
--------------------------------------------------------------------------------
/Chapter13/file_13_1_2a.py:
--------------------------------------------------------------------------------
1 | number = int(input("네 자리 정수를 입력하여라: "))
2 |
3 | digit1 = number // 1000
4 | r = number % 1000
5 |
6 | digit2 = r // 100
7 | r = r % 100
8 |
9 | digit3 = r // 10
10 | digit4 = r % 10
11 |
12 | total = digit1 + digit2 + digit3 + digit4
13 | print(total)
--------------------------------------------------------------------------------
/Chapter13/file_13_1_2d.py:
--------------------------------------------------------------------------------
1 | number = int(input("네 자리 정수를 입력하여라: "))
2 |
3 | digit4 = number % 10
4 | r = number // 10
5 |
6 | digit3 = r % 10
7 | r = r // 10
8 |
9 | digit2 = r % 10
10 | digit1 = r // 10
11 |
12 | total = digit1 + digit2 + digit3 + digit4
13 | print(total)
14 |
--------------------------------------------------------------------------------
/Chapter22/file_22_1_1.py:
--------------------------------------------------------------------------------
1 | n1 = int(input("첫 번째 정수를 입력하여라: "))
2 | n2 = int(input("두 번째 정수를 입력하여라: "))
3 |
4 | if n1 % 2 == 0 and n2 % 2 == 0:
5 | print("두 수 모두 짝수입니다.")
6 | elif n1 % 2 != 0 and n2 % 2 != 0:
7 | print("두 수 모두 홀수입니다.")
8 | else:
9 | print("특별하지 않네요!")
10 |
--------------------------------------------------------------------------------
/Chapter29/file_29_2_1c.py:
--------------------------------------------------------------------------------
1 | x = int(input("한 자릿수 정수(0 - 9)를 입력하여라: "))
2 |
3 | for digit3 in range(1, 10):
4 | for digit2 in range(10):
5 | for digit3 in range(10):
6 | if x in [digit1, digit2, digit3]:
7 | print(digit3 * 100 + digit2 * 10 + digit1)
8 |
--------------------------------------------------------------------------------
/Chapter38/file_38_2b.py:
--------------------------------------------------------------------------------
1 | def display_line(length):
2 | for i in range(length):
3 | print("-", end = "")
4 | print()
5 |
6 | # 메인 코드
7 | print("안녕하세요!")
8 | display_line(12)
9 | print("어떻게 지내세요?")
10 | display_line(14)
11 | print("당신의 이름은 무엇입니까?")
12 | display_line(18)
--------------------------------------------------------------------------------
/Chapter19/file_19_1.py:
--------------------------------------------------------------------------------
1 | x = int(input("숫자를 입력하여라: "))
2 |
3 | if x < 1 or x > 3:
4 | print("올바르지 않은 값입니다.")
5 | else:
6 | if x == 1:
7 | print("1을 입력하였습니다")
8 | elif x == 2:
9 | print("2을 입력하였습니다")
10 | elif x == 3:
11 | print("3을 입력하였습니다")
12 |
--------------------------------------------------------------------------------
/Chapter29/file_29_3_1.py:
--------------------------------------------------------------------------------
1 | import math
2 | import re
3 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
4 |
5 | while True:
6 | inp = input("음수가 아닌 숫자를 입력하여라: ")
7 | if re.match(IS_NUMERIC, inp) and float(inp) >= 0: break
8 |
9 | x = float(inp)
10 |
11 | y = math.sqrt(x)
12 | print(y)
13 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_5b.py:
--------------------------------------------------------------------------------
1 | x = int(input("1보다 큰 정수를 입력하여라: "))
2 |
3 | number_of_divisors = 2
4 | for i in range(2, x // 2 + 1):
5 | if x % i == 0:
6 | number_of_divisors += 1
7 | break
8 |
9 | if number_of_divisors == 2:
10 | print("숫자", x, "은/는 소수입니다.")
11 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2e.py:
--------------------------------------------------------------------------------
1 | print(max(5, 3, 2, 6, 7, 1, 5)) # 출력: 7
2 |
3 | a = 5
4 | b = 6
5 | c = 3
6 | d = 4
7 | y = max(a, b, c, d)
8 | print(y) # 출력: 6
9 |
10 | seq = [2, 8, 4, 6, 2] # 정수 시퀀스
11 | print(max(seq)) # 출력: 8
12 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2f.py:
--------------------------------------------------------------------------------
1 | print(min(5, 3, 2, 6, 7, 1, 5)) # 출력: 1
2 |
3 | a = 5
4 | b = 6
5 | c = 3
6 | d = 4
7 | y = min(a, b, c, d)
8 | print(y) # 출력: 3
9 |
10 | seq = [2, 8, 4, 6, 2] # 정수 시퀀스
11 | print(min(seq)) # 출력: 2
12 |
--------------------------------------------------------------------------------
/Chapter29/file_29_2_1a.py:
--------------------------------------------------------------------------------
1 | x = int(input("한 자릿수 정수(0 - 9)를 입력하여라: "))
2 |
3 | for i in range(100, 1000):
4 | digit3 = i // 100
5 | r = i % 100
6 |
7 | digit2 = r // 10
8 | digit1 = r % 10
9 |
10 | if digit3 == x or digit2 == x or digit1 == x:
11 | print(i)
12 |
--------------------------------------------------------------------------------
/Chapter32/file_32_6_1b.py:
--------------------------------------------------------------------------------
1 | N = 10
2 | a = [[None] * N for i in range(N)]
3 |
4 | for i in range(N):
5 | for j in range(N):
6 | a[i][j] = float(input())
7 |
8 | # total 계산
9 | total = 0
10 | for k in range(N):
11 | total = total + a[k][k]
12 |
13 | print("총합:", total)
14 |
--------------------------------------------------------------------------------
/Chapter13/file_13_1_3.py:
--------------------------------------------------------------------------------
1 | number = int(input("경과 시간(초)을 입력하여라: "))
2 |
3 | days, r = divmod(number, 86400) # 60 * 60 * 24 = 86400
4 | hours, r = divmod(r, 3600) # 60 * 60 = 3600
5 | minutes, seconds = divmod(r, 60)
6 |
7 | print(days, "일 ", hours, "시간 ")
8 | print(minutes, "분 ", seconds, "초")
9 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4i.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | a = "753"
5 | print(re.match(IS_NUMERIC, a)) # True로 간주됨.
6 |
7 | a = "-753.6"
8 | print(re.match(IS_NUMERIC, a)) # True로 간주됨.
9 |
10 | a = "Hello"
11 | print(re.match(IS_NUMERIC, a)) # False로 간주됨.
12 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2_1b.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | print("점 A의 좌표를 입력하여라: ")
4 | x1 = float(input())
5 | y1 = float(input())
6 |
7 | print("점 B의 좌표를 입력하여라: ")
8 | x2 = float(input())
9 | y2 = float(input())
10 |
11 | d = math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
12 |
13 | print("두 점 사이의 거리:", d)
14 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2d.py:
--------------------------------------------------------------------------------
1 | a = 5.4
2 |
3 | print(int(a)) # 출력: 5
4 | print(int(34)) # 출력: 34
5 | print(int(34.9)) # 출력: 34
6 | print(int(-34.999)) # 출력: -34
7 |
8 | b = "15"
9 | c = "3"
10 | print(b + c) # 출력: 153
11 | print(int(b) + int(c)) # 출력: 18
12 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4_a.py:
--------------------------------------------------------------------------------
1 | number = int(input("정수를 입력하여라: "))
2 |
3 | # 숫자를 문자열로 바꾼다.
4 | number_string = str(number)
5 |
6 | # 문자열을 역순으로 바꾼다.
7 | reversed_string = number_string[::-1]
8 |
9 | # 역순으로 바꿔진 문자열을 정수로 바꾼다.
10 | reversed_number = int(reversed_string)
11 |
12 | print(reversed_number)
13 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_6.py:
--------------------------------------------------------------------------------
1 | count_a = 0
2 | count_b = 0
3 |
4 | for i in range(10):
5 | a = int(input("첫 번째 숫자를 입력하여라: "))
6 | b = int(input("두 번째 숫자를 입력하여라: "))
7 |
8 | if a > b:
9 | count_a += 1
10 | elif b > a:
11 | count_b += 1
12 |
13 | print(count_a, count_b)
14 |
--------------------------------------------------------------------------------
/Chapter37/file_37_2c.py:
--------------------------------------------------------------------------------
1 | def display(color, exists):
2 | neg = "이 있다."
3 | if exists == False:
4 | neg = "은 없다."
5 |
6 | return "무지기에" + color + neg
7 |
8 | # 메인 코드가 여기서 시작된다.
9 | print(display("빨간색", True))
10 | print(display("노란색", True))
11 | print(display("검은색", False))
12 |
--------------------------------------------------------------------------------
/Chapter13/file_13_1_2c.py:
--------------------------------------------------------------------------------
1 | number = int(input("여섯 자리 정수를 입력하여라: "))
2 |
3 | digit1, r = divmod(number, 100000)
4 | digit2, r = divmod(r, 10000)
5 | digit3, r = divmod(r, 1000)
6 | digit4, r = divmod(r, 100)
7 | digit5, digit6 = divmod(r, 10)
8 |
9 | print(digit1, digit2, digit3, digit4, digit5, digit6)
10 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_5c.py:
--------------------------------------------------------------------------------
1 | x = int(input("1보다 큰 정수를 입력하여라: "))
2 |
3 | number_of_divisors = 2
4 | i = 2
5 | while i <= x // 2 and number_of_divisors == 2:
6 | if x % i == 0:
7 | number_of_divisors += 1
8 | i += 1
9 |
10 | if number_of_divisors == 2:
11 | print("숫자", x, "은/는 소수입니다.")
12 |
--------------------------------------------------------------------------------
/Chapter10/file_10_1_7.py:
--------------------------------------------------------------------------------
1 | price_before_discount = float(input("상품 가격을 입력하여라: "))
2 |
3 | discount = int(input("할인율을 입력하여라(0 - 100): "))
4 |
5 | discount_amount = price_before_discount * discount / 100
6 | price_after_discount = price_before_discount - discount_amount
7 |
8 | print("최종 상품 가격:", price_after_discount)
9 |
--------------------------------------------------------------------------------
/Chapter13/file_13_1_2e.py:
--------------------------------------------------------------------------------
1 | number = int(input("다섯 자리 정수를 입력하여라: "))
2 |
3 | digit5 = number % 10
4 | r = number // 10
5 |
6 | digit4 = r % 10
7 | r = r // 10
8 |
9 | digit3 = r % 10
10 | r = r // 10
11 |
12 | digit2 = r % 10
13 | digit1 = r // 10
14 |
15 | print(digit1, digit2, digit3, digit4, digit5)
16 |
--------------------------------------------------------------------------------
/Chapter13/file_13_1_4.py:
--------------------------------------------------------------------------------
1 | number = int(input("세 자리 정수를 입력하여라: "))
2 |
3 | digit3 = number % 10 # 가장 오른쪽 자릿수값
4 | r = number // 10
5 |
6 | digit2 = r % 10 # 중간 자릿수값
7 | digit1 = r // 10 # 가장 왼쪽 자릿수값
8 |
9 | reversed_number = digit3 * 100 + digit2 * 10 + digit1
10 | print(reversed_number)
11 |
--------------------------------------------------------------------------------
/Chapter25/file_25_2_5.py:
--------------------------------------------------------------------------------
1 | n = int(input("입력할 정수의 개수를 입력하여라: "))
2 |
3 | total = 0
4 | for i in range(n):
5 | a = float(input(str(i + 1) + "번째 정수를 입력하여라: "))
6 | total = total + a
7 |
8 | if n > 0:
9 | average = total / n
10 | print("평균:", average)
11 | else:
12 | print("입력된 정수가 없습니다.")
13 |
--------------------------------------------------------------------------------
/Chapter27/file_27_4b.py:
--------------------------------------------------------------------------------
1 | s = "I have a dream"
2 |
3 | letter = input("검색할 영문자를 입력하여라: ")
4 |
5 | found = False
6 | i = 0
7 | while i <= len(s) - 1 and found == False:
8 | if s[i] == letter:
9 | found = True
10 | i += 1
11 |
12 | if found == True:
13 | print("문자", letter, "를 찾았습니다.")
14 |
--------------------------------------------------------------------------------
/Chapter29/file_29_1_7.py:
--------------------------------------------------------------------------------
1 | count1 = 0
2 | count2 = 0
3 | count3 = 0
4 |
5 | for i in range(20):
6 | a = int(input("숫자를 입력하여라: "))
7 |
8 | if a <= 9:
9 | count1 += 1
10 | elif a <= 99:
11 | count2 += 1
12 | else:
13 | count3 += 1
14 |
15 | print(count1, count2, count3)
16 |
--------------------------------------------------------------------------------
/Chapter32/file_32_6_2.py:
--------------------------------------------------------------------------------
1 | N = 5
2 | a = [ [None] * N for i in range(N) ]
3 |
4 | for i in range(N):
5 | for j in range(N):
6 | a[i][j] = float(input())
7 |
8 | # total 계산
9 | total = 0
10 | for i in range(N):
11 | j = N - i - 1
12 | total = total + a[i][j]
13 |
14 | print("총합:", total)
15 |
--------------------------------------------------------------------------------
/Chapter35/file_35_3_1a.py:
--------------------------------------------------------------------------------
1 | LAKES = 20
2 |
3 | depths = [None] * LAKES
4 | for i in range(LAKES):
5 | depths[i] = float(input())
6 |
7 | # 초깃값
8 | maximum = depths[0]
9 | # 위치 1부터 검색한다.
10 | for i in range(1, LAKES):
11 | if depths[i] > maximum:
12 | maximum = depths[i]
13 |
14 | print(maximum)
--------------------------------------------------------------------------------
/Chapter29/file_29_6_4d.py:
--------------------------------------------------------------------------------
1 | message = input("메시지를 입력하여라: ").lower()
2 |
3 | # 공백, 쉼표, 구두점, 물음표를 제외한 모든 문자를 포함하고 있는
4 | # 새로운 문자열을 생성
5 | message_clean = message
6 | for c in " ,.?":
7 | message_clean = message_clean.replace(c, "")
8 |
9 | if message_clean == message_clean[::-1]:
10 | print("이 메시지는 회문입니다.")
11 |
--------------------------------------------------------------------------------
/Chapter22/file_22_1_3.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | inp = input("숫자를 입력하여라: ")
5 |
6 | if re.match(IS_NUMERIC, inp):
7 | x = float(inp)
8 | if x == int(x):
9 | print(x, "은/는 정수입니다.")
10 | else:
11 | print(x, "은/는 실수입니다.")
12 | else:
13 | print("숫자가 아닙니다.")
14 |
--------------------------------------------------------------------------------
/Chapter38/file_38_4.py:
--------------------------------------------------------------------------------
1 | def minimum(val1, val2, val3):
2 | minim = val1
3 | if val2 < minim:
4 | minim = val2
5 | if val3 < minim:
6 | minim = val3
7 | print(minim)
8 |
9 | # 메인 코드
10 | a = float(input())
11 | b = float(input())
12 | c = float(input())
13 | minimum(a, b, c)
14 | print("끝")
15 |
--------------------------------------------------------------------------------
/Chapter35/file_35_1_1b.py:
--------------------------------------------------------------------------------
1 | import math
2 | ELEMENTS_OF_A = 100
3 |
4 | a = [None] * ELEMENTS_OF_A
5 | for i in range(ELEMENTS_OF_A):
6 | a[i] = float(input())
7 |
8 | new_arr = []
9 | for i in range(ELEMENTS_OF_A - 2):
10 | new_arr.append(math.fsum(a[i:i + 3]) / 3)
11 |
12 | for element in new_arr:
13 | print(element)
--------------------------------------------------------------------------------
/Chapter11/file_11_2_1a.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | print("점 A의 좌표를 입력하여라: ")
4 | x1 = float(input())
5 | y1 = float(input())
6 |
7 | print("점 B의 좌표를 입력하여라: ")
8 | x2 = float(input())
9 | y2 = float(input())
10 |
11 | x_temp = (x1 - x2) ** 2
12 | y_temp = (y1 - y2) ** 2
13 |
14 | d = math.sqrt(x_temp + y_temp)
15 | print("두 점 사이의 거리:", d)
16 |
--------------------------------------------------------------------------------
/Chapter29/file_29_3_2.py:
--------------------------------------------------------------------------------
1 | import math
2 | import re
3 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
4 |
5 | inp = input("음수가 아닌 숫자를 입력하여라: ")
6 | while not re.match(IS_NUMERIC, inp) or float(inp) < 0:
7 | print("오류: 올바르지 않은 입력값입니다.")
8 | inp = input("음수가 아닌 숫자를 입력하여라: ")
9 |
10 | x = float(inp)
11 |
12 | y = math.sqrt(x)
13 | print(y)
14 |
--------------------------------------------------------------------------------
/Chapter22/file_22_1_6.py:
--------------------------------------------------------------------------------
1 | v = input().upper()
2 |
3 | if v == "M": #대문자 M으로만 검사
4 | print("1000원을 지불해야 합니다.")
5 | elif v == "C": #대문자 C으로만 검사
6 | print("2000원을 지불해야 합니다.")
7 | elif v == "T": #대문자 T으로만 검사
8 | print("4000원을 지불해야 합니다.")
9 | else:
10 | print("차량 정보가 올바르지 않습니다.")
11 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_3b.py:
--------------------------------------------------------------------------------
1 | m1 = int(input())
2 | m2 = int(input())
3 |
4 | s = 0
5 | while m2 != 0:
6 | if m2 % 2 != 0:
7 | s += m1
8 |
9 | m1 = m1 << 1 # m1 *= 2와 동일
10 | # m1의 비트들을 왼쪽으로 한 번의 시프트
11 | m2 = m2 >> 1 # m2 //= 2와 동일
12 | # m2의 비트들을 오른쪽으로 한 번의 시프트
13 | print(s)
14 |
--------------------------------------------------------------------------------
/Chapter22/file_22_1_2.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | inp = input("정수를 입력하여라: ")
5 |
6 | if re.match(IS_NUMERIC, inp):
7 | x = int(inp)
8 | if x % 5 == 0 and x % 8 == 0:
9 | print(x, "5와 8로 나누어떨어집니다.")
10 | else:
11 | print(x, "은/는 당신이 찾는 숫자가 아닙니다.")
12 | else:
13 | print("숫자가 아닙니다.")
14 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_8.py:
--------------------------------------------------------------------------------
1 | ACCURACY = 0.00001
2 |
3 | pi = 0
4 |
5 | sign = 1 # 첫 번째 분수의 부호
6 | denom = 1 # 첫 번째 분수의 분모
7 | while True:
8 | pi_previous = pi
9 | pi += sign * 4 / denom
10 | sign = -sign
11 | denom += 2
12 | if abs(pi - pi_previous) <= ACCURACY: break # 충분히 가까운가?
13 |
14 | print("Pi ~=", pi)
15 |
--------------------------------------------------------------------------------
/Chapter32/file_32_6_1a.py:
--------------------------------------------------------------------------------
1 | N = 10
2 | a = [ [None] * N for i in range(N) ]
3 |
4 | for i in range(N):
5 | for j in range(N):
6 | a[i][j] = float(input())
7 |
8 | # total 계산
9 | total = 0
10 | for i in range(N):
11 | for j in range(N):
12 | if i == j:
13 | total = total + a[i][j]
14 |
15 | print("총합:", total)
16 |
--------------------------------------------------------------------------------
/Chapter12/file_12_1_3a.py:
--------------------------------------------------------------------------------
1 | x = float(input("x 값을 입력하여라: "))
2 | w = float(input("w 값을 입력하여라: "))
3 | z = float(input("z 값을 입력하여라: "))
4 |
5 | temp1 = 3 * x ** 2 + 5 * x + 2
6 | temp2 = 7 * w - 1 / z
7 | temp3 = (3 + x) / 7
8 | nominator = 5 * temp1 / temp2 - z
9 | denominator = 4 * temp3
10 |
11 | y = nominator / denominator
12 |
13 | print("결과:", y)
14 |
--------------------------------------------------------------------------------
/Chapter22/file_22_5_1.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | inp = input("연도를 입력하여라: ")
5 |
6 | if not re.match(IS_NUMERIC, inp):
7 | print("입력한 값은 숫자가 아닙니다.")
8 | else:
9 | y = int(inp)
10 | if y % 4 == 0 and y % 100 != 0 or y % 400 == 0:
11 | print("윤년입니다.")
12 | else:
13 | print("윤년이 아닙니다.")
14 |
--------------------------------------------------------------------------------
/Chapter39/file_39_6e.py:
--------------------------------------------------------------------------------
1 | def display_values():
2 | a = 7
3 | b = 3
4 | print(a, b) # 7 3 출력
5 |
6 | def display_other_values():
7 | a = 9
8 | b = 2
9 | print(a, b) # 9 2 출력
10 |
11 | # 메인 코드
12 | a = 10
13 | print(a) # 10 출력
14 | display_values()
15 | display_other_values()
16 | print(a) # 10 출력
17 |
--------------------------------------------------------------------------------
/Chapter29/file_29_3_4.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | total = 0
5 | for i in range(10):
6 | inp = input("숫자를 입력하여라: ")
7 | while not re.match(IS_NUMERIC, inp):
8 | print("숫자를 입력하시오!")
9 | inp = input("숫자를 입력하여라: ")
10 |
11 | a = float(inp)
12 |
13 | total = total + a
14 |
15 | print(total)
16 |
--------------------------------------------------------------------------------
/Chapter35/file_35_1_6b.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 100
2 |
3 | a = [None] * ELEMENTS
4 | for i in range(ELEMENTS):
5 | a[i] = int(input())
6 |
7 | b = []
8 | for element in a:
9 | first_digit, last_digit = divmod(element, 10)
10 | if 5 in [first_digit, last_digit]:
11 | b.append(element)
12 |
13 | for element in b:
14 | print(element, end = "\t")
--------------------------------------------------------------------------------
/Chapter22/file_22_4_5.py:
--------------------------------------------------------------------------------
1 | kwh = int(input("전력 소비량을 입력하여라(kWh): "))
2 |
3 | if kwh <= 500:
4 | t = kwh * 100
5 | elif kwh <= 2000:
6 | t = 500 * 100 + (kwh - 500) * 250
7 | elif kwh <= 4000:
8 | t = 500 * 100 + 1500 * 250 + (kwh - 2000) * 400
9 | else:
10 | t = 500 * 100 + 1500 * 250 + 2000 * 400 + (kwh - 4000) * 600
11 |
12 | print("지불 총금액:", t)
13 |
--------------------------------------------------------------------------------
/Chapter29/file_29_5_3.py:
--------------------------------------------------------------------------------
1 | maximum = -1
2 | count = 0
3 |
4 | for i in range(20):
5 | while True:
6 | grade = int(input("학생 번호 " + str(i + 1) + "의 점수을 입력하여라: "))
7 | if 0 <= grade <= 100: break
8 |
9 | if grade > maximum:
10 | maximum = grade
11 |
12 | if grade >= 90:
13 | count += 1
14 |
15 | print(maximum, count)
16 |
--------------------------------------------------------------------------------
/Chapter33/file_33_7_b.py:
--------------------------------------------------------------------------------
1 | a = [3, 6, 10, 2, 1, 12, 4]
2 |
3 | print(max(a)) # 출력: 12
4 |
5 | maximum = max(a[1:4])
6 | print(maximum) # 출력: 10
7 |
8 | b = [ [4, 6, 8], \
9 | [3, 11, 9], \
10 | [2, 9, 1]
11 | ]
12 |
13 | print(max(b[1])) # 출력: 11
14 |
15 | c = ["Apollo", "Hermes", "Athena", "Aphrodite", "Dionysus"]
16 | print(max(c)) # 출력: Hermes
--------------------------------------------------------------------------------
/Chapter33/file_33_7_c.py:
--------------------------------------------------------------------------------
1 | a = [3, 6, 10, 2, 1, 12, 4]
2 |
3 | print(min(a)) # 출력: 1
4 |
5 | minimum = min(a[1:4])
6 | print(minimum) # 출력: 2
7 |
8 | b = [ [4, 6, 8], \
9 | [3, 11, 9], \
10 | [2, 9, 1]
11 | ]
12 |
13 | print(min(b[0])) # 출력: 4
14 |
15 | c = ["Apollo", "Hermes", "Athena", "Aphrodite", "Dionysus"]
16 | print(min(c)) # 출력: Aphrodite
--------------------------------------------------------------------------------
/Chapter35/file_35_4_1.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 20
2 |
3 | a = [None] * ELEMENTS
4 |
5 | for i in range(ELEMENTS):
6 | a[i] = float(input())
7 |
8 | for m in range(ELEMENTS - 1):
9 | for n in range(ELEMENTS - 1, m, -1):
10 | if a[n] < a[n - 1]:
11 | a[n], a[n - 1] = a[n - 1], a[n]
12 |
13 | for i in range(ELEMENTS):
14 | print(a[i], end = "\t")
--------------------------------------------------------------------------------
/Chapter22/file_22_4_4c.py:
--------------------------------------------------------------------------------
1 | x = float(input("x 값을 입력하여라: "))
2 |
3 | if x == -1 or x == 9:
4 | print("올바르지 않은 값입니다.")
5 | else:
6 | if x <= -5 or x > 20:
7 | y = abs(x)
8 | elif x <= 0:
9 | y = x / (x - 3) + (8 + x) / (x + 1)
10 | elif x <= 6:
11 | y = 40 * x / (x - 8)
12 | else:
13 | y = 3 * x / (x - 9)
14 | print(y)
15 |
--------------------------------------------------------------------------------
/Chapter13/file_13_1_2b.py:
--------------------------------------------------------------------------------
1 | number = int(input("여섯 자리 정수를 입력하여라: "))
2 |
3 | digit1 = number // 100000
4 | r = number % 100000
5 |
6 | digit2 = r // 10000
7 | r = r % 10000
8 |
9 | digit3 = r // 1000
10 | r = r % 1000
11 |
12 | digit4 = r // 100
13 | r = r % 100
14 |
15 | digit5 = r // 10
16 | digit6 = r % 10
17 |
18 | print(digit1, digit2, digit3, digit4, digit5, digit6)
19 |
--------------------------------------------------------------------------------
/Chapter22/file_22_4_4b.py:
--------------------------------------------------------------------------------
1 | x = float(input("x 값을 입력하여라: "))
2 |
3 | if x == -1 or x == 9:
4 | print("올바르지 않은 값입니다.")
5 | else:
6 | if -5 < x <= 0:
7 | y = x / (x - 3) + (8 + x) / (x + 1)
8 | elif 0 < x <= 6:
9 | y = 40 * x / (x - 8)
10 | elif 6 < x <= 20:
11 | y = 3 * x / (x - 9)
12 | else:
13 | y = abs(x)
14 | print(y)
15 |
--------------------------------------------------------------------------------
/Chapter22/file_22_4_7.py:
--------------------------------------------------------------------------------
1 | count = int(input("송신 메시지의 수를 입력하여라: "))
2 |
3 | if count <= 50:
4 | extra = 0
5 | elif count <= 150:
6 | extra = (count - 50) * 50
7 | else:
8 | extra = 100 * 60 + (count - 150) * 90
9 |
10 | total_without_tax = 80000 + extra
11 | tax = total_without_tax * 10 / 100
12 | total = total_without_tax + tax
13 | print("지불해야 할 총 금액:", total)
14 |
--------------------------------------------------------------------------------
/Chapter22/file_22_1_7.py:
--------------------------------------------------------------------------------
1 | a = float(input("첫 번째 피연산자 값을 입력하여라: "))
2 | op = input("연산자 유형을 입력하여라: ")
3 | b = float(input("두 번째 피연산자 값을 입력하여라: "))
4 |
5 | if op == "+":
6 | print(a + b)
7 | elif op == "-":
8 | print(a - b)
9 | elif op == "*":
10 | print(a * b)
11 | elif op == "/":
12 | if b == 0:
13 | print("오류: 0-나눗셈")
14 | else:
15 | print(a / b)
16 |
--------------------------------------------------------------------------------
/Chapter22/file_22_4_1b.py:
--------------------------------------------------------------------------------
1 | amount = float(input("주문액을 입력하여라: "))
2 |
3 | if amount < 30000:
4 | discount = 0
5 | elif amount < 70000:
6 | discount = 5
7 | elif amount < 150000:
8 | discount = 10
9 | else:
10 | discount = 20
11 |
12 | payment = amount - amount * discount / 100
13 |
14 | print("할인률: ", discount, "%", sep = "")
15 | print("지불액: ", payment, "원", sep = "")
16 |
--------------------------------------------------------------------------------
/Chapter32/file_32_4_2.py:
--------------------------------------------------------------------------------
1 | ROWS = 5
2 | COLUMNS = 7
3 |
4 | a = [ [None] * COLUMNS for i in range(ROWS) ]
5 |
6 | for i in range(ROWS):
7 | for j in range(COLUMNS):
8 | print(i, ",", j, "요솟값을 입력하여라: ")
9 | a[i][j] = float(input())
10 |
11 | # 열을 따라 반복 처리
12 | for j in range(1, COLUMNS, 2): # 1부터 시작하여 2만큼씩 증가
13 | for i in range(ROWS):
14 | print(a[i][j])
15 |
--------------------------------------------------------------------------------
/Chapter32/file_32_6_3.py:
--------------------------------------------------------------------------------
1 | N = 5
2 | a = [ [None] * N for i in range(N) ]
3 |
4 | for i in range(N):
5 | for j in range(N):
6 | if i == j:
7 | a[i][j] = -1
8 | elif i > j:
9 | a[i][j] = 10
10 | else:
11 | a[i][j] = 20
12 |
13 | for i in range(N):
14 | for j in range(N):
15 | print(a[i][j], end = "\t")
16 | print()
--------------------------------------------------------------------------------
/Chapter35/file_35_1_1a.py:
--------------------------------------------------------------------------------
1 | ELEMENTS_OF_A = 100
2 | ELEMENTS_OF_NEW = ELEMENTS_OF_A - 2
3 |
4 | a = [None] * ELEMENTS_OF_A
5 | for i in range(ELEMENTS_OF_A):
6 | a[i] = float(input())
7 |
8 | new_arr = [None] * ELEMENTS_OF_NEW
9 | for i in range(ELEMENTS_OF_NEW):
10 | new_arr[i] = (a[i] + a[i + 1] + a[i + 2]) / 3
11 |
12 | for i in range(ELEMENTS_OF_NEW):
13 | print(new_arr[i])
--------------------------------------------------------------------------------
/Chapter14/file_14_4_1.py:
--------------------------------------------------------------------------------
1 | full_name = input("당신의 영문 이름을 입력하여라: ")
2 |
3 | # 스페이스 문자의 위치를 찾는다. 또한, 이름에 포함된 문자 개수를 나타낸다.
4 | space_pos = full_name.find(" ")
5 |
6 | # 위치 0에서 space_pos 문자 개수만큼의 부분 문자열을 얻는다.
7 | name1 = full_name[:space_pos]
8 |
9 | # 위치 space_pos + 1에서 마지막까지의 부분 문자열을 얻는다.
10 | name2 = full_name[space_pos + 1:]
11 |
12 | full_name = name2 + " " + name1
13 | print(full_name)
14 |
--------------------------------------------------------------------------------
/Chapter18/file_18_1_3.py:
--------------------------------------------------------------------------------
1 | day = int(input("1과 7 사이의 숫자를 입력하여라: "))
2 |
3 | if day == 1:
4 | print("일요일")
5 | elif day == 2:
6 | print("월요일")
7 | elif day == 3:
8 | print("화요일")
9 | elif day == 4:
10 | print("수요일")
11 | elif day == 5:
12 | print("목요일")
13 | elif day == 6:
14 | print("금요일")
15 | elif day == 7:
16 | print("토요일")
17 | else:
18 | print("부적절한 숫자")
19 |
--------------------------------------------------------------------------------
/Chapter11/file_11_2k.py:
--------------------------------------------------------------------------------
1 | a = 5.9
2 | print(round(a)) # 출력: 6
3 | print(round(5.4)) # 출력: 5
4 |
5 | a = 5.312
6 | y = round(a * 10 ** 2) / 10 ** 2
7 | print(y) # 출력: 5.31
8 |
9 | a = 5.315
10 | y = round(a * 10 ** 2) / 10 ** 2
11 | print(y) # 출력: 5.32
12 | print(round(2.3447 * 1000) / 1000) # 출력: 2.345
13 |
--------------------------------------------------------------------------------
/Chapter22/file_22_5_2.py:
--------------------------------------------------------------------------------
1 | m = int(input("월을 입력하여라(1 - 12): "))
2 | y = int(input("연도를 입력하여라: "))
3 |
4 | if m == 2:
5 | if y % 4 == 0 and y % 100 != 0 or y % 400 == 0:
6 | print("입력한 월은 29일까지 있습니다.")
7 | else:
8 | print("입력한 월은 28일까지 있습니다.")
9 | elif m == 4 or m == 6 or m == 9 or m == 11:
10 | print("입력한 월은 30일까지 있습니다.")
11 | else:
12 | print("입력한 월은 29일까지 있습니다.")
13 |
--------------------------------------------------------------------------------
/Chapter35/file_35_3_2.py:
--------------------------------------------------------------------------------
1 | LAKES = 20
2 |
3 | names = [None] * LAKES
4 | depths = [None] * LAKES
5 |
6 | for i in range(LAKES):
7 | names[i] = input()
8 | depths[i] = float(input())
9 |
10 | maximum = depths[0]
11 | m_name = names[0]
12 |
13 | for i in range(1, LAKES):
14 | if depths[i] > maximum:
15 | maximum = depths[i]
16 | m_name = names[i]
17 |
18 | print(m_name)
--------------------------------------------------------------------------------
/Chapter22/file_22_1_4.py:
--------------------------------------------------------------------------------
1 | COEFFICIENT = 3.785
2 |
3 | print("1: 갤런을 리터로 변환하기")
4 | print("2: 리터를 갤런으로 변환하기")
5 | choice = int(input("메뉴를 선택하여라: "))
6 | quantity = float(input("양을 입력하여라: "))
7 |
8 | if choice == 1:
9 | result = quantity * COEFFICIENT
10 | print(quantity, "갤런 =", result, "리터")
11 | else:
12 | result = quantity / COEFFICIENT
13 | print(quantity, "리터 =", result, "갤런")
14 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4_3a.py:
--------------------------------------------------------------------------------
1 | import random
2 | import string
3 |
4 | alphabet = string.ascii_lowercase
5 |
6 | random_word = alphabet[random.randrange(26)] + \
7 | alphabet[random.randrange(26)] + \
8 | alphabet[random.randrange(26)] + \
9 | alphabet[random.randrange(26)] + \
10 | alphabet[random.randrange(26)]
11 |
12 | print(random_word)
13 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_6.py:
--------------------------------------------------------------------------------
1 | N = int(input("1보다 큰 정수를 입력하여라: "))
2 | while N < 2:
3 | N = int(input("잘못된 숫자입니다. 1보다 큰 정수를 입력하여라: "))
4 |
5 | for x in range(1, N + 1):
6 | number_of_divisors = 2
7 | for i in range(2, x // 2 + 1):
8 | if x % i == 0:
9 | number_of_divisors += 1
10 | break
11 |
12 | if number_of_divisors == 2:
13 | print("숫자", x, "은/는 소수입니다.")
14 |
--------------------------------------------------------------------------------
/Chapter29/file_29_5_1.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | maximum = -1
5 |
6 | for i in range(10):
7 | inp = input("몸무게값을 입력하여라: ")
8 | while not re.match(IS_NUMERIC, inp) or float(inp) < 0 or float(inp) > 680:
9 | inp = input("부적절한 값! 1과 680 사이의 몸무게값을 입력하여라: ")
10 |
11 | w = int(inp)
12 |
13 | if w > maximum:
14 | maximum = w
15 |
16 | print(maximum)
17 |
--------------------------------------------------------------------------------
/Chapter32/file_32_4_1.py:
--------------------------------------------------------------------------------
1 | ROWS = 5
2 | COLUMNS = 7
3 |
4 | a = [ [None] * COLUMNS for i in range(ROWS) ]
5 |
6 | for i in range(ROWS):
7 | for j in range(COLUMNS):
8 | print(i, ",", j, "의 요솟값을 입력하여라: ")
9 | a[i][j] = float(input())
10 |
11 | for i in range(ROWS):
12 | for j in range(COLUMNS):
13 | if a[i][j] != int(a[i][j]):
14 | print(i, ",", j, "위치에서 실수가 발견되었습니다.")
15 |
--------------------------------------------------------------------------------
/Chapter33/file_33_7_e.py:
--------------------------------------------------------------------------------
1 | a = [3, 6, 10, 2, 1, 12, 4]
2 | b = sorted(a)
3 |
4 | for element in a:
5 | print(element, end = " ") # 출력: 3, 6, 10, 2, 1, 12, 4
6 | print()
7 |
8 | for element in b:
9 | print(element, end = " ") # 출력: 1 2 3 4 6 10 12
10 | print()
11 |
12 | c = ["Hermes", "Apollo", "Dionysus"]
13 | for element in sorted(c, reverse = True):
14 | print(element, end = " ") # 출력: Hermes Dionysus Apollo
--------------------------------------------------------------------------------
/Chapter35/file_35_3_5a.py:
--------------------------------------------------------------------------------
1 | CITIES = 10
2 | DAYS = 31
3 |
4 | # 입력받은 값을 리스트 t에 저장한다.
5 | t = [ [None] * DAYS for i in range(CITIES) ]
6 | for i in range(CITIES):
7 | for j in range(DAYS):
8 | t[i][j] = int(input())
9 |
10 | # 최솟값을 찾는다.
11 | minimum = t[0][0]
12 | for i in range(CITIES):
13 | for j in range(DAYS):
14 | if t[i][j] < minimum:
15 | minimum = t[i][j]
16 |
17 | print(minimum)
--------------------------------------------------------------------------------
/Chapter39/file_39_4c.py:
--------------------------------------------------------------------------------
1 | def get_list(a):
2 | return sorted(a)[0:3]
3 |
4 | # 메인 코드
5 | names = ["도시1", "도시2", "도시3", "도시4", "도시5", \
6 | "도시6", "도시7", "도시8", "도시9", "도시10"]
7 |
8 | t = [75, 73, 78, 70, 71, 74, 72, 69, 79, 77]
9 |
10 | low = get_list(t)
11 | print("가장 낮은 온도: ", low[0], low[1], low[2])
12 |
13 | # 이 단계에서 리스트 t는 정렬되어 있지 않음
14 | for i in range(len(t)):
15 | print(t[i], "\t", names[i])
16 |
--------------------------------------------------------------------------------
/Chapter10/file_10_1_8.py:
--------------------------------------------------------------------------------
1 | VAT = 0.19
2 |
3 | price_before_discount = float(input("상품 가격을 입력하여라: "))
4 | discount = int(input("할인율을 입력하여라(0 - 100): "))
5 |
6 | discount_amount = price_before_discount * discount / 100
7 | price_after_discount = price_before_discount - discount_amount
8 |
9 | sales_tax = price_after_discount * VAT
10 | price_after_tax = price_after_discount + sales_tax
11 |
12 | print("최종 상품 가격:", price_after_tax)
--------------------------------------------------------------------------------
/Chapter35/file_35_2_1.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 20
2 |
3 | odds = [None] * ELEMENTS
4 | for i in range(ELEMENTS):
5 | while True:
6 | odds[i] = int(input("홀수인 정수를 입력하여라: "))
7 | if odds[i] % 2 != 0: break
8 |
9 | # 요소를 역순으로 출력 # 또는 다음과 같이 변형 가능
10 | for i in range(ELEMENTS - 1, -1, -1): # for element in odds[::-1]:
11 | print(odds[i], end = "\t") # print(element, end = "\t")
12 |
--------------------------------------------------------------------------------
/Chapter39/file_39_3_1a.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 5
2 |
3 | def get_num_of_digits(x, index):
4 | count = 0
5 | while x[index] != 0:
6 | count += 1
7 | x[index] = x[index] // 10
8 | return count
9 |
10 | # 메인 코드
11 | val = [None] * ELEMENTS
12 |
13 | for i in range(ELEMENTS):
14 | val[i] = int(input())
15 |
16 | for i in range(ELEMENTS):
17 | print(get_num_of_digits(val, i), "은/는", val[i], "의 자릿수입니다.")
--------------------------------------------------------------------------------
/Chapter41/file_41_1_1.py:
--------------------------------------------------------------------------------
1 | def test_integer(number):
2 | return_value = False
3 |
4 | if number == int(number):
5 | return_value = True
6 | return return_value
7 |
8 | # 메인 코드
9 | total = 0
10 | count = 0
11 | x = float(input())
12 | while test_integer(x) == True:
13 | if x > 0:
14 | total += x
15 | count += 1
16 | x = float(input())
17 |
18 | if count > 0:
19 | print(total / count)
20 |
--------------------------------------------------------------------------------
/Chapter35/file_35_1_6a.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 100
2 |
3 | a = [None] * ELEMENTS
4 | for i in range(ELEMENTS):
5 | a[i] = int(input())
6 |
7 | b = [None] * ELEMENTS
8 | k = 0
9 | for i in range(ELEMENTS):
10 | last_digit = a[i] % 10
11 | first_digit = a[i] // 10
12 |
13 | if first_digit == 5 or last_digit == 5:
14 | b[k] = a[i]
15 | k += 1
16 |
17 | for i in range(k):
18 | print(b[i], end = "\t")
--------------------------------------------------------------------------------
/Chapter35/file_35_1_3c.py:
--------------------------------------------------------------------------------
1 | ELEMENTS_OF_A = 20
2 | ELEMENTS_OF_B = 30
3 |
4 | # 입력받은 값을 리스트 a와 b에 각각 저장한다.
5 | a = [None] * ELEMENTS_OF_A
6 | b = [None] * ELEMENTS_OF_B
7 | for i in range(ELEMENTS_OF_A):
8 | a[i] = float(input())
9 | for i in range(ELEMENTS_OF_B):
10 | b[i] = float(input())
11 |
12 | # 리스트 new_arr을 생성한다.
13 | new_arr = a + b
14 |
15 | # 리스트 new_arr을 출력한다.
16 | for element in new_arr:
17 | print(element, end = "\t")
--------------------------------------------------------------------------------
/Chapter18/file_18_1_1.py:
--------------------------------------------------------------------------------
1 | a = int(input())
2 | b = int(input())
3 |
4 | if a > 3:
5 | print("변수 a는 3보다 큽니다")
6 | elif a > 4 and b <= 10:
7 | print("변수 a는 4보다 크고 ")
8 | print("변수 b는 10보다 작거나 같습니다.")
9 | elif a * 2 == -26:
10 | print("변수 a 곱하기 2는 -26과 같습니다.")
11 | b += 1
12 | elif b == 1:
13 | print("변수 b는 1과 같습니다.")
14 | else:
15 | print("위의 모든 불리언 식이 False일 경우 ")
16 | print("이 메시지가 표시됩니다.")
17 |
18 | print("종료!")
19 |
--------------------------------------------------------------------------------
/Chapter22/file_22_4_1a.py:
--------------------------------------------------------------------------------
1 | amount = float(input("주문액을 입력하여라: "))
2 |
3 | if amount < 30000:
4 | discount = 0
5 | elif amount >= 30000 and amount < 70000:
6 | discount = 5
7 | elif amount >= 70000 and amount < 150000:
8 | discount = 10
9 | elif amount >= 150000:
10 | discount = 20
11 |
12 | payment = amount - amount * discount / 100
13 |
14 | print("할인율: ", discount, "%", sep = "")
15 | print("지불액: ", payment, "원", sep = "")
16 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | The_solved_exercises
4 |
5 |
6 |
7 |
8 |
9 | org.python.pydev.PyDevBuilder
10 |
11 |
12 |
13 |
14 |
15 | org.python.pydev.pythonNature
16 |
17 |
18 |
--------------------------------------------------------------------------------
/.pydevproject:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | /${PROJECT_DIR_NAME}
5 |
6 | python 3.0
7 | Default
8 |
9 |
--------------------------------------------------------------------------------
/Chapter22/file_22_5_4a.py:
--------------------------------------------------------------------------------
1 | sentence = input("영어 문장을 입력하여라: ")
2 |
3 | # 첫 번째 문자를 가져온다.
4 | first_char = sentence[0]
5 |
6 | # 마지막 문자를 가져온다.
7 | last_char = sentence[-1]
8 |
9 | sentence_is_okay = True
10 |
11 | if first_char != first_char.upper():
12 | sentence_is_okay = False
13 | elif last_char != "." and last_char != "?" and last_char != "!":
14 | sentence_is_okay = False
15 |
16 | if sentence_is_okay == True:
17 | print("이상 없음!")
18 |
--------------------------------------------------------------------------------
/Chapter14/file_14_4_3b.py:
--------------------------------------------------------------------------------
1 | import random
2 | import string
3 |
4 | alphabet = string.ascii_lowercase
5 |
6 | random_word = alphabet[random.randrange(len(alphabet))] + \
7 | alphabet[random.randrange(len(alphabet))] + \
8 | alphabet[random.randrange(len(alphabet))] + \
9 | alphabet[random.randrange(len(alphabet))] + \
10 | alphabet[random.randrange(len(alphabet))]
11 |
12 | print(random_word)
13 |
--------------------------------------------------------------------------------
/Chapter22/file_22_2_3.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | inp = input()
5 |
6 | if re.match(IS_NUMERIC, inp):
7 | x = float(inp)
8 | if x >= 0 :
9 | if x == 0 or x == 3:
10 | print("오류: 0-나눗셈")
11 | else:
12 | y = (7 + x) / (x - 3) + (3 - x) / x
13 | print(y)
14 | else:
15 | y = 40 * x / (x - 5) + 3
16 | print(y)
17 | else:
18 | print("숫자가 아닙니다.")
19 |
--------------------------------------------------------------------------------
/Chapter35/file_35_2_2.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | ELEMENTS = 20
5 |
6 | odds = [None] * ELEMENTS
7 | for i in range(ELEMENTS):
8 | inp = input("홀수 정수를 입력하여라: ")
9 | while not re.match(IS_NUMERIC, inp) or int(inp) % 2 == 0:
10 | print("부적절한 값!")
11 | inp = input("홀수 정수를 입력하여라: ")
12 | odds[i] = int(inp)
13 |
14 | # 요소를 역순으로 출력
15 | for element in odds[::-1]:
16 | print(element, end = "\t")
17 |
--------------------------------------------------------------------------------
/Chapter41/file_41_1_3.py:
--------------------------------------------------------------------------------
1 | def formula1(x):
2 | if x == 5:
3 | print("오류! 0-나눗셈")
4 | else:
5 | y = 3 * x / (x - 5) + (7 - x) / (2 * x)
6 | print(y)
7 |
8 | def formula2(x):
9 | if x == -2:
10 | print("오류! 0-나눗셈")
11 | else:
12 | y = (45 - x) / (x + 2) + 3 * x
13 | print(y)
14 |
15 | # 메인 코드
16 | x = float(input("x 값을 입력하여라: "))
17 | if x >= 1:
18 | formula1(x)
19 | else:
20 | formula2(x)
21 |
--------------------------------------------------------------------------------
/Chapter35/file_35_1_5b.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 100
2 | ar = [None] * ELEMENTS
3 | for i in range(ELEMENTS):
4 | ar[i] = float(input())
5 |
6 | # 리스트 pos와 neg를 생성한다.
7 | pos = []
8 | neg = []
9 | for element in ar:
10 | if element > 0:
11 | pos.append(element)
12 | elif element < 0:
13 | neg.append(element)
14 |
15 | for element in pos:
16 | print(element, end = "\t")
17 |
18 | print()
19 |
20 | for element in neg:
21 | print(element, end = "\t")
--------------------------------------------------------------------------------
/Chapter41/file_41_1_4.py:
--------------------------------------------------------------------------------
1 | import random
2 | ELEMENTS = 100
3 |
4 | def dice():
5 | return random.randrange(1, 7)
6 |
7 | def search_and_count(x, a):
8 | count = 0
9 | for i in range(ELEMENTS):
10 | if a[i] == x:
11 | count += 1
12 | return count
13 |
14 | # 메인 코드
15 | a = [None] * ELEMENTS
16 | for i in range(ELEMENTS):
17 | a[i] = dice()
18 |
19 | x = int(input())
20 | print("입력한 정수가 리스트에", search_and_count(x, a), "번 나왔습니다.")
21 |
--------------------------------------------------------------------------------
/Chapter33/file_33_2_1d.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | STUDENTS = 20
4 | LESSONS = 10
5 |
6 | grades = [ [None] * LESSONS for i in range(STUDENTS) ]
7 |
8 | for i in range(STUDENTS):
9 | print("학생 번호:", (i + 1))
10 | for j in range(LESSONS):
11 | grades[i][j] = int(input(str(j + 1) + "번째 교과목의 점수를 입력하여라: "))
12 |
13 | # 파이썬만의 강력한 기능을 사용하여 행 단위 평균을 계산
14 | for row in grades:
15 | average = math.fsum(row) / LESSONS
16 | if average > 89:
17 | print(average)
18 |
--------------------------------------------------------------------------------
/Chapter39/file_39_3_1b.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 5
2 |
3 | def get_num_of_digits(x, index):
4 | count = 0
5 |
6 | aux_var = x[index]
7 |
8 | while aux_var != 0:
9 | count += 1
10 | aux_var = aux_var // 10
11 | return count
12 |
13 | # 메인 코드
14 | val = [None] * ELEMENTS
15 |
16 | for i in range(ELEMENTS):
17 | val[i] = int(input())
18 |
19 | for i in range(ELEMENTS):
20 | print(get_num_of_digits(val, i), "은/는", val[i], "의 자릿수입니다.")
21 |
--------------------------------------------------------------------------------
/Chapter22/file_22_4_4a.py:
--------------------------------------------------------------------------------
1 | x = float(input("x 값을 입력하여라: "))
2 |
3 | if -5 < x <= 0:
4 | if x != -1:
5 | y = x / (x - 3) + (8 + x) / (x + 1)
6 | print(y)
7 | else:
8 | print("올바르지 않은 값입니다.")
9 | elif 0 < x <= 6:
10 | y = 40 * x / (x - 8)
11 | print(y)
12 | elif 6 < x <= 20:
13 | if x != 9:
14 | y = 3 * x / (x - 9)
15 | print(y)
16 | else:
17 | print("올바르지 않은 값입니다.")
18 | else:
19 | y = abs(x)
20 | print(y)
21 |
--------------------------------------------------------------------------------
/Chapter39/file_39_3e.py:
--------------------------------------------------------------------------------
1 | def my_divmod(a, b, results):
2 | return_value = True
3 |
4 | if b == 0:
5 | return_value = False
6 | else:
7 | results[0] = a // b
8 | results[1] = a % b
9 |
10 | return return_value
11 |
12 | # 메인 코드
13 | res = [None] * 2
14 |
15 | val1 = int(input())
16 | val2 = int(input())
17 | ret = my_divmod(val1, val2, res)
18 | if ret == True:
19 | print(res[0], res[1])
20 | else:
21 | print("잘못된 입력값입니다!");
22 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_9.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | while True:
5 | inp = input("0과 100 사이의 실수값을 입력하여라: ")
6 | if re.match(IS_NUMERIC, inp) and 0 <= float(inp) <= 100: break
7 |
8 | x = float(inp)
9 |
10 | best_n = 1
11 | best_m = 1
12 | for n in range(101):
13 | for m in range(1, 101):
14 | if abs(n / m - x) < abs(best_n / best_m - x):
15 | best_n = n
16 | best_m = m
17 |
18 | print("분수:", best_n, "/", best_m)
19 |
--------------------------------------------------------------------------------
/Chapter35/file_35_3_8b.py:
--------------------------------------------------------------------------------
1 | ROWS = 30
2 | COLUMNS = 20
3 |
4 | a = [ [None] * COLUMNS for i in range(ROWS) ]
5 |
6 | for i in range(ROWS):
7 | for j in range(COLUMNS):
8 | a[i][j] = float(input())
9 |
10 | for j in range(COLUMNS):
11 | minimum = a[0][j]
12 | maximum = a[0][j]
13 | for i in range(1, ROWS):
14 | if a[i][j] < minimum:
15 | minimum = a[i][j]
16 | if a[i][j] > maximum:
17 | maximum = a[i][j]
18 | print(minimum, maximum)
--------------------------------------------------------------------------------
/Chapter22/file_22_5_3b.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | inp = input()
5 |
6 | if not re.match(IS_NUMERIC, inp):
7 | print("숫자가 아닙니다.")
8 | else:
9 | x = int(inp)
10 | if x < 10000:
11 | print("5자릿수보다 작은 수입니다.")
12 | elif x > 99999:
13 | print("5자릿수보다 큰 수입니다.")
14 | else:
15 | inp_reversed = inp[::-1]
16 | if inp == inp_reversed:
17 | print("회문입니다.")
18 | else:
19 | print("회문이 아닙니다.")
20 |
--------------------------------------------------------------------------------
/Chapter29/file_29_3_3.py:
--------------------------------------------------------------------------------
1 | import math
2 | import re
3 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
4 |
5 | while True:
6 | inp = input("음수가 아닌 숫자를 입력하여라: ")
7 |
8 | failure = False
9 | if not re.match(IS_NUMERIC, inp):
10 | print("숫자를 입력하시오!")
11 | failure = True
12 | elif float(inp) < 0:
13 | print("음수가 아닌 숫자를 입력하시오!")
14 | failure = True
15 |
16 | if failure == False: break
17 |
18 | x = float(inp)
19 |
20 | y = math.sqrt(x)
21 | print(y)
22 |
--------------------------------------------------------------------------------
/Chapter29/file_29_6_4c.py:
--------------------------------------------------------------------------------
1 | message = input("메시지를 입력하여라: ").lower()
2 |
3 | message_clean = ""
4 | for letter in message:
5 | if letter not in " ,.?":
6 | message_clean += letter
7 |
8 | middle_pos = (len(message_clean) - 1) // 2
9 |
10 | palindrome = True
11 | i = 0
12 |
13 | while i <= middle_pos and palindrome == True:
14 | if message_clean[i] != message_clean[-i - 1]:
15 | palindrome = False
16 | i += 1
17 |
18 | if palindrome == True:
19 | print("이 메시지는 회문입니다.")
20 |
--------------------------------------------------------------------------------
/Chapter35/file_35_4_3.py:
--------------------------------------------------------------------------------
1 | LAKES = 20
2 |
3 | names = [None] * LAKES
4 | areas = [None] * LAKES
5 |
6 | for i in range(LAKES):
7 | names[i] = input()
8 | areas[i] = float(input())
9 |
10 | for m in range(LAKES - 1):
11 | for n in range(LAKES - 1, m, -1):
12 | if areas[n] < areas[n - 1]:
13 | areas[n], areas[n - 1] = areas[n - 1], areas[n]
14 | names[n], names[n - 1] = names[n - 1], names[n]
15 |
16 | for i in range(LAKES):
17 | print(names[i], "\t", areas[i])
--------------------------------------------------------------------------------
/Chapter35/file_35_3_7b.py:
--------------------------------------------------------------------------------
1 | ROWS = 30
2 | COLUMNS = 20
3 |
4 | a = [ [None] * COLUMNS for i in range(ROWS) ]
5 |
6 | for i in range(ROWS):
7 | for j in range(COLUMNS):
8 | a[i][j] = float(input())
9 |
10 | for i in range(ROWS):
11 | minimum = a[i][0]
12 | maximum = a[i][0]
13 | for j in range(1, COLUMNS):
14 | if a[i][j] < minimum:
15 | maximum = a[i][j]
16 | if a[i][j] > maximum:
17 | maximum = a[i][j]
18 |
19 | print(minimum, maximum)
--------------------------------------------------------------------------------
/Chapter35/file_35_5_2.py:
--------------------------------------------------------------------------------
1 | PEOPLE = 20
2 |
3 | first_names = [None] * PEOPLE
4 | last_names = [None] * PEOPLE
5 |
6 | for i in range(PEOPLE):
7 | first_names[i] = input("영문 이름을 입력하여라: ")
8 | last_names[i] = input("영문 성을 입력하여라: ")
9 |
10 | needle = input("검색하고자 하는 영문 이름을 입력하여라: ")
11 |
12 | found = False
13 | for i in range(PEOPLE):
14 | if first_names[i].upper() == needle.upper():
15 | print(last_names[i])
16 | found = True
17 |
18 | if found == False:
19 | print("어떤 사람도 발견하지 못하였습니다.")
--------------------------------------------------------------------------------
/Chapter39/file_39_4a.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 10
2 |
3 | def get_list(a):
4 | for m in range(1, ELEMENTS):
5 | element = a[m]
6 | n = m
7 | while n > 0 and a[n - 1] > element:
8 | a[n] = a[n - 1]
9 | n -= 1
10 | a[n] = element
11 |
12 | # 메인 코드
13 | t = [75, 73, 78, 70, 71, 74, 72, 69, 79, 77]
14 |
15 | get_list(t)
16 |
17 | print("가장 작은 수: ", t[0], t[1], t[2])
18 |
19 | # 이 단계에서 리스트 t는 정렬되어 있음.
20 | for i in range(ELEMENTS):
21 | print(t[i], end = "\t")
22 |
--------------------------------------------------------------------------------
/Chapter29/file_29_6_3b.py:
--------------------------------------------------------------------------------
1 | CITIZENS = 1000
2 |
3 | total_yes = 0
4 | female_no = 0
5 | for i in range(CITIZENS):
6 | while True:
7 | sex = input("성별을 입력하여라: ").lower()
8 | if sex in ["m", "f"]: break
9 |
10 | while True:
11 | answer = input("아침식사를 하십니까? ").lower()
12 | if answer in ["y", "n", "s"]: break
13 |
14 | if answer == "y":
15 | total_yes += 1
16 | elif sex == "f":
17 | female_no += 1
18 |
19 | print(total_yes, female_no * 100 / CITIZENS)
20 |
--------------------------------------------------------------------------------
/Chapter33/file_33_5.py:
--------------------------------------------------------------------------------
1 | ROWS = 3
2 | COLUMNS = 4
3 | ELEMENTS = ROWS * COLUMNS
4 |
5 | a = [ [None] * COLUMNS for i in range(ROWS) ]
6 |
7 | for i in range(ROWS):
8 | for j in range(COLUMNS):
9 | a[i][j] = int(input(str(i) + ", " + str(j) + " 요소의 값을 입력하여라: "))
10 |
11 | b = [None] * ELEMENTS
12 |
13 | k = 0 # 새로운 리스트의 인덱스
14 |
15 | for j in range(COLUMNS): # 열 단위로 반복
16 | for i in range(ROWS):
17 | b[k] = a[i][j]
18 | k += 1
19 |
20 | for k in range(ELEMENTS):
21 | print(b[k], end = "\t")
22 |
--------------------------------------------------------------------------------
/Chapter35/file_35_1_2.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 20
2 |
3 | # 입력받은 값을 리스트 a와 b에 각각 저장한다.
4 | a = [None] * ELEMENTS
5 | b = [None] * ELEMENTS
6 | for i in range(ELEMENTS):
7 | a[i] = float(input())
8 | for i in range(ELEMENTS):
9 | b[i] = float(input())
10 |
11 | # 리스트 new_arr를 생성한다.
12 | new_arr = [None] * ELEMENTS
13 |
14 | for i in range(ELEMENTS):
15 | if a[i] > b[i]:
16 | new_arr[i] = a[i]
17 | else:
18 | new_arr[i] = b[i]
19 |
20 | # 리스트 new_arr를 출력한다.
21 | for i in range(ELEMENTS):
22 | print(new_arr[i])
--------------------------------------------------------------------------------
/Chapter33/file_33_6.py:
--------------------------------------------------------------------------------
1 | ROWS = 3
2 | COLUMNS = 4
3 | ELEMENTS = ROWS * COLUMNS
4 |
5 | a = [None] * ELEMENTS
6 |
7 | for k in range(ELEMENTS):
8 | a[k] = int(input(str(k) + " 요소의 값을 입력하여라: "))
9 |
10 | b = [ [None] * COLUMNS for i in range(ROWS) ]
11 |
12 | k = 0 # 리스트 a의 인덱스
13 |
14 | for j in range(COLUMNS): # 열 단위로 반복
15 | for i in range(ROWS):
16 | b[i][j] = a[k]
17 | k += 1
18 |
19 | for i in range(ROWS): # 행 단위로 반복
20 | for j in range(COLUMNS):
21 | print(b[i][j], end = "\t")
22 | print()
23 |
--------------------------------------------------------------------------------
/Chapter22/file_22_3a.py:
--------------------------------------------------------------------------------
1 | print("네 사람의 몸무게를 입력하여라:")
2 |
3 | w1 = int(input())
4 | w2 = int(input())
5 | w3 = int(input())
6 | w4 = int(input())
7 |
8 |
9 | # 첫 번째 사람의 몸무게를 저장
10 | minimum = w1
11 |
12 | # 두 번째 사람의 몸무게가 첫 번째 사람보다 적으면
13 | # 두 번째 사람의 몸무게를 저장
14 | if w2 < minimum:
15 | minimum = w2
16 |
17 | # 세 번째 사람의 몸무게가 minimum보다 적으면
18 | # 세 번째 사람의 몸무게를 저장
19 | if w3 < minimum:
20 | minimum = w3
21 |
22 | # 네 번째 사람의 몸무게가 minimum보다 적으면
23 | # 네 번째 사람의 몸무게를 저장
24 | if w4 < minimum:
25 | minimum = w4
26 |
27 | print(minimum)
28 |
--------------------------------------------------------------------------------
/Chapter33/file_33_2_1c.py:
--------------------------------------------------------------------------------
1 | STUDENTS = 20
2 | LESSONS = 10
3 |
4 | grades = [ [None] * LESSONS for i in range(STUDENTS) ]
5 |
6 | for i in range(STUDENTS):
7 | print("학생 번호:", (i + 1))
8 | for j in range(LESSONS):
9 | grades[i][j] = int(input(str(j + 1) + "번째 교과목의 점수를 입력하여라: "))
10 |
11 | # 행 단위 평균을 계산한 후, 89점보다 높은 점수 직접 출력
12 | for i in range(STUDENTS):
13 | average = 0
14 | for j in range(LESSONS):
15 | average += grades[i][j]
16 | average /= LESSONS
17 | if average > 89:
18 | print(average)
19 |
--------------------------------------------------------------------------------
/Chapter33/file_33_3_1b.py:
--------------------------------------------------------------------------------
1 | STUDENTS = 10
2 | LESSONS = 5
3 |
4 | grades = [ [None] * LESSONS for i in range(STUDENTS) ]
5 |
6 | for i in range(STUDENTS):
7 | print("학생 번호:", (i + 1))
8 | for j in range(LESSONS):
9 | grades[i][j] = int(input(str(j + 1) + "번째 교과목의 점수를 입력하여라: "))
10 |
11 | # 열 단위로 평균 점수를 계산한 후, 89점보다 높은 점수를 바로 출력
12 | for j in range(LESSONS):
13 | average = 0
14 | for i in range(STUDENTS):
15 | average += grades[i][j]
16 | average /= STUDENTS
17 | if average > 89:
18 | print(average)
19 |
--------------------------------------------------------------------------------
/Chapter35/file_35_1_3b.py:
--------------------------------------------------------------------------------
1 | ELEMENTS_OF_A = 20
2 | ELEMENTS_OF_B = 30
3 |
4 | # 입력받은 값을 리스트 a와 b에 각각 저장한다.
5 | a = [None] * ELEMENTS_OF_A
6 | b = [None] * ELEMENTS_OF_B
7 | for i in range(ELEMENTS_OF_A):
8 | a[i] = float(input())
9 | for i in range(ELEMENTS_OF_B):
10 | b[i] = float(input())
11 |
12 | # 리스트 new_arr를 생성한다.
13 | new_arr = []
14 | for element in a:
15 | new_arr.append(element)
16 | for element in b:
17 | new_arr.append(element)
18 |
19 | # 리스트 new_arr를 출력한다.
20 | for element in new_arr:
21 | print(element, end = "\t")
--------------------------------------------------------------------------------
/Chapter33/file_33_2_1b.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | STUDENTS = 20
4 | LESSONS = 10
5 |
6 | grades = [ [None] * LESSONS for i in range(STUDENTS) ]
7 |
8 | for i in range(STUDENTS):
9 | print("학생 번호:", (i + 1))
10 | for j in range(LESSONS):
11 | grades[i][j] = int(input(str(j + 1) + "번째 교과목의 점수를 입력하여라: "))
12 |
13 | # average 리스트 생성
14 | average = []
15 | for row in grades:
16 | average.append(math.fsum(row) / LESSONS)
17 |
18 | # 89점보다 높은 점수 출력
19 | for i in range(STUDENTS):
20 | if average[i] > 89:
21 | print(average[i])
22 |
--------------------------------------------------------------------------------
/Chapter35/file_35_4_6.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 20
2 |
3 | w = [None] * ELEMENTS
4 |
5 | for i in range(ELEMENTS):
6 | w[i] = float(input())
7 |
8 | for m in range(ELEMENTS-1):
9 | swaps = False
10 | for n in range(ELEMENTS-1, m, -1):
11 | if w[n] < w[n-1]:
12 | w[n], w[n-1] = w[n-1], w[n]
13 | swaps = True
14 | if swaps == False: break
15 |
16 | print("가장 무거운 몸무게:")
17 | print(w[ELEMENTS-3])
18 | print(w[ELEMENTS-2])
19 | print(w[ELEMENTS-1])
20 |
21 | print("가장 가벼운 몸무게:")
22 | print(w[0])
23 | print(w[1])
24 | print(w[2])
--------------------------------------------------------------------------------
/Chapter35/file_35_5_4.py:
--------------------------------------------------------------------------------
1 | PEOPLE = 100
2 |
3 | SSNs = [None] * PEOPLE
4 | first_names = [None] * PEOPLE
5 | last_names = [None] * PEOPLE
6 |
7 | for i in range(PEOPLE):
8 | SSNs[i] = input("사회보장번호(SSN)를 입력하여라: ")
9 | first_names[i] = input("영문 이름을 입력하여라: ")
10 | last_names[i] = input("영문 성을 입력하여라: ")
11 |
12 | needle = input("검색할 사회보장번호(SSN)를 입력하여라: ")
13 |
14 | i = 0
15 | while i < PEOPLE - 1 and SSNs[i] != needle:
16 | i += 1
17 |
18 | if SSNs[i] != needle:
19 | print("아무것도 찾지 못하였습니다.")
20 | else:
21 | print(first_names[i], last_names[i])
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # 한 권으로 배우는 파이썬 기초&알고리즘 사고법
4 | 
5 |
6 |
7 | **출판사** 제이펍
8 | **원서명** Python and Algorithmic Thinking for the Complete Beginner: Learn to Think Like a Programmer
9 | (원서 ISBN: 9781514802168)
10 | **저자명** 아리스티데스 보우라스, 루키아 아이나로지두
11 | **역자명** 길준민, 임종범, 송의성, 유헌창
12 | **출판일** 2018년 7월 10일
13 | **페이지** 848쪽
14 | **ISBN** 979-11-88621-13-2(93000)
15 |
16 |
17 |
18 | [### 도서 소개 페이지 바로 가기 ###](http://jpub.tistory.com/817?category=208491)
--------------------------------------------------------------------------------
/Chapter29/file_29_6_3a.py:
--------------------------------------------------------------------------------
1 | CITIZENS = 1000
2 |
3 | total_yes = 0
4 | female_no = 0
5 | for i in range(CITIZENS):
6 | while True:
7 | sex = input("성별을 입력하여라: ").lower()
8 | if sex == "m" or sex == "f": break
9 |
10 | while True:
11 | answer = input("아침식사를 하십니까? ").lower()
12 | if answer == "y" or answer == "n" or answer == "s": break
13 |
14 | if answer == "y":
15 | total_yes += 1
16 |
17 | if sex == "f" and answer == "n":
18 | female_no += 1
19 |
20 | print(total_yes, female_no * 100 / CITIZENS)
21 |
--------------------------------------------------------------------------------
/Chapter35/file_35_3_6.py:
--------------------------------------------------------------------------------
1 | CITIES = 10
2 | DAYS = 31
3 |
4 | names = [None] * CITIES
5 | t = [ [None] * DAYS for i in range(CITIES) ]
6 | for i in range(CITIES):
7 | names[i] = input()
8 | for j in range(DAYS):
9 | t[i][j] = int(input())
10 |
11 | minimum = t[0][0]
12 | m_i = 0
13 | m_j = 0
14 | for i in range(CITIES):
15 | for j in range(DAYS):
16 | if t[i][j] < minimum:
17 | minimum = t[i][j]
18 | m_i = i
19 | m_j = j
20 |
21 | print("최저 온도:", minimum)
22 | print("도시:", names[m_i])
23 | print("날짜:", m_j + 1)
24 |
--------------------------------------------------------------------------------
/Chapter35/file_35_6_3b.py:
--------------------------------------------------------------------------------
1 | CITIES = 10
2 | DAYS = 31
3 |
4 | names = [None] * CITIES
5 | t = [ [None] * DAYS for i in range(CITIES) ]
6 |
7 | for i in range(CITIES):
8 | names[i] = input(str(i + 1) + "번째 도시의 이름을 입력하여라: ")
9 | for j in range(DAYS):
10 | t[i][j] = int(input(str(j + 1) + "번째 날짜의 온도를 입력하여라: "))
11 |
12 | print("1월 중 강설 가능성이 있는 도시:")
13 | for i in range(CITIES):
14 | found = False
15 | for j in range(DAYS):
16 | if t[i][j] < 2:
17 | found = True
18 |
19 | if found == True:
20 | print(names[i])
21 |
--------------------------------------------------------------------------------
/Chapter22/file_22_4_3.py:
--------------------------------------------------------------------------------
1 | print("소포의 무게와 목적지를 입력하여라: ")
2 | weight = float(input())
3 | dest = input()
4 | if dest.upper() == "I":
5 | if weight <= 1:
6 | cost = weight * 1000
7 | elif weight <= 2:
8 | cost = weight * 1300
9 | elif weight <= 4:
10 | cost = weight * 1500
11 | else:
12 | cost = weight * 2000
13 | else:
14 | if weight <= (1):
15 | cost = 10000
16 | elif weight <= 2:
17 | cost = 20000
18 | elif weight <= 4:
19 | cost = 50000
20 | else:
21 | cost = 60000
22 |
23 | print("배송비:", cost)
24 |
--------------------------------------------------------------------------------
/Chapter35/file_35_3_3b.py:
--------------------------------------------------------------------------------
1 | LAKES = 20
2 |
3 | names = [None] * LAKES
4 | depths = [None] * LAKES
5 | countries = [None] * LAKES
6 | areas = [None] * LAKES
7 |
8 | for i in range(LAKES):
9 | names[i] = input()
10 | depths[i] = float(input())
11 | countries[i] = input()
12 | areas[i] = float(input())
13 |
14 | maximum = depths[0]
15 | index_of_max = 0
16 | for i in range(1, LAKES):
17 | if depths[i] > maximum:
18 | maximum = depths[i]
19 | index_of_max = i
20 |
21 | print(depths[index_of_max], names[index_of_max])
22 | print(countries[index_of_max], areas[index_of_max])
--------------------------------------------------------------------------------
/Chapter35/file_35_3_7a.py:
--------------------------------------------------------------------------------
1 | ROWS = 30
2 | COLUMNS = 20
3 |
4 | a = [ [None] * COLUMNS for i in range(ROWS) ]
5 |
6 | for i in range(ROWS):
7 | for j in range(COLUMNS):
8 | a[i][j] = float(input())
9 |
10 | minimum = [None] * ROWS
11 | maximum = [None] * ROWS
12 | for i in range(ROWS):
13 | minimum[i] = a[i][0]
14 | maximum[i] = a[i][0]
15 | for j in range(1, COLUMNS):
16 | if a[i][j] < minimum[i]:
17 | minimum[i] = a[i][j]
18 | if a[i][j] > maximum[i]:
19 | maximum[i] = a[i][j]
20 |
21 | for i in range(ROWS):
22 | print(minimum[i], maximum[i])
--------------------------------------------------------------------------------
/Chapter38/file_38_4_2.py:
--------------------------------------------------------------------------------
1 | def display_menu():
2 | print("1. 달러를 유로로 변환하기")
3 | print("2. 유로를 달러로 변환하기")
4 | print("3. 종료")
5 | print("----------------------------")
6 | print("선택하여라: ", end = "")
7 |
8 | # 메인 코드
9 | while True:
10 | display_menu()
11 | choice = int(input())
12 |
13 | if choice != 3:
14 | amount = float(input("금액을 입력하여라: "))
15 | if choice == 1:
16 | print(amount, "달러 =", amount * 0.72, "유로")
17 | else:
18 | print(amount, "유로 =", amount / 0.72, "달러")
19 | else:
20 | print("종료합니다.")
21 | break
22 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_7.py:
--------------------------------------------------------------------------------
1 | import re
2 | import random
3 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
4 | ACCURACY = 0.0000000000001
5 |
6 | inp = input("음수가 아닌 숫자를 입력하여라: ")
7 | while not re.match(IS_NUMERIC, inp) or float(inp) < 0:
8 | inp = input("올바르지 않은 값입니다. 음수가 아닌 숫자를 입력하여라: ")
9 |
10 | y = float(inp)
11 |
12 | guess = random.randrange(1, y + 1) # 첫 번째 추측값을 1과 입력값
13 | # 사이에서 무작위로 생성
14 |
15 | while abs(guess * guess - y) > ACCURACY: # 충분히 가까운가?
16 | guess = (guess + y / guess) / 2 # 그렇지 않으면 새로운 추측값을 생성!
17 |
18 | print(guess)
19 |
--------------------------------------------------------------------------------
/Chapter35/file_35_3_8a.py:
--------------------------------------------------------------------------------
1 | ROWS = 30
2 | COLUMNS = 20
3 |
4 | a = [ [None] * COLUMNS for i in range(ROWS) ]
5 |
6 | for i in range(ROWS):
7 | for j in range(COLUMNS):
8 | a[i][j] = float(input())
9 |
10 | minimum = [None] * COLUMNS
11 | maximum = [None] * COLUMNS
12 |
13 | for j in range(COLUMNS):
14 | minimum[j] = a[0][j]
15 | maximum[j] = a[0][j]
16 | for i in range(1, ROWS):
17 | if a[i][j] < minimum[j]:
18 | minimum[j] = a[i][j]
19 | if a[i][j] > maximum[j]:
20 | maximum[j] = a[i][j]
21 |
22 | for j in range(COLUMNS):
23 | print(minimum[j], maximum[j])
--------------------------------------------------------------------------------
/Chapter35/file_35_1_5a.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 100
2 |
3 | ar = [None] * ELEMENTS
4 | for i in range(ELEMENTS):
5 | ar[i] = float(input())
6 |
7 | # 리스트 pos와 neg를 생성한다.
8 | pos = [None] * ELEMENTS
9 | neg = [None] * ELEMENTS
10 | pos_index = 0
11 | neg_index = 0
12 | for i in range(ELEMENTS):
13 | if ar[i] > 0:
14 | pos[pos_index] = ar[i]
15 | pos_index += 1
16 | elif ar[i] < 0:
17 | neg[neg_index] = ar[i]
18 | neg_index += 1
19 |
20 | for i in range(pos_index):
21 | print(pos[i], end = "\t")
22 |
23 | print()
24 |
25 | for i in range(neg_index):
26 | print(neg[i], end = "\t")
--------------------------------------------------------------------------------
/Chapter35/file_35_6_3a.py:
--------------------------------------------------------------------------------
1 | CITIES = 10
2 | DAYS = 31
3 |
4 | names = [None] * CITIES
5 | t = [ [None] * DAYS for i in range(CITIES) ]
6 |
7 | for i in range(CITIES):
8 | names[i] = input(str(i + 1) + "번째 도시의 이름을 입력하여라: ")
9 | for j in range(DAYS):
10 | t[i][j] = int(input(str(j + 1) + "번째 날짜의 온도를 입력하여라: "))
11 |
12 | count = [None] * CITIES
13 |
14 | for i in range(CITIES):
15 | count[i] = 0
16 | for j in range(DAYS):
17 | if t[i][j] < 2:
18 | count[i] += 1
19 |
20 | print("1월 중 강설 가능성이 있는 도시:")
21 | for i in range(CITIES):
22 | if count[i] != 0:
23 | print(names[i])
24 |
--------------------------------------------------------------------------------
/Chapter33/file_33_2_1a.py:
--------------------------------------------------------------------------------
1 | STUDENTS = 20
2 | LESSONS = 10
3 |
4 | grades = [ [None] * LESSONS for i in range(STUDENTS) ]
5 |
6 | for i in range(STUDENTS):
7 | print("학생 번호:", (i + 1))
8 | for j in range(LESSONS):
9 | grades[i][j] = int(input(str(j + 1) + "번째 교과목의 점수를 입력하여라: "))
10 |
11 | # average 리스트 생성
12 | average = [None] * STUDENTS
13 | for i in range(STUDENTS):
14 | average[i] = 0
15 | for j in range(LESSONS):
16 | average[i] += grades[i][j]
17 | average[i] /= LESSONS
18 |
19 | # 89점보다 높은 점수 출력
20 | for i in range(STUDENTS):
21 | if average[i] > 89:
22 | print(average[i])
23 |
--------------------------------------------------------------------------------
/Chapter29/file_29_4_1.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | while True:
4 | a = float(input("변 A를 입력하여라: "))
5 | while a <= 0:
6 | a = float(input("올바르지 않은 값입니다. 변 A를 입력하여라: "))
7 |
8 | b = float(input("변 B를 입력하여라: "))
9 | while b <= 0:
10 | b = float(input("올바르지 않은 값입니다. 변 B를 입력하여라: "))
11 |
12 | c = float(input("변 C를 입력하여라: "))
13 | while c <= 0:
14 | c = float(input("올바르지 않은 값입니다. 변 C를 입력하여라: "))
15 |
16 | s = (a + b + c) / 2
17 | area = math.sqrt(s * (s - a) * (s - b) * (s - c))
18 | print("면적:", area)
19 |
20 | answer = input("반복하시겠습니까?: ")
21 | if answer.upper() != "YES": break
22 |
--------------------------------------------------------------------------------
/Chapter29/file_29_6_4b.py:
--------------------------------------------------------------------------------
1 | message = input("메시지를 입력하여라: ").lower()
2 |
3 | # "not in" 멤버십 연산자를 사용하여 공백, 쉼표, 구두점, 물음표를 제거
4 | message_clean = ""
5 | for letter in message:
6 | if letter not in " ,.?":
7 | message_clean += letter
8 |
9 | middle_pos = (len(message_clean) - 1) // 2
10 |
11 | palindrome = True
12 |
13 | for i in range(middle_pos + 1):
14 | left_letter = message_clean[i]
15 | # 음수 인덱스를 사용하여 문자를 오른쪽에서부터 접근
16 | right_letter = message_clean[-i - 1]
17 | if left_letter != right_letter:
18 | palindrome = False
19 | break
20 |
21 | if palindrome == True:
22 | print("이 메시지는 회문입니다.")
23 |
--------------------------------------------------------------------------------
/Chapter35/file_35_1_4c.py:
--------------------------------------------------------------------------------
1 | COLUMNS = 20
2 | ROWS_OF_A = 10
3 | ROWS_OF_B = 30
4 |
5 | # 입력받은 값을 리스트 a에 저장한다.
6 | a = [ [None] * COLUMNS for i in range(ROWS_OF_A) ]
7 | for i in range(ROWS_OF_A):
8 | for j in range(COLUMNS):
9 | a[i][j] = float(input())
10 |
11 | # 입력받은 값을 리스트 b에 저장한다.
12 | b = [ [None] * COLUMNS for i in range(ROWS_OF_B) ]
13 | for i in range(ROWS_OF_B):
14 | for j in range(COLUMNS):
15 | b[i][j] = float(input())
16 |
17 | # 리스트 new_arr를 생성한다.
18 | new_arr = a + b
19 |
20 | # 리스트 new_arr를 출력한다.
21 | for row in new_arr:
22 | for element in row:
23 | print(element, end = "\t")
24 | print()
--------------------------------------------------------------------------------
/Chapter22/file_22_5_3a.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | inp = input()
5 |
6 | if not re.match(IS_NUMERIC, inp):
7 | print("숫자가 아닙니다.")
8 | else:
9 | x = int(inp)
10 | if x < 10000:
11 | print("5자릿수보다 작은 수입니다.")
12 | elif x > 99999:
13 | print("5자릿수보다 큰 수입니다.")
14 | else:
15 | digit1, r = divmod(x, 10000)
16 | digit2, r = divmod(r, 1000)
17 | digit3, r = divmod(r, 100)
18 | digit4, digit5 = divmod(r, 10)
19 |
20 | if digit1 == digit5 and digit2 == digit4:
21 | print("회문입니다.")
22 | else:
23 | print("회문이 아닙니다.")
24 |
--------------------------------------------------------------------------------
/Chapter33/file_33_3_1a.py:
--------------------------------------------------------------------------------
1 | STUDENTS = 10
2 | LESSONS = 5
3 |
4 | grades = [ [None] * LESSONS for i in range(STUDENTS) ]
5 | for i in range(STUDENTS):
6 | print("학생 번호:", (i + 1))
7 | for j in range(LESSONS):
8 | grades[i][j] = int(input(str(j + 1) + "번째 교과목의 점수를 입력하여라: "))
9 |
10 | # average 리스트를 생성한 후, 열 단위로 반복 처리
11 | average = [None] * LESSONS
12 | for j in range(LESSONS):
13 | average[j] = 0
14 | for i in range(STUDENTS):
15 | average[j] += grades[i][j]
16 | average[j] /= STUDENTS
17 |
18 | # 89점보다 높은 평균 점수 모두를 출력
19 | for j in range(LESSONS):
20 | if average[j] > 89:
21 | print(average[j])
22 |
--------------------------------------------------------------------------------
/Chapter35/file_35_5_7.py:
--------------------------------------------------------------------------------
1 | ROWS = 20
2 | COLUMNS = 30
3 |
4 | haystack = [ [None] * COLUMNS for i in range(ROWS) ]
5 |
6 | for i in range(ROWS):
7 | for j in range(COLUMNS):
8 | haystack[i][j] = float(input())
9 |
10 | needle = float(input("검색 값을 입력하여라: "))
11 |
12 | count = 0
13 | for j in range(COLUMNS):
14 | found = False
15 | for i in range(ROWS):
16 | if haystack[i][j] == needle:
17 | found = True
18 | break
19 |
20 | if found == True:
21 | count += 1
22 | else:
23 | break
24 |
25 | if count == COLUMNS:
26 | print(needle, "이/가 모든 열에 있습니다.")
27 |
--------------------------------------------------------------------------------
/Chapter29/file_29_5_2.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | maximum = -274
5 | m_name = ""
6 |
7 | name = input("행성 이름을 입력하여라: ")
8 | while name.upper() != "STOP":
9 | inp = input("행성의 평균 온도를 입력하여라: ")
10 | while not re.match(IS_NUMERIC, inp) or float(inp) < --273.15:
11 | print("부적절한 값!")
12 | inp = input("-273.15보다 큰 값을 입력하여라: ")
13 |
14 | t = float(inp)
15 |
16 | if t > maximum:
17 | maximum = t
18 | m_name = name
19 |
20 | name = input("행성 이름을 입력하여라: ")
21 |
22 | if maximum != -274:
23 | print("가장 뜨거운 행성:", m_name)
24 | else:
25 | print("아무런 값도 입력하지 않았음!")
26 |
--------------------------------------------------------------------------------
/Chapter22/file_22_3_1.py:
--------------------------------------------------------------------------------
1 | w1 = int(input("첫 번째 사람의 몸무게를 입력하여라: "))
2 | n1 = input("첫 번째 사람의 이름을 입력하여라: ")
3 |
4 | w2 = int(input("두 번째 사람의 몸무게를 입력하여라: "))
5 | n2 = input("두 번째 사람의 이름을 입력하여라: ")
6 |
7 | w3 = int(input("세 번째 사람의 몸무게를 입력하여라: "))
8 | n3 = input("세 번째 사람의 이름을 입력하여라: ")
9 |
10 | maximum = w1
11 | m_name = n1 # 몸무게가 가장 많이 나가는 사람의 이름을 저장할 변수
12 |
13 | if w2 > maximum:
14 | maximum = w2
15 | m_name = n2 # maximum보다 w2가 크므로 n2값을 m_name에 저장
16 |
17 | if w3 > maximum:
18 | maximum = w3
19 | m_name = n3 # maximum보다 w3가 크므로 n3값을 m_name에 저장
20 |
21 | print("몸무게가 가장 많이 나가는 사람:", m_name)
22 | print("몸무게:", maximum)
23 |
--------------------------------------------------------------------------------
/Chapter35/file_35_1_3a.py:
--------------------------------------------------------------------------------
1 | ELEMENTS_OF_A = 20
2 | ELEMENTS_OF_B = 30
3 | ELEMENTS_OF_NEW = ELEMENTS_OF_A + ELEMENTS_OF_B
4 |
5 | # 입력받은 값을 리스트 a와 b에 각각 저장한다.
6 | a = [None] * ELEMENTS_OF_A
7 | b = [None] * ELEMENTS_OF_B
8 | for i in range(ELEMENTS_OF_A):
9 | a[i] = float(input())
10 | for i in range(ELEMENTS_OF_B):
11 | b[i] = float(input())
12 |
13 | # 리스트 new_arr를 생성한다.
14 | new_arr = [None] * ELEMENTS_OF_NEW
15 | for i in range(ELEMENTS_OF_A):
16 | new_arr[i] = a[i]
17 | for i in range(ELEMENTS_OF_B):
18 | new_arr[ELEMENTS_OF_A + i] = b[i]
19 |
20 | # 리스트 new_arr를 출력한다.
21 | for i in range(ELEMENTS_OF_NEW):
22 | print(new_arr[i], end = "\t")
--------------------------------------------------------------------------------
/Chapter39/file_39_5b.py:
--------------------------------------------------------------------------------
1 | def prepend_title(first_name, last_name, title = "Mr.", reverse = False):
2 | if reverse == False:
3 | return_value = title + " " + first_name + " " + last_name
4 | else:
5 | return_value = title + " " + last_name + " " + first_name
6 | return return_value
7 |
8 | # 메인 코드
9 |
10 | # Mr. John King 출력
11 | print(prepend_title("John", "King"))
12 |
13 | # Ms. Maria Miller 출력
14 | print(prepend_title("Maria", "Miller", "Ms."))
15 |
16 | # Ms. Miller Maria 출력
17 | print(prepend_title("Maria", "Miller", "Ms.", True))
18 |
19 | # ㅋ키워드 인자를 사용하여 Mr. King John 출력
20 | print(prepend_title("John", "King", reverse = True))
21 |
--------------------------------------------------------------------------------
/Chapter22/file_22_4_6.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | inp = input("전력 소비량을 입력하여라(kWh): ")
5 |
6 | if not re.match(IS_NUMERIC, inp):
7 | print("입력한 값은 숫자가 아닙니다.")
8 | else:
9 | kwh = int(inp)
10 | if kwh < 0:
11 | print("입력한 값은 음수입니다.")
12 | else:
13 | if kwh <= 500:
14 | t = kwh * 100
15 | elif kwh <= 2000:
16 | t = 250 * kwh - 75000
17 | elif kwh <= 4000:
18 | t = 400 * kwh - 375000
19 | else:
20 | t = 600 * kwh - 1175000
21 |
22 | t = 1.10 * t # 이 명령문은 t = t + (t * 10 / 100)과 동일함
23 |
24 | print("세금을 포함한 총 지불액:", t)
25 |
--------------------------------------------------------------------------------
/Chapter35/file_35_3_3a.py:
--------------------------------------------------------------------------------
1 | LAKES = 20
2 |
3 | names = [None] * LAKES
4 | depths = [None] * LAKES
5 | countries = [None] * LAKES
6 | areas = [None] * LAKES
7 |
8 | for i in range(LAKES):
9 | names[i] = input()
10 | depths[i] = float(input())
11 | countries[i] = input()
12 | areas[i] = float(input())
13 |
14 | maximum = depths[0]
15 | m_name = names[0]
16 | m_country = countries[0]
17 | m_area = areas[0]
18 | for i in range(1, LAKES):
19 | if depths[i] > maximum:
20 | maximum = depths[i]
21 | m_name = names[i]
22 | m_country = countries[i]
23 | m_area = areas[i]
24 |
25 | print(maximum, m_name, m_country, m_area)
--------------------------------------------------------------------------------
/Chapter22/file_22_2_5.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | print("a, b, c의 값을 입력하여라: ")
4 | a = float(input())
5 | b = float(input())
6 | c = float(input())
7 |
8 | if a != 0:
9 | D = b ** 2 - 4 * a * c
10 | if D >= 0:
11 | if D > 0:
12 | x1 = (-b + math.sqrt(D)) / (2 * a)
13 | x2 = (-b - math.sqrt(D)) / (2 * a)
14 | print("근:", x1, ",", x2)
15 | else:
16 | x = -b / (2 * a)
17 | print("하나의 중근:", x)
18 | else:
19 | print("허근")
20 | else:
21 | if b != 0:
22 | x = -c / b
23 | print("근:", x)
24 | elif c != 0:
25 | print("불능")
26 | else:
27 | print("부정")
28 |
--------------------------------------------------------------------------------
/Chapter22/file_22_1_5.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 | COEFFICIENT = 3.785
4 |
5 | print("1: 갤런을 리터로 바꾸기")
6 | print("2: 리터를 갤런으로 바꾸기")
7 | choice = int(input("메뉴를 선택하여라: "))
8 |
9 | if choice < 1 or choice > 2:
10 | print("잘못된 선택입니다.")
11 | else:
12 | inp = input("연료량을 입력하여라: ")
13 | if re.match(IS_NUMERIC, inp):
14 | quantity = float(inp)
15 | if choice == 1:
16 | result = quantity * COEFFICIENT
17 | print(quantity, "갤런 =", result, "리터")
18 | else:
19 | result = quantity / COEFFICIENT
20 | print(quantity, "리터 =", result, "갤런")
21 | else:
22 | print("숫자가 아닙니다.")
23 |
--------------------------------------------------------------------------------
/Chapter39/file_39_7a.py:
--------------------------------------------------------------------------------
1 | total_yes = 0
2 | female_no = 0
3 | for i in range(100):
4 |
5 | while True:
6 | temp1 = input("성별을 입력하세요(" + str(i + 1) + "): ")
7 | sex = temp1.lower() # 영어 입력일 경우 소문자로 변경
8 | if sex == "남자" or sex == "여자": break
9 |
10 | while True:
11 | temp2 = input("오후에 조깅을 하나요? ")
12 | answer = temp2.lower() # 영어 입력일 경우 소문자로 변경
13 | if answer == "예" or answer == "아니요" or answer == "종종": break
14 |
15 | if answer == "예":
16 | total_yes += 1
17 |
18 | if sex == "여자" and answer == "아니요":
19 | female_no += 1
20 |
21 | print("긍정적인 답볍의 수:", total_yes)
22 | print("여성의 부정적인 답변의 수:", female_no)
23 |
--------------------------------------------------------------------------------
/Chapter22/file_22_4_2.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | inp = input("주문액을 입력하여라: ")
5 |
6 | if not re.match(IS_NUMERIC, inp):
7 | print("입력한 값은 숫자가 아닙니다.")
8 | else:
9 | amount = float(inp)
10 | if amount < 0:
11 | print("입력한 값이 음수입니다.")
12 | else:
13 | if amount < 30000:
14 | discount = 0
15 | elif amount < 70000:
16 | discount = 5
17 | elif amount < 150000:
18 | discount = 10
19 | else:
20 | discount = 20
21 | payment = amount - amount * discount / 100
22 |
23 | print("할인액: ", discount, "%", sep = "")
24 | print("지불액: ", payment, "원", sep = "")
25 |
--------------------------------------------------------------------------------
/Chapter41/file_41_1_2.py:
--------------------------------------------------------------------------------
1 | def test_integer(number):
2 | return_value = False
3 |
4 | if number == int(number):
5 | return_value = True
6 | return return_value
7 |
8 | def test_odd(number):
9 | return_value = False
10 |
11 | if number % 2 != 0:
12 | return_value = True
13 | return return_value
14 |
15 | def test_positive(number):
16 | return_value = False
17 |
18 | if number > 0:
19 | return_value = True
20 | return return_value
21 |
22 | # 메인 코드
23 | total = 0
24 | x = float(input())
25 | while test_positive(x) == True:
26 | if test_integer(x) == True and test_odd(x) == True:
27 | total += x
28 | x = float(input())
29 |
30 | print(total)
31 |
--------------------------------------------------------------------------------
/Chapter35/file_35_1_4b.py:
--------------------------------------------------------------------------------
1 | COLUMNS = 20
2 | ROWS_OF_A = 10
3 | ROWS_OF_B = 30
4 |
5 | # 입력받은 값을 리스트 a에 저장한다.
6 | a = [ [None] * COLUMNS for i in range(ROWS_OF_A) ]
7 | for i in range(ROWS_OF_A):
8 | for j in range(COLUMNS):
9 | a[i][j] = float(input())
10 |
11 | # 입력받은 값을 리스트 b에 저장한다.
12 | b = [ [None] * COLUMNS for i in range(ROWS_OF_B) ]
13 | for i in range(ROWS_OF_B):
14 | for j in range(COLUMNS):
15 | b[i][j] = float(input())
16 |
17 | # 리스트 new_arr를 생성한다.
18 | new_arr = []
19 | for row in a:
20 | new_arr.append(row)
21 | for row in b:
22 | new_arr.append(row)
23 |
24 | # 리스트 new_arr를 출력한다.
25 | for row in new_arr:
26 | for element in row:
27 | print(element, end = "\t")
28 | print()
--------------------------------------------------------------------------------
/Chapter33/file_33_4_1b.py:
--------------------------------------------------------------------------------
1 | STUDENTS = 10
2 | LESSONS = 5
3 |
4 | # 이름과 점수를 함께 입력받음
5 | names = [None] * STUDENTS
6 | grades = [ [None] * STUDENTS for i in range(LESSONS) ]
7 | for j in range(STUDENTS):
8 | names[j] = input(str(j + 1) + "번째 학생의 이름을 입력하여라: ")
9 | for i in range(LESSONS):
10 | grades[i][j] = int(input(str(names[j]) + " 학생의 " + \
11 | str(i + 1) + "번째 과목 점수를 입력하여라: "))
12 |
13 | # count 리스트 생성
14 | count = [None] * STUDENTS
15 | for j in range(STUDENTS):
16 | count[j] = 0
17 | for i in range(LESSONS):
18 | if grades[i][j] > 89:
19 | count[j] += 1
20 |
21 | # 점수가 89점 이상인 학생 이름 출력
22 | for j in range(STUDENTS):
23 | if count[j] > 1:
24 | print(names[j])
--------------------------------------------------------------------------------
/Chapter35/file_35_2_3.py:
--------------------------------------------------------------------------------
1 | import re
2 |
3 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
4 | ELEMENTS = 20
5 | odds = [None] * ELEMENTS
6 | for i in range(ELEMENTS):
7 | while True:
8 | inp = input("홀수 정수를 입력하여라: ")
9 | failure = False
10 | if not re.match(IS_NUMERIC, inp):
11 | print("숫자값을 입력하여라!")
12 | failure = True
13 | elif float(inp) != int(float(inp)):
14 | print("정수를 입력하여라!")
15 | failure = True
16 | elif int(inp) % 2 == 0:
17 | print("홀수를 입력하세요!")
18 | failure = True
19 | if failure == False: break
20 | odds[i] = int(inp)
21 |
22 | # 요소를 역순으로 출력
23 | for element in odds[::-1]:
24 | print(element, end = "\t")
25 |
--------------------------------------------------------------------------------
/Chapter35/file_35_5_5.py:
--------------------------------------------------------------------------------
1 | TEAMS = 12
2 | WEEKS = 20
3 |
4 | names = [None] * TEAMS
5 | results = [ [None] * WEEKS for i in range(TEAMS) ]
6 |
7 | for i in range(TEAMS):
8 | names[i] = input(str(i + 1) + "번째 팀 이름을 입력하여라: ")
9 | for j in range(WEEKS):
10 | results[i][j] = input(str(j + 1) + "번째 주 " + names[i] + \
11 | "의 결과를 입력하여라: ")
12 | needle = input("검색할 결과를 입력하여라: ")
13 |
14 | for i in range(TEAMS):
15 | found = False
16 | print(names[i], "의 결과를 발견하였습니다.")
17 | for j in range(WEEKS):
18 | if results[i][j].upper() == needle.upper():
19 | print((j + 1), "번째 주")
20 | found = True
21 |
22 | if found == False:
23 | print("어떤 결과도 발견하지 못했습니다.")
--------------------------------------------------------------------------------
/Chapter33/file_33_4_1a.py:
--------------------------------------------------------------------------------
1 | STUDENTS = 10
2 | LESSONS = 5
3 |
4 | names = [None] * STUDENTS
5 | grades = [ [None] * LESSONS for i in range(STUDENTS) ]
6 |
7 | # 학생의 이름과 성적을 함께 입력받음
8 | for i in range(STUDENTS):
9 | names[i] = input(str(i + 1) + "번째 학생의 이름을 입력하여라: ")
10 | for j in range(LESSONS):
11 | grades[i][j] = int(input(str(names[i]) + " 학생의 " + \
12 | str(j + 1) + "번째 과목 점수를 입력하여라: "))
13 |
14 | # count 리스트 생성
15 | count = [None] * STUDENTS
16 | for i in range(STUDENTS):
17 | count[i] = 0
18 | for j in range(LESSONS):
19 | if grades[i][j] > 89:
20 | count[i] += 1
21 |
22 | # 점수가 89점 이상인 학생 이름 출력
23 | for i in range(STUDENTS):
24 | if count[i] > 1:
25 | print(names[i])
26 |
--------------------------------------------------------------------------------
/Chapter35/file_35_4_9.py:
--------------------------------------------------------------------------------
1 | months = ["1월", "2월", "3월", "4월", "5월", "6월", \
2 | "7월", "8월", "9월", "10월", "11월", "12월"]
3 |
4 | kwh = [None] * len(months)
5 |
6 | for i in range(len(months)):
7 | kwh[i] = float(input(months[i] + "의 kWh를 입력하여라: "))
8 |
9 | for m in range(len(months)):
10 | maximum = kwh[m]
11 | index_of_max = m
12 | for n in range(m, len(months)):
13 | if kwh[n] > maximum:
14 | maximum = kwh[n]
15 | index_of_max = n
16 |
17 | # kwh 내 두 요소 위치의 값을 맞바꾼다.
18 | kwh[m], kwh[index_of_max] = kwh[index_of_max], kwh[m]
19 | # months 내 두 요소 위치의 값을 맞바꾼다.
20 | months[m], months[index_of_max] = months[index_of_max], months[m]
21 |
22 | for i in range(len(months)):
23 | print(months[i], ":", kwh[i])
--------------------------------------------------------------------------------
/Chapter35/file_35_3_4.py:
--------------------------------------------------------------------------------
1 | import re
2 |
3 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
4 | STUDENTS = 100
5 |
6 | names = [None] * STUDENTS
7 | grades = [None] * STUDENTS
8 | for i in range(STUDENTS):
9 | names[i] = input(str(i + 1) + "번째 학생 이름을 입력하여라: ")
10 |
11 | inp = input("점수를 입력하여라: ")
12 | while not re.match(IS_NUMERIC, inp) or int(inp) < 0:
13 | print("부적절한 값입니다.")
14 | inp = input("점수를 입력하여라: ")
15 | grades[i] = int(inp)
16 |
17 | maximum = grades[0] # 혹은 다음과 같이 해결할 수도 있음.
18 | for i in range(1, STUDENTS): # maximum = max(grades)
19 | if grades[i] > maximum:
20 | maximum = grades[i]
21 |
22 | print("가장 높은 점수를 가진 학생:")
23 | for i in range(STUDENTS):
24 | if grades[i] == maximum:
25 | print(names[i])
26 |
--------------------------------------------------------------------------------
/Chapter33/file_33_7_d.py:
--------------------------------------------------------------------------------
1 | a = [3, 6, 10, 2, 1, 12, 4]
2 | a.sort()
3 | for element in a:
4 | print(element, end = " ") # 출력: 1 2 3 4 6 10 12
5 |
6 | print()
7 |
8 | # 내림차순 정렬
9 | a.sort(reverse = True)
10 | for element in a:
11 | print(element, end = " ") # 출력: 12 10 6 4 3 2 1
12 |
13 | print()
14 | b = [ [4, 6, 8], \
15 | [3, 11, 9], \
16 | [2, 9, 1]
17 | ]
18 |
19 | # 마지막 열 정렬
20 | b[2].sort()
21 |
22 | for row in b:
23 | for element in row:
24 | print(element, end = " ") # 출력: 4 6 8
25 | # 3 11 9
26 | # 1 2 9
27 | print()
28 |
29 | c = ["Hermes", "Apollo", "Dionysus"]
30 | c.sort()
31 | for element in c:
32 | print(element, end = " ") # 출력: Apollo Dionysus Hermes
33 |
--------------------------------------------------------------------------------
/Chapter41/file_41_2_2.py:
--------------------------------------------------------------------------------
1 | PEOPLE = 20
2 |
3 | def my_sort(a, ascending = True):
4 | for m in range(PEOPLE - 1):
5 | for n in range(PEOPLE - 1, m, -1):
6 | if ascending == True:
7 | if a[n] < a[n - 1]:
8 | a[n], a[n - 1] = a[n - 1], a[n]
9 | else:
10 | if a[n] > a[n - 1]:
11 | a[n], a[n - 1] = a[n - 1], a[n]
12 |
13 | def display_list(a):
14 | for i in range(PEOPLE):
15 | print(a[i])
16 |
17 | # 메인 코드
18 | names = [None] * PEOPLE
19 | for i in range(PEOPLE):
20 | names[i] = input("이름을 입력하여라: ")
21 |
22 | my_sort(names) # 이름을 오름차순으로 정렬
23 | display_list(names) # 정렬된 이름 출력
24 |
25 | my_sort(names, False) # 이름을 내람차순으로 정렬
26 | display_list(names) # 정렬된 이름 출력
--------------------------------------------------------------------------------
/Chapter41/file_41_1_5.py:
--------------------------------------------------------------------------------
1 | import random
2 | ELEMENTS = 100
3 |
4 | def dice():
5 | return random.randrange(1, 7)
6 |
7 | def search_and_count(x, a):
8 | count = 0
9 |
10 | for i in range(ELEMENTS):
11 | if a[i] == x:
12 | count += 1
13 | return count
14 |
15 | # 메인 코드
16 |
17 | # 1과 6 사이의 무작위 수를 가진 리스트 a 생성
18 | a = [None] * ELEMENTS
19 | for i in range(ELEMENTS):
20 | a[i] = dice()
21 |
22 | # 리스트 n을 생성하고, 리스트 a에 주사위의 각 숫자가 몇 번 나왔는지를 출력
23 | n = [None] * 6
24 | for i in range(6):
25 | n[i] = search_and_count(i + 1, a)
26 | print((i + 1), "이(가)", n[i], "번 나왔습니다.")
27 |
28 | # 리스트 n에서 최댓값 찾기
29 | maximum = n[0]
30 | max_i = 0
31 | for i in range(1, 6):
32 | if n[i] > maximum:
33 | maximum = n[i]
34 | max_i = i
35 |
36 | # 리스트 n에서 가장 많이 나온 숫자를 출력
37 | print((max_i + 1), "이(가) 리스트에서 가장 많이 나옴:", maximum, "번")
38 |
--------------------------------------------------------------------------------
/Chapter29/file_29_6_4a.py:
--------------------------------------------------------------------------------
1 | message = input("메시지를 입력하여라: ").lower()
2 |
3 | # 공백, 쉼표, 구두점, 물음표를 제외한 모든 문자를 포함한 문자열을 생성
4 | message_clean = ""
5 | for letter in message:
6 | if letter != " " and letter != "," and letter != "." and letter != "?":
7 | message_clean += letter
8 |
9 | # message_clean의 중간 위치
10 | middle_pos = (len(message_clean) - 1) // 2
11 |
12 | # message_clean의 마지막 위치
13 | j = len(message_clean) - 1
14 |
15 | # 우선, 문장이 회문이라고 가정
16 | palindrome = True
17 |
18 | # for-루프가 문자 하나씩 비교
19 | for i in range(middle_pos + 1):
20 | left_letter = message_clean[i]
21 | right_letter = message_clean[j]
22 | # 적어도 문자 쌍 중에 어느 하나라도 검증에 실패한다면,
23 | # palindrome 변수를 False로 설정
24 | if left_letter != right_letter:
25 | palindrome = False
26 | j -= 1
27 |
28 | # 변수 palindrome이 여전히 True이면
29 | if palindrome == True:
30 | print("이 메시지는 회문입니다.")
31 |
--------------------------------------------------------------------------------
/Chapter35/file_35_6_5.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | ATHLETES = 20
4 | SHOTS = 6
5 |
6 | # 리스트 names와 points에 값을 입력받는다.
7 | names = [None] * ATHLETES
8 | points = [ [None] * SHOTS for i in range(ATHLETES) ]
9 |
10 | for i in range(ATHLETES):
11 | names[i] = input(str(i + 1) + "번째 선수의 이름을 입력하여라: ")
12 | for j in range(SHOTS):
13 | points[i][j] = int(input(str(j + 1) + "번째 화살의 득점을 입력하여라: "))
14 |
15 | # 리스트 total을 생성한다.
16 | total = []
17 | for row in points:
18 | total.append(math.fsum(row))
19 |
20 | # 리스트 names와 total을 정렬한다.
21 | for m in range(1, ATHLETES):
22 | for n in range(ATHLETES - 1, m - 1, -1):
23 | if total[n] > total[n - 1]:
24 | total[n], total[n - 1] = total[n - 1], total[n]
25 | names[n], names[n - 1] = names[n - 1], names[n]
26 |
27 | # 금메달, 은메달, 동메달 수여자를 출력한다.
28 | for i in range(3):
29 | print(names[i], "\t", total[i])
--------------------------------------------------------------------------------
/Chapter41/file_41_2_3.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 |
4 | def get_consumption():
5 | inp = input("전력 소비량을 입력하여라(kWh): ")
6 | while not re.match(IS_NUMERIC, inp) or int(inp) < 0:
7 | print("오류: 올바르지 않은 입력값입니다.")
8 | inp = input("양수를 입력하여라: ")
9 | return int(inp)
10 |
11 |
12 | def find_amount(kwh):
13 | if kwh <= 400:
14 | amount = kwh * 110
15 | elif kwh <= 2000:0
16 | amount = 400 * 110 + (kwh - 400) * 220
17 | elif kwh <= 4000:
18 | amount = 400 * 110 + 1100 * 220 + (kwh - 1500) * 350
19 | else:
20 | amount = 400 * 110 + 1100 * 220 + 1500 * 350 + (kwh - 3000) * 500
21 |
22 | amount += 0.26 * amount
23 | return amount
24 |
25 | # 메인 코드
26 | while True:
27 | kwh = get_consumption()
28 | print("총 전기요금:", find_amount(kwh))
29 | answer = input("반복할까요?")
30 | if answer.upper() != "YES": break
31 |
--------------------------------------------------------------------------------
/Chapter39/file_39_4b.py:
--------------------------------------------------------------------------------
1 | ELEMENTS = 10
2 |
3 | def get_list(a):
4 | aux_list = [None] * ELEMENTS
5 |
6 | # 리스트를 보조 리스트에 복사한다.
7 | for m in range(ELEMENTS):
8 | aux_list[m] = a[m]
9 |
10 | # 보조 리스트를 정렬한다.
11 | for m in range(1, ELEMENTS):
12 | element = aux_list[m]
13 | n = m
14 | while n > 0 and aux_list[n - 1] > element:
15 | aux_list[n] = aux_list[n - 1]
16 | n -= 1
17 | aux_list[n] = element
18 |
19 | ret_list = [aux_list[0], aux_list[1], aux_list[2]]
20 | return ret_list
21 |
22 | # 메인 코드
23 | names = ["도시1", "도시2", "도시3", "도시4", "도시5", \
24 | "도시6", "도시7", "도시8", "도시9", "도시10"]
25 |
26 | t = [75, 73, 78, 70, 71, 74, 72, 69, 79, 77]
27 |
28 | low = get_list(t)
29 | print("가장 낮은 온도: ", low[0], low[1], low[2])
30 |
31 | # 이 단계에서 리스트 t는 정렬되어 있지 않음
32 | for i in range(ELEMENTS):
33 | print(t[i], "\t", names[i])
34 |
--------------------------------------------------------------------------------
/Chapter35/file_35_4_11.py:
--------------------------------------------------------------------------------
1 | CARS = 10
2 | LAPS = 20
3 |
4 | # 이름과 경과 시간을 함께 입력받는다.
5 | names = [None] * CARS
6 | elapsed_times = [ [None] * LAPS for i in range(CARS) ]
7 | for i in range(CARS):
8 | names[i] = input(str(i + 1) + "번째 운전자의 이름을 입력하여라: ")
9 | for j in range(LAPS):
10 | elapsed_times[i][j] = float(input(str(j + 1) + \
11 | "번째 바퀴의 경과 시간을 입력하여라: "))
12 |
13 | # 리스트 elapsed_times를 정렬한다.
14 | for i in range(CARS):
15 | for m in range(1, LAPS):
16 | element = elapsed_times[i][m]
17 | n = m
18 | while n > 0 and elapsed_times[i][n - 1] > element:
19 | elapsed_times[i][n] = elapsed_times[i][n - 1]
20 | n -= 1
21 | elapsed_times[i][n] = element
22 |
23 | # 가장 오래 걸린 경과 시간 세 개를 출력한다.
24 | for i in range(CARS):
25 | print(names[i], "의 가장 오래 걸린 경과 시간")
26 | print("-------------------------------------")
27 | for j in range(3):
28 | print(elapsed_times[i][j])
--------------------------------------------------------------------------------
/Chapter35/file_35_1_4a.py:
--------------------------------------------------------------------------------
1 | COLUMNS = 20
2 | ROWS_OF_A = 10
3 | ROWS_OF_B = 30
4 | ROWS_OF_NEW = ROWS_OF_A + ROWS_OF_B
5 |
6 | # 입력받은 값을 리스트 a에 저장한다.
7 | a = [ [None] * COLUMNS for i in range(ROWS_OF_A) ]
8 | for i in range(ROWS_OF_A):
9 | for j in range(COLUMNS):
10 | a[i][j] = float(input())
11 |
12 | # 입력받은 값을 리스트 b에 저장한다.
13 | b = [ [None] * COLUMNS for i in range(ROWS_OF_B) ]
14 | for i in range(ROWS_OF_B):
15 | for j in range(COLUMNS):
16 | b[i][j] = float(input())
17 |
18 | # 리스트 new_arr를 저장한다.
19 | new_arr = [ [None] * COLUMNS for i in range(ROWS_OF_NEW) ]
20 | for i in range(ROWS_OF_A):
21 | for j in range(COLUMNS):
22 | new_arr[i][j] = a[i][j]
23 | for i in range(ROWS_OF_B):
24 | for j in range(COLUMNS):
25 | new_arr[ROWS_OF_A + i][j] = b[i][j]
26 |
27 | # 리스트 new_arr를 출력한다.
28 | for i in range(ROWS_OF_NEW):
29 | for j in range(COLUMNS):
30 | print(new_arr[i][j], end = "\t")
31 | print()
--------------------------------------------------------------------------------
/Chapter35/file_35_4_4.py:
--------------------------------------------------------------------------------
1 | PEOPLE = 100
2 | # 두 리스트 first_names와 last_names에 저장할 값을 읽어 들인다.
3 | first_names = [None] * PEOPLE
4 | last_names = [None] * PEOPLE
5 | for i in range(PEOPLE):
6 | first_names[i] = input(str(i + 1) + "번째 사람의 영문 이름: ")
7 | last_names[i] = input(str(i + 1) + "번째 사람의 영문 성: ")
8 |
9 | # 리스트 last_names와 first_names를 정렬시킨다.
10 | for m in range(PEOPLE - 1):
11 | for n in range(PEOPLE - 1, m, -1):
12 | if last_names[n] < last_names[n - 1]:
13 | last_names[n], last_names[n - 1] = \
14 | last_names[n - 1], last_names[n]
15 | first_names[n], first_names[n - 1] = \
16 | first_names[n - 1], first_names[n]
17 | elif last_names[n] == last_names[n - 1]:
18 | if first_names[n] < first_names[n - 1]:
19 | first_names[n], first_names[n - 1] = \
20 | first_names[n - 1], first_names[n]
21 |
22 | # 리스트 last_names와 first_names를 출력한다.
23 | for i in range(PEOPLE):
24 | print(last_names[i], "\t", first_names[i])
--------------------------------------------------------------------------------
/Chapter35/file_35_5_9.py:
--------------------------------------------------------------------------------
1 | EVENTS = 20
2 | COUNTRIES = 10
3 |
4 | country_names = [None] * COUNTRIES
5 | event_descriptions = [ [None] * COUNTRIES for i in range(EVENTS) ]
6 |
7 | for j in range(COUNTRIES):
8 | country_names[j] = input(str(j + 1) + "번째 국가를 입력하여라: ")
9 | for i in range(EVENTS):
10 | event_descriptions[i][j] = input(str(i + 1) + \
11 | "번째 사건의 설명을 입력하여라: ")
12 |
13 | needle = input("겸색할 국가를 입력하여라: ").upper()
14 |
15 | index_position = -1
16 | left = 0
17 | right = EVENTS - 1
18 | found = False
19 | while left <= right and found == False:
20 | middle = (left + right) // 2
21 |
22 | if country_names[middle].upper() > needle:
23 | right = middle - 1
24 | elif country_names[middle].upper() < needle:
25 | left = middle + 1
26 | else:
27 | found = True
28 | index_position = middle
29 |
30 | if found == False:
31 | print("어떤 국가도 찾지 못하였습니다.")
32 | else:
33 | for i in range(EVENTS):
34 | print(event_descriptions[i][index_position])
--------------------------------------------------------------------------------
/Chapter41/file_41_2_1.py:
--------------------------------------------------------------------------------
1 | import re
2 | IS_NUMERIC = "^[-+]?\\d+(\\.\\d+)?$"
3 | PEOPLE = 5
4 |
5 | def get_age():
6 | inp = input("나이를 입력하여라: ")
7 | while not re.match(IS_NUMERIC, inp) or int(inp) <= 0:
8 | print("오류: 올바르지 않은 나이값입니다.")
9 | inp = input("양수를 입력하여라: ")
10 | return int(inp)
11 |
12 | def find_max(a):
13 | maximum = a[0]
14 | max_i = 0
15 | for i in range(1, PEOPLE):
16 | if a[i] > maximum:
17 | maximum = a[i]
18 | max_i = i
19 | return max_i
20 |
21 | # 메인 코드
22 | first_names = [None] * PEOPLE
23 | last_names = [None] * PEOPLE
24 | ages = [None] * PEOPLE
25 |
26 | for i in range(PEOPLE):
27 | first_names[i] = input("영문 성을 입력하여라(" + str(i + 1) + "): ")
28 | last_names[i] = input("영문 이름을 입력하여라(" + str(i + 1) + "): ")
29 | ages[i] = get_age()
30 |
31 | index_of_max = find_max(ages)
32 |
33 | print("나이가 가장 많은 사람:", last_names[index_of_max], first_names[index_of_max])
34 | print("나이가 가장 많은 사람의 나이는", ages[index_of_max], "세 입니다.")
35 |
--------------------------------------------------------------------------------
/Chapter39/file_39_7b.py:
--------------------------------------------------------------------------------
1 | def part1(i):
2 | while True:
3 | temp1 = input("성별을 입력하세요(" + str(i + 1) + "): ")
4 | sex = temp1.lower()
5 | if sex == "남자" or sex == "여자": break
6 |
7 | return sex
8 |
9 | def part2():
10 | while True:
11 | temp2 = input("오후에 조깅을 하나요? ")
12 | answer = temp2.lower()
13 | if answer == "예" or answer == "아니요" or answer == "종종": break
14 |
15 | return answer
16 |
17 | def part3(answer, sex, total_yes, female_no):
18 | if answer == "예":
19 | total_yes += 1
20 |
21 | if sex == "여자" and answer == "아니요":
22 | female_no += 1
23 |
24 | return total_yes, female_no
25 |
26 | def part4(total_yes, female_no):
27 | print("긍적적인 답변의 수:", total_yes)
28 | print("여성의 부정적인 답변의 수:", female_no)
29 |
30 | # 메인 코드
31 | total_yes = 0
32 | female_no = 0
33 | for i in range(100):
34 | sex = part1(i)
35 | answer = part2()
36 | total_yes, female_no = part3(answer, sex, total_yes, female_no)
37 |
38 | part4(total_yes, female_no)
39 |
--------------------------------------------------------------------------------
/Chapter35/file_35_4_7.py:
--------------------------------------------------------------------------------
1 | TEAMS = 32
2 | PLAYERS = 24
3 |
4 | # 팀 이름, 선수 이름, 선수별 득점수를 함께 읽어 들인다.
5 | t = [None] * TEAMS
6 | p = [ [None] * PLAYERS for i in range(TEAMS) ]
7 | g = [ [None] * PLAYERS for i in range(TEAMS) ]
8 | for i in range(TEAMS):
9 | t[i] = input(str(i + 1) + "번째 팀의 이름을 입력하여라: ")
10 | for j in range(PLAYERS):
11 | p[i][j] = input(str(j + 1) + "번째 선수의 이름을 입력하여라: ")
12 | g[i][j] = int(input(str(j + 1) + "번째 선수의 득점수를 입력하여라: "))
13 |
14 | # 리스트 g를 정렬한다.
15 | for i in range(TEAMS):
16 | m = 0
17 | swaps = True
18 | while m < PLAYERS - 1 and swaps == True:
19 | swaps = False
20 | for n in range(PLAYERS - 1, m, -1):
21 | if g[i][n] > g[i][n - 1]:
22 | g[i][n], g[i][n - 1] = g[i][n - 1], g[i][n]
23 | p[i][n], p[i][n - 1] = p[i][n - 1], p[i][n]
24 | swaps = True
25 | m += 1
26 |
27 | # 각 팀별 최고 득점자 5명을 출력한다.
28 | for i in range(TEAMS):
29 | print(t[i] + "팀의 최고 득점자")
30 | print("----------------------------------")
31 | for j in range(5):
32 | print(p[i][j], "선수가", g[i][j], "득점을 하였습니다.")
33 |
--------------------------------------------------------------------------------
/Chapter39/file_39_2_1.py:
--------------------------------------------------------------------------------
1 | def display_menu():
2 | print("1. USD를 EUR로 변환")
3 | print("2. USD를 GBP로 변환")
4 | print("3. USD를 JPY로 변환")
5 | print("4. USD를 CAD로 변환")
6 | print("5. 종료")
7 | print("----------------------------------------------")
8 | print("메뉴를 선택하여라: ", end = "")
9 |
10 | def USD_to_EU(value):
11 | return value * 0.72
12 |
13 | def USD_to_GBP(value):
14 | return value * 0.6
15 |
16 | def USD_to_JPY(value):
17 | return value * 102.15
18 |
19 | def USD_to_CAD(value):
20 | return value * 1.1
21 |
22 | # 메인 코드
23 | while True:
24 | display_menu()
25 | choice = int(input())
26 |
27 | if choice == 5:
28 | print("종료!")
29 | break
30 | else:
31 | amount = float(input("금액을 입력하여라(USD): "))
32 | if choice == 1:
33 | print(amount, "USD =", USD_to_EU(amount), "EUR")
34 | elif choice == 2:
35 | print(amount, "USD =", USD_to_GBP(amount), "GBP")
36 | elif choice == 3:
37 | print(amount, "USD =", USD_to_JPY(amount), "JPY")
38 | elif choice == 4:
39 | print(amount, "USD =", USD_to_CAD(amount), "CAD")
40 |
--------------------------------------------------------------------------------
/Chapter35/file_35_6_4.py:
--------------------------------------------------------------------------------
1 | STUDENTS = 10
2 | LESSONS = 5
3 |
4 | # 리스트 names와 grades로 값을 입력받는다.
5 | names = [None] * STUDENTS
6 | grades = [ [None] * LESSONS for i in range(STUDENTS) ]
7 |
8 | for i in range(STUDENTS):
9 | names[i] = input(str(i + 1) + "번째 학생의 이름을 입력하여라: ")
10 | for j in range(LESSONS):
11 | grades[i][j] = int(input(str(j + 1) + "번째 과목의 성적을 입력하여라: "))
12 |
13 | # 리스트 average를 생성한다.
14 | average = [None] * STUDENTS
15 | for i in range(STUDENTS):
16 | average[i] = 0
17 | for j in range(LESSONS):
18 | average[i] += grades[i][j]
19 | average[i] /= LESSONS
20 |
21 | # 리스트 average와 names를 정렬한다.
22 | for m in range(STUDENTS - 1):
23 | for n in range(STUDENTS - 1, m, -1):
24 | if average[n] > average[n - 1]:
25 | average[n], average[n - 1] = average[n - 1], average[n]
26 | names[n], names[n - 1] = names[n - 1], names[n]
27 | elif average[n] == average[n - 1]:
28 | if names[n] < names[n - 1]:
29 | names[n], names[n - 1] = names[n - 1], names[n]
30 |
31 | # 리스트 names와 average를 출력한다.
32 | for i in range(STUDENTS):
33 | print(names[i], "\t", average[i])
--------------------------------------------------------------------------------
/Chapter35/file_35_5_10.py:
--------------------------------------------------------------------------------
1 | EVENTS = 20
2 | COUNTRIES = 10
3 |
4 | country_names = [None] * COUNTRIES
5 | event_descriptions = [ [None] * COUNTRIES for i in range(EVENTS) ]
6 | event_years = [ [None] * COUNTRIES for i in range(EVENTS) ]
7 |
8 | for j in range(COUNTRIES):
9 | country_names[j] = input(str(j + 1) + "번째 국가 이름을 입력하여라: ")
10 | for i in range(EVENTS):
11 | event_descriptions[i][j] = input(str(i + 1) + \
12 | "번째 사건에 대한 설명을 입력하여라: ")
13 | event_years[i][j] = int(input(str(i + 1) + \
14 | "번째 사건에 대한 연도를 입력하여라: "))
15 |
16 | needle = int(input("검색할 연도를 입력하여라: "))
17 | row_index = -1
18 |
19 | for j in range(COUNTRIES):
20 | top = 0
21 | bottom = EVENTS - 1
22 | found = False
23 | while top <= bottom and found == False:
24 | middle = (top + bottom) // 2
25 |
26 | if event_years[middle][j] > needle:
27 | bottom = middle - 1
28 | elif event_years[middle][j] < needle:
29 | top = middle + 1
30 | else:
31 | found = True
32 | row_index = middle
33 |
34 | if found == False:
35 | print(country_names[j], "에 대한 어떤 사건도 발견하지 못했습니다.")
36 | else:
37 | print("국가:", country_names[j])
38 | print("연도:", event_years[row_index][j])
39 | print("사건:", event_descriptions[row_index][j])
--------------------------------------------------------------------------------
/Chapter35/file_35_5_6.py:
--------------------------------------------------------------------------------
1 | CITIES = 10
2 | CITIZENS = 30
3 |
4 | phone_num = [ [None] * CITIZENS for i in range(CITIES) ]
5 | ans = [ [None] * CITIZENS for i in range(CITIES) ]
6 |
7 | for i in range(CITIES):
8 | print((i + 1), "번째 도시")
9 | for j in range(CITIZENS):
10 | phone_num[i][j] = input(str(j + 1) + "번째 시민의 전화번호를 입력하여라: ")
11 | ans[i][j] = input(str(j + 1) + "번째 시민의 설문 답변을 입력하여라: ").upper()
12 | while ans[i][j] != "Y" and ans[i][j] != "N" and ans[i][j] != "S":
13 | ans[i][j] = input("잘못된 답변입니다. 답변을 다시 입력하여라: ").upper()
14 |
15 | needle = input("검색할 전화번호를 입력하여라: ")
16 |
17 | found = False
18 | position_i = -1
19 | position_j = -1
20 | i = 0
21 | while i <= CITIES - 1 and found == False:
22 | j = 0
23 | while j <= CITIZENS - 1 and found == False:
24 | if phone_num[i][j] == needle:
25 | found = True
26 | position_i = i
27 | position_j = j
28 | j += 1
29 | i += 1
30 |
31 | if found == False:
32 | print("전화번호를 찾지 못했습니다.")
33 | else:
34 | print("전화번호", phone_num[position_i][position_j])
35 | print("를 찾았습니다. '", end = "")
36 |
37 | if ans[position_i][position_j] == "Y":
38 | print("예", end = "")
39 | elif ans[position_i][position_j] == "N":
40 | print("아니요", end = "")
41 | else:
42 | print("불확실", end = "")
43 |
44 | print("' 설문결과입니다.")
--------------------------------------------------------------------------------