[Python]๋ฌธ์์ด ์ธ๋ฑ์ฑ, ์ฌ๋ผ์ด์ฑ, ํฌ๋งคํ
๋ฌธ์์ด index๋?
๋ฌธ์์ด ํ๋ํ๋๋ฅผ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋งค๊ฒจ ์ถ์ถ์ด ๊ฐ๋ฅํ๋ค.
# index
print("index"[0]) → i
print("index"[1]) → n
print("index"[2]) → d
print("index"[3]) → e
print("index"[4]) → x
์์๋ก ์ธ๋ฑ์ค๋ฅผ ํด๋ ๊ด์ฐฎ๋ค.
print("index"[-1]) → x
print("index"[-2]) → e
print("index"[-3]) → d
print("index"[-4]) → n
print("index"[-5]) → i
์์๋ 0๋ถํฐ ์์ํ์ง๋ง , ์์๋ -1๋ถํฐ ๋งจ ๋ค์ ๋ฌธ์๋ถํฐ ์์ํ๋ค.
๋ฌธ์์ด ์ฌ๋ผ์ด์ฑ
์ธ๋ฑ์ฑ์ ๋ฌธ์์ด ํ๋๋ง ์ถ์ถ์ด ๊ฐ๋ฅํ์๋ค๋ฉด , ์ฌ๋ผ์ด์ฑ ์ํ๋ ๋ฒ์๋งํผ ์ถ์ถ์ด ๊ฐ๋ฅํ๋ค.
print("0123456789"[0:8]) → 01234567
0๋ถํฐ 8๋ฒ๊น์ง ์ง์ ์ ํด์ฃผ๋ฉด 7๊น์ง์ ์ซ์๊ฐ ์ถ๋ ฅ๋๋ค.
๋ง์ง๋ง m์์น์ ์์๋ ํฌํจํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ํ๋ ๋ฒ์์ ๋ง์ง๋ง ์ซ์์ +1์ ํ ์ํ์์ ๊ธฐ์ ํด์ผ ํ๋ค.
print("0123456789"[0:] → 0123456789
์์น์ ๋์ ์ง์ ์ ํด์ค๋ค๋ฉด n๋ฒ๋ถํฐ ๋๊น์ง ์ถ๋ ฅ์ด ๋๋ค.
๋ฐ๋๋ก ํด๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค. ์๊ณผ ๋ค ์๋ฌด๊ฒ๋ ์ง์ ํด์ฃผ์ง ์์ผ๋ฉด ์ฒ์๋ถํฐ ๋๊น์ง ์ถ๋ ฅ์ด ๋๋ค.
str_slice = "Python is easy"
# 012345678910111213
print(str_slice[:]) → Python is easy
print(str_slice[:-1] → Python is eas
print(str_ slice[-14:] → Python is easy
print(str_ slice[-1:-14] → ๋ฌธ์์ด์ด ์ถ๋ ฅ๋์ง ์๋๋ค.
step์ฌ์ฉ
str_slice = "0123456789"
print(str_slice[0:10:2]) → 02468
0๋ฒ ์์๋ถํฐ 10๋ฒ ์ ๊น์ง 2๊ฐ์ฉ ๋์ด์ ๊ฐ์ ธ์จ๋ค๋ ๋ง์ด๋ค.
step ์ญ์๋ ์์๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
str_slice = "0123456789"
print(str_slice[::-3]) → 9630
์ ์ผ ๋ค์์๋ถํฐ 3๊ฐ์ฉ ๋์ด์ ๊ฐ์ ธ์จ๋ค๋ ๋ง์ด๋ค.
๋ฌธ์์ด ํฌ๋งคํ
์ฝ๊ฒ ๋งํด ๋ฌธ์์ ์ถ๋ ฅ ํ์์ ์ง์ ํด์ฃผ๋ ๊ฒ์ด๋ค.
ํฌ๋งคํ ์ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ 3๊ฐ์ง๊ฐ ์๋ค.
1. Percent Sign(%)
2. format ํจ์
3. f-string
Percent Sign(%)
weather = "๋ง์"
temperature = 20
print("์ค๋์ ๋ ์จ๋ %s ๊ธฐ์จ์ %d๋ ์
๋๋ค."%(weather,temperature))
python์์ Percent Sign์ ๋งค์ฐ ํจ์จ์ด ์ข์ง ์๋ค. ์์ ์ ์์์ ๋ฐ์ดํฐ ํ์ ์ ๋ช ํํ ์๊ณ ์์ด์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ํ์ ์ด ๋ณํ๋ฉด ์ ๋๋ฉฐ , % s ํ์ ์ ์ ์๋ฅผ ๋ฃ๊ฒ ๋๋ฉด Error๊ฐ ๋ฐ์ํ๋ค.
format ํจ์
weather = "๋ง์"
temperature = 20
print("์ค๋์ ๋ ์จ๋ {} ๊ธฐ์จ์ {}๋ ์
๋๋ค.".format(weather,temperature))
formatํจ์๋ ์๋ฃํ์ ์ ํํ๊ฒ ๋ช ์ํด์ฃผ์ง ์์๋ ๋ด๊ฐ ์๋ํ ๋๋ก ๊ทธ๋๋ก ์ถ๋ ฅ์ ํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์๊ณผ 20์ ์์น๋ฅผ ๋ฐ๊พธ๊ณ ์ถ์ ๊ฒฝ์ฐ๋ ๊ฐ๋ฅํ๋ค.
weather = "๋ง์"
temperature = 20
print("์ค๋์ ๋ ์จ๋ {1} ๊ธฐ์จ์ {0}๋ ์
๋๋ค.".format(weather,temperature))
์ด๋ ๊ฒ ์ง์ ์ ํด์ค ๊ฒฝ์ฐ ' ์ค๋์ ๋ ์จ๋ 20 ๊ธฐ์จ์ ๋ง์๋ ์ ๋๋ค. ' ๊ฐ ์ถ๋ ฅ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๊ดํธ{}์ ์ซ์์ ์ธ๋ฑ์ค์ ์ซ์๊ฐ ๋ค๋ฅด๋ฉด index Error๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋ฌ๋ ๋ฐ๋์ ์ซ์๊ฐ ๋์ผํด์ผ ํ๋ค.
formatํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ซ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ฅธ์ชฝ ์ ๋ ฌ์ด ๋๊ณ , ๋ฌธ์๋ ์ผ์ชฝ ์ ๋ ฌ์ด ๋๋ค.
์ด๊ฑด ์๋ฆฟ์๋ฅผ ์ง์ ํด ๊ณต๋ฐฑ์ด ๋ค์ด๊ฐ๋ ๊ฑธ ๋ณด๊ณ ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
weather = "๋ง์"
temperature = 20
print("์ค๋์ ๋ ์จ๋ {:10} ๊ธฐ์จ์ {:10}๋ ์
๋๋ค.".format(weather,temperature))
→ ์ค๋์ ๋ ์จ๋ ๋ง์ ๊ธฐ์จ์ 20๋ ์
๋๋ค.
์ด๋ ๊ฒ ๋ฌธ์๋ ์ผ์ชฝ ์ ๋ ฌ์ด๋ 2์๋ฆฌ๋ฅผ ์ฐจ์งํ๊ณ 8์๋ฆฌ์ ๊ณต๋ฐฑ์ด ์๊ธด๋ค.
์ซ์๋ 8์๋ฆฌ์ ๊ณต๋ฐฑ์ด ์๊ธฐ๊ณ , 20์ด ์ถ๋ ฅ๋๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
weather = "๋ง์"
temperature = 20
print("{0:s},{1:d},{1:f},{1:o},{1:x}".format(weather, temperature))
→ ๋ง์, 20, 20.000000, 24, 14
๋ฌธ์์ด์ ๋ฐ๋ก ํ์
์ ์ง์ ํ์ง ์์๋ ์๊ด์๋ค.
๊ณ์ฐ๊ธฐ๋ฅผ ํตํด ํ์ธํ๋ฉด ๋ฌธ์ , ์ค์ , 8์ง์ , 16์ง์๋ก ์ถ๋ ฅ๋๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
๋ฌธ์์ด์ ์ผ์ชฝ ์ ๋ ฌ, ์ซ์๋ ์ค๋ฅธ์ชฝ ์ ๋ ฌ์ด์ง๋ง ์ด ์ ๋ ฌ๋ฐฉ๋ฒ ๋ํ <>^๋ฅผ ํตํด ๋ฐ๊ฟ ์ ์๋ค.
left = "left"
right = "right"
middle = "middle"
# <>^
print("({:>10s}), ({:^10s}),({:<10s})".format(right,middle,left))
→ ( right), ( middle ),(left )
>๋ ์ค๋ฅธ์ชฝ , ^๋ ์ค๊ฐ , < ์ผ์ชฝ ์ ๋ ฌ์ด ๊ฐ๋ฅํ๋ค.
๊ฐ์ด ์์๋ฅผ ๋ฐ๊พธ๋๊ฒ ๋ํ ๊ฐ๋ฅํ๋ฉฐ, ๊ณต๋ฐฑ์ ์ํ๋ ๋ฌธ์๋ ๊ธฐํธ๋ฅผ ๋ฃ๋ ๊ฒ ๋ํ ๊ฐ๋ฅํ๋ค.
left = "left"
right = "right"
middle = "middle"
# <>^
print("({2:!>10s}), ({1:@^10s}),({0:#<10s})".format(left,middle,right))
→ (!!!!!right), (@@middle@@),(left######)
์ด ์ํ์์ ์ง์ ํด์ค ์๋ฆฟ์ ๋ค์ ์จ์ (.)์ ์ฐ๊ณ ์ถ๋ ฅํ ๋ฌธ์์ด ๋งํผ๋ง ์ง์ ํด์ค ์ ์๋ค.
left = "left"
right = "right"
middle = "middle"
# <>^
print("({2:!>10.4s}), ({1:@^10.3s}),({0:#<10.2s})".format(left,middle,right))
→ (!!!!!!righ), (@@@mid@@@@),(le########)
f-string
์ฌ์ฉ๋ฒ์ด ๋งค์ฐ ์ฌ์ดํธ์ด๋ฉฐ ๋ฌธ์์ด ํฌ๋งคํ ๋ฐฉ๋ฒ ์ค ์๋๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ด๋ค.
ํ์ง๋ง f-string์ python 3.6 ๋ฒ์ ์ด์์์๋ง ์ง์์ ํ๋ค.
weather = "๋ง์"
temperature = 20
print(f"์ค๋์ ๋ ์จ๋ {weather}์ด๋ฉฐ, ๊ธฐ์จ์ {temperature}๋ ์
๋๋ค.")
→ ์ค๋์ ๋ ์จ๋ ๋ง์์ด๋ฉฐ, ๊ธฐ์จ์ 20๋ ์
๋๋ค.
์ด๋ ๊ฒ f-string์ ๋ฌธ์์ด ์์ f๋ฅผ ๋ถ์ฌ์ ์ฌ์ฉ์ ํ๋ค.
f๋ ๋๋ฌธ์๋ ์๋ฌธ์๋ ์๊ด์์ง๋ง ์๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๋ ์ ํฉํ๋ค.
๊ฐ๋ ์ฑ๋ ์ข์ผ๋ฉด ์ฌ์ฉํ๊ธฐ๋ ํธ๋ฆฌํ ํฌ๋งคํ ๋ฐฉ๋ฒ์ด๋ค.
์์์ ๊ฒฐ๊ณผ๋ ํฌ๋งคํ ์ด ๊ฐ๋ฅํ๋ค.
print(f"2๊ณฑํ๊ธฐ 30์ ๊ฒฐ๊ณผ๊ฐ = {2*30}")
→ 2๊ณฑํ๊ธฐ 30์ ๊ฒฐ๊ณผ๊ฐ = 60