<์ค๋์ ํ์ต>
- Python ๋ผ์ด๋ธ ์ธ์ 1ํ์ฐจ
- SQL ์ฝ๋์นดํ (ํฌ๋กฌ ์ต์คํ ์ ) / โญ๏ธ์ ๋ฌธ ์๋ฃ
<ํ์ต๋ด์ฉ ์ ๋ฆฌ>
# Python ๋ผ์ด๋ธ ์ธ์ 1ํ์ฐจ
1๊ต์
- print(์ถ๋ ฅํ ๊ฐ)
์ซ์: ๊ทธ๋๋ก / ๋ฌธ์์ด: ๋ฐ์ดํ ์ฌ์ฉ - sep='๊ตฌ๋ถ์' (๊ธฐ๋ณธ๊ฐ: ๊ณต๋ฐฑ)
- end="" : ๋์ ๋ฃ์ ๋ฌธ์
- format() vs f-string
: ๋ฌธ์์ด์ ๋ณ์ ๋ฃ๊ธฐ
name = "๊น์ ์"
score = 100
print(f"{name}์ ์ ์๋ {score}์
๋๋ค.")
- input()
: ์ฌ์ฉ์์ ์ ๋ ฅ์ ์๊ตฌํ๋ ํจ์.
[๊ฒฐ๊ณผ ํ์ : str] - int(), float()
๋ฌธ์์ด์ ๊ฐ๊ฐ ์ ์/์ค์๋ก ํํ ๋ณํ - map(ํจ์, ๋ฐ๋ณต๊ฐ๋ฅ๊ฐ์ฒด)
ํจ์๋ฅผ ๋ชจ๋ ๋ฐ๋ณต๊ฐ๋ฅ๊ฐ์ฒด์ ์ ์ฉ. (roof ํจ์ ์์ด ๊ฐ๋จํ ํจ์ ๊ฐ๋ฅ)
๋ฆฌ์คํธ๊ฐ ์๋ [๊ฐ์ฒด]๋ก ๊ฐ ๋ฐํ - .split()
: ๋ฌธ์์ด์ ์ชผ๊ฐ์ ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋ง๋๋ ๊ธฐ๋ฅ / ๊ธฐ๋ณธ๊ฐ: ๊ณต๋ฐฑ๋ฌธ์(์ฌ๋ฌ ๊ฐ๋ ๋จ)
๋ฌธ์์ด์๋ง ์ ์ฉ ๊ฐ๋ฅํ ํจ์
[๋ฐํ: list]
์ํฉ์ ๋ฐ๋ผ ๊ณต๋ฐฑ์ด ๋ฌธ์ ๋ฅผ ๋ง๋ค๊ธฐ๋ ํฉ๋๋ค. ์ต๊ด์ ์ผ๋ก strip()**์ ํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
print("10 20 30".split())
print("a,b,c".split(","))
print("10 20 30".split())
- replace
- if else
โ ๋ฏธ๋ ํ๋ก์ ํธ) ์์ ํ ๊ณ์ฐ๊ธฐ ๋ง๋ค๊ธฐ
๋ชฉํ
์ฌ์ฉ์๊ฐ ๋ ์๋ฅผ ์
๋ ฅํ๋ฉด ์๋๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
ํฉ, ์ฐจ, ๊ณฑ, ๋๋์
(์ค์)
์
๋ ฅ์ด ์ด์ํ๋ฉด ์น์ ํ ์๋ด๋ฅผ ์ถ๋ ฅํ๊ณ ๋๋ด๊ธฐ
0์ผ๋ก ๋๋๋ฉด ๋ฉ์ถ์ง ์๊ฒ ์ฒ๋ฆฌํ๊ธฐ
์
๋ ฅ ํ์
์๋ ์ค ์ด๋ค ํ์์ด๋ ๋ฐ๋๋ก ํด ๋ด
์๋ค(๊ฐ๋ฅํ๋ฉด):
10 3 (๊ณต๋ฐฑ)
10,3 (์ผํ)
10#3 (#)
ํํธ:
์
๋ ฅ ๋ฌธ์์ด์ ,๊ฐ ์์ผ๋ฉด split(',')
์๋๋ฉด #๊ฐ ์์ผ๋ฉด split('#')
์๋๋ฉด split() (๊ณต๋ฐฑ)
์๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์ธ์.
- ์ต์ข ์ ์ถ ์ฝ๋
s = input("๋ ์๋ฅผ ์
๋ ฅํ์ธ์ (์: 10 3 / 10, 3 / 10#3)")
print("์
๋ ฅํ ๊ฐ: ", s)
# ๋ฐฉ๋ฒ2) re.split(์ ๊ทํํ์, ๋ฌธ์์ด) ์ฌ์ฉํ๊ธฐ
import re
s_list = re.split(r'[^0-9]+', s)
# ๋ฐฉ๋ฒ1) if ์กฐ๊ฑด๋ฌธ ์ฌ์ฉํ๊ธฐ
'''
try:
if "," in s:
s_list = s.split(",")
elif "#" in s:
s_list = s.split("#")
else:
s_list = s.split()
except ValueError:
print("์ฌ๋ฐ๋ฅธ ๊ฐ์ ์
๋ ฅํ์ธ์.(์: 10 3 / 10, 3 / 10#3)")
'''
# ์ซ์ ๋ ๊ฐ ์๋ , ๋ค๋ฅธ ๊ฐ์๋ก ์
๋ ฅ ์
# len(): ๊ฐ ๊ฐ์(๊ธธ์ด) ๊ตฌํ๊ธฐ
if len(s_list) != 2:
print("์ซ์ '๋ ๊ฐ'๋ฅผ ์
๋ ฅํ์ธ์.")
else:
a = int(s_list[0])
b = int(s_list[1])
if b == 0:
print(f"์
๋ ฅํ ๊ฐ: {s}")
print("๋ ๋ฒ์งธ ์ซ์๋ 0์ด ์๋ ๋ค๋ฅธ ์ซ์๋ฅผ ์
๋ ฅํ์ธ์.")
else:
print("๋ ์์ ํฉ: ", f"{a + b}")
print("๋ ์์ ์ฐจ: ", f"{a - b}")
print("๋ ์์ ๊ณฑ: ", f"{a * b}")
print("๋ ์์ ๋๋์
: ", f"{a / b}")
- ์ค๋ต๋ ธํธ
# \n์ ์์น
# if๋ฌธ์์ else์ ๋ค์ฌ์ฐ๊ธฐ ์์น
if len(s_list) != 2:
print("์ซ์ '๋ ๊ฐ'๋ฅผ ์
๋ ฅํ์ธ์.")
else:
a = int(s_list[0])
b = int(s_list[1])
if b == 0:
print(f"์
๋ ฅํ ๊ฐ: {s}"\n"๋ ๋ฒ์งธ ์ซ์๋ 0์ด ์๋ ๋ค๋ฅธ ์ซ์๋ฅผ ์
๋ ฅํ์ธ์.")
# \n์ ๋ฌธ์์ด ์์์๋ง ์๋ฏธ๊ฐ ์์.
else: # else ๋ค์ฌ์ฐ๊ธฐ ์์น๋ If์ ๊ฐ์์ผ ํจ.
print("๋ ์์ ํฉ: ", f"{a + b}")
print("๋ ์์ ์ฐจ: ", f"{a - b}")
print("๋ ์์ ๊ณฑ: ", f"{a * b}")
print("๋ ์์ ๋๋์
: ", f"{a / b}")
โ ์ซ์ ์ ๋ ฅ ์, "๋ชจ๋ ๋ฌธ์ ์ฌ์ฉ ๊ฐ๋ฅ" ์กฐ๊ฑด ๋ฌ๊ธฐ
๋ฐฉ๋ฒ1) ์ ๊ทํํ์ ์ฌ์ฉํ๊ธฐ
"์ด๋ค ๊ธฐํธ๊ฐ ์๋ ์๊ด์์ด, ์ซ์๋ง ๋ฝ์!" = ์ซ์๋ฅผ ๊ณจ๋ผ๋ด๋ ์์
โ import re
์ฝ๋ ์์์ ๊ท์น(๋ชจ์)์ ์ฐพ์๋ด๋ ์ฅ์น. (ex. ์ซ์๋ง ๊ณจ๋ผ๋ด๋ ๊ฒ.)
๋ฌธ์์ด์ ๊ท์น์ผ๋ก ์ฐพ๊ธฐ ์ํ ๋๊ตฌ
โ re.findall(๊ท์น, ๋ฌธ์์ด)
: ๋ฌธ์์ด์์ ๊ท์น์ ๋ง๋ ๊ฒ์ ์ ๋ถ ์ฐพ์์ ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด์ค.
๊ท์น) r : ๋ฌธ์์ด ์ฐพ๋ ๊ท์น ๋งจ ์์ ๋ถ์
\d : ์ซ์(0~9) 1๊ฐ (\d\d: ์ซ์ 2๊ฐ / \d\d\d: ์ซ์ 3๊ฐ)
+ : 1๊ฐ ์ด์ ๊ณ์ (ex. \d+: ์ซ์๊ฐ 1๊ฐ ์ด์ ์ด์ด์ง ๋ฉ์ด๋ฆฌ)
import re
s = input("๋ ์๋ฅผ ์
๋ ฅํ์ธ์: ")
nums = re.findall(r'\d+', s)
# ์
๋ ฅ:30abc3 → ์ถ๋ ฅ: ['30', '3']
if len(nums) != 2:
print("์ซ์ ๋ ๊ฐ๋ฅผ ์
๋ ฅํ์ธ์.")
else:
a = int(nums[0])
b = int(nums[1])
print("ํฉ:", a + b)
print("์ฐจ:", a - b)
print("๊ณฑ:", a * b)
if b == 0:
print("๋๋์
: 0์ผ๋ก ๋๋ ์ ์์ต๋๋ค.")
else:
print("๋๋์
:", a / b)
๋ฐฉ๋ฒ2) re.split(์ ๊ทํํ์, ๋ฌธ์์ด)
โ ์ซ์๊ฐ ์๋ ๋ชจ๋ ๋ฌธ์: [^0-9]
import re
s = input("๋ ์๋ฅผ ์
๋ ฅํ์ธ์: ")
s_list = re.split([r'^0-9]+', s)
2๊ต์
1. ๋ณ์ ์ด๋ฆ ์ง๊ธฐ (Naming)
- ์์ด/์ซ์/๋ฐ์ค(_)๋ง ์ฌ์ฉ
- ์ซ์๋ก ์์ํ๋ฉด ์ ๋จ
- ์ค๊ฐ์ ๊ณต๋ฐฑ ๋ถ๊ฐ
- ๋์๋ฌธ์ ๊ตฌ๋ถ: Score์ score๋ ๋ค๋ฆ
- ์์ฝ์ด(ํค์๋)๋ ๋ณ์ ์ด๋ฆ์ผ๋ก ์ฐ๋ฉด ์ ๋จ
2) ๋์ ํ์ดํ(Dynamic Typing)๊ณผ type()
: ์ ์ฅํ ๊ฐ์ ๋ฐ๋ผ Type์ด ๋ฐ๋๋ค
int() / float() / str()
3-2) ๋ค์ค ํ ๋น(Multiple Assignment)
a, b = 1, 2
swap(์๋ก ๋ฐ๊พธ๊ธฐ): a, b = b, a
โ ๋ฏธ๋ ํ๋ก์ ํธ: “์ฉ๋ ๊ณ์ฐ๊ธฐ” (๋ณ์ ์ด์ ๋ฆฌ)
๐ฏ TIP
f-string ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๋ ๊น๋ํจ.
allowance = 50000
snack = 12000
transport = 15000
game = 8000
# TODO 1: ์ด ์ง์ถ ๊ณ์ฐ
total_spent = snack + transport + game
print("์ด ์ง์ถ: ", total_spent, "์")
# TODO 2: ๋จ์ ๋ ๊ณ์ฐ
remaining = allowance - total_spent
print("๋จ์ ๋: ", remaining, "์")
allowance = 50000
snack = 12000
transport = 15000
game = 8000
# TODO 1: ์ด ์ง์ถ ๊ณ์ฐ
total_spent = snack + transport + game
print(f"์ด ์ง์ถ: {total_spent:,}์์
๋๋ค.")
# TODO 2: ๋จ์ ๋ ๊ณ์ฐ
remaining = allowance - total_spent
print(f"๋จ์ ๋: {remaining:,}์์
๋๋ค.")
3๊ต์
1) ๋ฌธ์์ด์ ๋ถ๋ณ(immutable)
word = "hello"
word[0] = "H" # โ ์๋ฌ
# ์ฌํ ๋น ํด์ค์ผ ํจ.
word = "hello"
word = "Hello"
2) ๋ฌธ์์ด์ “์์ ”ํ๊ณ ์ถ์ ๋??
replace("์๋ ๊ฐ", "๋ฐ๊ฟ ๊ฐ", ๋ช ๋ฒ์งธ๊น์ง ๋ฐ๊ฟ ๊ฑด์ง)
๊ธฐ๋ณธ๊ฐ: ์ ์ฒด ์์
# ์์ 1: replace๋ก ๋ฐ๊พธ๊ธฐ
word = "hellohhhh"
new_word = word.replace("h", "H", 2)
print(word, "->", new_word)
## hellohhhh -> HelloHhhh
์ฌ๋ผ์ด์ฑ์ผ๋ก ์กฐํฉํ๊ธฐ
# ์์ 2: ์ฌ๋ผ์ด์ฑ์ผ๋ก ์กฐํฉํ๊ธฐ
word = "hello"
new_word = "H" + word[1:]
print(word, "->", new_word)
## hello -> Hello
- .strip() : ๋ฌธ์์ด ๊ณต๋ฐฑ ์ ๊ฑฐํ๊ธฐ
- .upper() : ๋ฌธ์์ด ๋๋ฌธ์๋ก ๋ณํํ๊ธฐ
โ ๋ฏธ๋ ํ๋ก์ ํธ: “๋ฌธ์ฅ ์ ๋ฆฌ๊ธฐ” ๋ง๋ค๊ธฐ
๋ชฉํ
์ฌ์ฉ์์๊ฒ ๋ฌธ์ฅ์ ์
๋ ฅ๋ฐ์, ์๋๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋์ธ์.
์์ชฝ ๊ณต๋ฐฑ ์ ๊ฑฐ(์๋ค)
๋ชจ๋ ์๋ฌธ์๋ก ๋ฐ๊พธ๊ธฐ
์ผํ ,๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๋ฐ๊พธ๊ธฐ
์๋ ์
์ ์์ฑํด ๋ณด์ธ์.
text = input("๋ฌธ์ฅ์ ์
๋ ฅํ์ธ์: ")
# TODO 1: ๊ณต๋ฐฑ ์ ๊ฑฐ
text.strip()
text = text.strip()
# TODO 2: ์๋ฌธ์ ๋ณํ
text.lower()
text = text.lower()
# TODO 3: ์ผํ๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๋ฐ๊พธ๊ธฐ
text.replace(",", "")
text = text.replace(",", " ")
print(text)