๐Ÿ—จ๏ธ Backend/Python

[Python]๋ฌธ์ž์—ด ์ธ๋ฑ์‹ฑ, ์Šฌ๋ผ์ด์‹ฑ, ํฌ๋งคํŒ…

Kyle99 2022. 8. 28. 11:01

๋ฌธ์ž์—ด 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