๊ด€๋ฆฌ ๋ฉ”๋‰ด

IT’s Portfolio

[Python] ํŒŒ์ด์ฌ์˜ ๋ฌธ์ž์—ด ํฌ๋ฉ”ํŒ… Ver.2 ๋ณธ๋ฌธ

Development Study/Python

[Python] ํŒŒ์ด์ฌ์˜ ๋ฌธ์ž์—ด ํฌ๋ฉ”ํŒ… Ver.2

f1r3_r41n 2022. 10. 6. 14:08
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ป ํŒŒ์ด์ฌ ๋ฌธ์ž์—ด ํฌ๋ฉ”ํŒ… Ver.2

https://it-neicebee.tistory.com/102

 

[Python] ํŒŒ์ด์ฌ์˜ ๋ฌธ์ž์—ด ํฌ๋ฉ”ํŒ…

๐Ÿ“Œ ํŒŒ์ด์ฌ์˜ ๋ฌธ์ž์—ด ํฌ๋ฉ”ํŒ… ๋ฐฉ์‹ C์–ธ์–ด์™€ ๊ฐ™์€ % ๋ฌธ์ž์—ด ํฌ๋ฉ”ํŒ… ๋ฐฉ์‹ people = 5 height = 183.4 msg = "๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค." print("ํ˜„์žฌ ์‚ฌ๋žŒ๋“ค์€ %d๋ช…์ด ์žˆ์Šต๋‹ˆ๋‹ค.\n๊ทธ ์ค‘ ํ•œ ๋ช…์˜ ํ‚ค๋Š” %.1fcm์ž…๋‹ˆ๋‹ค.\n%s" % (people,..

it-neicebee.tistory.com

๋‚ด์šฉ์ด ๋ถ€์‹คํ•˜์—ฌ ๊ณต๋ถ€ํ•  ๊ฒธ ์ถ”๊ฐ€๋กœ ๋” ์ž‘์„ฑํ•จ

%

  • ๊ตฌ ๋ฐฉ์‹
  • ๊ธธ์–ด์ง€๋ฉด ๊ฐ€๋…์„ฑ ๋–จ์–ด์ง
  • ํŒŒ์ด์ฌ ๊ณต์‹ ๋ฌธ์„œ์—์„œ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ
  • C ์–ธ์–ด์˜ ๋ณ€์ˆ˜ ํƒ€์ž… ์ง€์ •๊ณผ ๋น„์Šท
msg = "I like gnuykob"
p1 = 3.141592653589793238462643383

print("%25s" % msg)
print("%-25s" % msg)
print("%5s" % msg) # ๊ณต๋ฐฑ๋ณด๋‹ค ๋ฌธ์ž์—ด์ด ํฌ๋ฉด ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ
print("%.5s" % msg)
print("%10.5s" % msg)

print("%f" % p1)
print("%10.5f" % p1)
print("%-10.5f" % p1)
  • ๊ณต๋ฐฑ์ด ํ‘œํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ณด๋‹ค ํด ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ
  • ์™ผ์ชฝ ์ •๋ ฌ์€ - ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉ
  • ์†Œ์ˆ˜์ ์˜ ๊ธฐ๋ณธ ์ถœ๋ ฅ์€ 7๋ฒˆ์งธ ์ˆ˜๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ 6๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅํ•จ
  • Result
    •         I like gnuykob
      I like gnuykob           
      I like gnuykob
      I lik
          I lik
      3.141593
      3.14159
      3.14159   

format()

  • Python 3 ํฌ๋ฉง ๋ฐฉ์‹
  • ๊ธธ์–ด์ง€๋ฉด ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง
msg1 = "I"
msg2 = "like"
msg3 = "gnuykob"
p1 = 3.141592653589793238462643383

# ์ž๋™ ๋„˜๋ฒ„๋ง
# ๋„˜๋ฒ„๋ง ์•ˆํ•˜๋ฉด format์˜ ์ธ์ž๊ฐ’์„ ์ˆœ์„œ๋Œ€๋กœ ์ฝ์Œ
# ์ธ์ž๊ฐ’๋ณด๋‹ค ๋งŽ์€ {} ์‚ฌ์šฉ -> Error
# {} ๋ณด๋‹ค ์ ์€ ์ธ์ž๊ฐ’ -> Error
print("{} {} {}".format(msg1, msg2, msg3))

# ๋„˜๋ฒ„๋ง
# ๋„˜๋ฒ„๋ง์„ ํ•˜๋‹ค๊ฐ€ ์ค‘๊ฐ„์— ์•ˆ ํ•  ๊ฒฝ์šฐ -> Error
print("{1} / {0} / {2}".format(msg1, msg2, msg3))

# * ๊ธฐํ˜ธ๋กœ ์ธ์ˆ˜ ์–ธํŒจํ‚น
print("{} / {} / {}".format(*msg3))

# ์ด๋ฆ„ ์ง€์ • ์‚ฌ์šฉ
print("{me} & {you}".format(me=msg1, you=msg3))

# dict ์ž๋ฃŒํ˜• ์‚ฌ์šฉ
my_dict = {'name': 'f1r3_r41n', \
    'job': 'developer', 'age': '22'}
print("{name} {age} {job}".format(**my_dict))

# list ์ž๋ฃŒํ˜• ์‚ฌ์šฉ
my_list = ['f1r3_r41n', 'developer', '22']
print("{1} / {0} / {0} / {2}".format(*my_list))

# dict & list
my_dili = [{'name': 'f1r3_r41n', \
    'job': 'developer', 'age': '22'}, \
        {'name': 'gnuykob', 'job': 'data engineer', \
            'age': '22'}]
print("{0[name]} {0[age]} {0[job]}".format(*my_dili))
print("{1[name]} {1[age]} {1[job]}".format(*my_dili))

# ๊ธฐ๋ณธ ์™ผ์ชฝ ์ •๋ ฌ
# < ์™ผ์ชฝ ์ •๋ ฌ, > ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ, ^ ๊ฐ€์šด๋ฐ ์ •๋ ฌ
print("{:<11}".format(msg3))
print("{:>11}".format(msg3))
print("{:^11}".format(msg3))
# - ๊ธฐํ˜ธ๋กœ ๊ณต๋ฐฑ ์ฑ„์›€
print("{:-^11}".format(msg3))
# ๋ณตํ•ฉ
print("{0:-^{1}}".format(msg3, 22))

# ์ˆซ์ž ๋ถ€ํ˜ธ ํ‘œํ˜„ (์†Œ์ˆ˜์  ์ดํ•˜ ๋™์ผ)
print("{:+d} / {:+d}".format(+21, -21)) # + ํ•ญ์ƒ ๋ถ€ํ˜ธ ํ‘œ์‹œ
print("{:-d} / {:-d}".format(+21, -21)) # - ์Œ์ˆ˜์ผ ๊ฒฝ์šฐ ๋ถ€ํ˜ธ ํ‘œ์‹œ
print("{:=+5d} / {:=+5d}".format(+21, -21)) # ๊ธฐํ˜ธ๋งŒ ์•ž์œผ๋กœ ์ •๋ ฌ
print("{:+05d} / {:+05d}".format(+21, -21)) # ๊ณต๋ฐฑ 0์œผ๋กœ ์ฑ„์›€

# ์ง€์ˆ˜ ํ‘œ๊ธฐ
print("{:e}".format(p1))
print("{:E}".format(p1))

# ๋ฐฑ๋ถ„์œจ ํ‘œ๊ธฐ
print("{0} / {0:%}".format(45/100))

# ์˜๋ฏธ์—†๋Š” ์†Œ์ˆ˜์  ์‚ญ์ œ
print("{}".format(3.000000)) # 0 ํ‘œ์‹œ
print("{:g}".format(3.000000)) # 0 ์‚ญ์ œ

# ์ฒœ๋‹จ์œ„ ๊ตฌ๋ถ„
print("{:,}".format(30000000))
print("{:,.2f}".format(30000000.1234))

# ์ง„๋ฒ•
print("{0:d} / {0:x} / {0:o} / {0:b}".format(79)) # dec, hex, oct, bin
print("{0:#d} / {0:#x} / {0:#o} / {0:#b}".format(79)) # ์ ‘๋‘์–ด ํ‘œ์‹œ
# hex์—์„œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์€ x, X ์‚ฌ์šฉ

# ์œ ๋‹ˆ์ฝ”๋“œ
print("{0:c}{1:c}{2:c}".format(98, 101, 101))

# ๊ฐ ์ค‘๊ด„ํ˜ธ ๋‘ ๋ฒˆ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๊ด„ํ˜ธ ํ‘œ๊ธฐ
print("{{ {0:c}{1:c}{2:c} }}".format(98, 101, 101))
  • Result
    • I like gnuykob
      like / I / gnuykob
      g / n / u
      I & gnuykob
      f1r3_r41n 22 developer
      developer / f1r3_r41n / f1r3_r41n / 22
      f1r3_r41n 22 developer
      gnuykob 22 data engineer
      gnuykob    
          gnuykob
      gnuykob  
      --gnuykob--
      -------gnuykob--------
      +21 / -21
      21 / -21
      +  21 / -  21
      +0021 / -0021
      3.141593e+00
      3.141593E+00
      0.45 / 45.000000%
      3.0
      3
      30,000,000
      30,000,000.12
      79 / 4f / 117 / 1001111
      79 / 0x4f / 0o117 / 0b1001111
      bee
      { bee }

F-String

  • Python 3.6 ์ด์ƒ ๋ฒ„์ „์—์„œ ์ง€์›
  • ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ ธ๋„ ์ง๊ด€์ ์œผ๋กœ ํŒŒ์•… ๊ฐ€๋Šฅ
  • ๋ณดํŽธ์ ์ธ "ํŒŒ์ด์ฌ์Šค๋Ÿฌ์šด" ๋ฐฉ์‹
  • format() ๋ฐฉ์‹๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋ณ€์ˆ˜๋ช…์„ ์ง์ ‘ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์ฐจ์ด์ 
msg1 = "I"
msg2 = "like"
msg3 = "gnuykob"
p1 = 3.141592653589793238462643383

print(f"{msg1} {msg2} {msg3}")

# dict ์ž๋ฃŒํ˜• ์‚ฌ์šฉ
my_dict = {'name': 'f1r3_r41n', \
    'job': 'developer', 'age': '22'}
print(f"He's name: {my_dict['name']}")

# list ์ž๋ฃŒํ˜• ์‚ฌ์šฉ
my_list = ['f1r3_r41n', 'developer', '22']
print(f"He's age: {my_list[2]}")

# dict & list
my_dili = [{'name': 'f1r3_r41n', \
    'job': 'developer', 'age': '22'}, \
        {'name': 'gnuykob', 'job': 'data engineer', \
            'age': '22'}]
print(f"He's name: {my_dili[0]['name']}")
print(f"She's name: {my_dili[1]['name']}")

# ๊ธฐ๋ณธ ์™ผ์ชฝ ์ •๋ ฌ
# < ์™ผ์ชฝ ์ •๋ ฌ, > ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ, ^ ๊ฐ€์šด๋ฐ ์ •๋ ฌ
print(f"{msg3:<11}")
print(f"{msg3:>11}")
print(f"{msg3:^11}")
# - ๊ธฐํ˜ธ๋กœ ๊ณต๋ฐฑ ์ฑ„์›€
print(f"{msg3:-^11}")
# ๋ณตํ•ฉ
print(f"{msg3:-^{22}}")

# ์ˆซ์ž ๋ถ€ํ˜ธ ํ‘œํ˜„ (์†Œ์ˆ˜์  ์ดํ•˜ ๋™์ผ)
p_num = 21
m_num = -21
print(f"{p_num:+d} / {m_num:+d}") # + ํ•ญ์ƒ ๋ถ€ํ˜ธ ํ‘œ์‹œ
print(f"{p_num:-d} / {m_num:-d}") # - ์Œ์ˆ˜์ผ ๊ฒฝ์šฐ ๋ถ€ํ˜ธ ํ‘œ์‹œ
print(f"{p_num:=+5d} / {m_num:=+5d}") # ๊ธฐํ˜ธ๋งŒ ์•ž์œผ๋กœ ์ •๋ ฌ
print(f"{p_num:+05d} / {m_num:+05d}") # ๊ณต๋ฐฑ 0์œผ๋กœ ์ฑ„์›€

# ์ง€์ˆ˜ ํ‘œ๊ธฐ
print(f"{p1:e}")
print(f"{p1:E}")

# ๋ฐฑ๋ถ„์œจ ํ‘œ๊ธฐ
print(f"{45/100:%}")

# ์˜๋ฏธ์—†๋Š” ์†Œ์ˆ˜์  ์‚ญ์ œ
num3 = 3.000000
print(f"{num3}") # 0 ํ‘œ์‹œ
print(f"{num3:g}") # 0 ์‚ญ์ œ

# ์ฒœ๋‹จ์œ„ ๊ตฌ๋ถ„
num4 = 3000000000
num5 = 3000000000.1234
print(f"{num4:,}")
print(f"{num5:,.2f}")

# ์ง„๋ฒ•
num6 = 79
print(f"{num6:d} / {num6:x} / {num6:o} / {num6:b}") # dec, hex, oct, bin
print(f"{num6:#d} / {num6:#x} / {num6:#o} / {num6:#b}") # ์ ‘๋‘์–ด ํ‘œ์‹œ
# hex์—์„œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์€ x, X ์‚ฌ์šฉ

# ์œ ๋‹ˆ์ฝ”๋“œ
print(f"{98:c}{101:c}{101:c}")

# ๊ฐ ์ค‘๊ด„ํ˜ธ ๋‘ ๋ฒˆ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๊ด„ํ˜ธ ํ‘œ๊ธฐ
print(f"{{ {98:c}{101:c}{101:c} }}")
  • Result
    • I like gnuykob
      He's name: f1r3_r41n
      He's age: 22
      He's name: f1r3_r41n
      She's name: gnuykob
      gnuykob    
          gnuykob
      gnuykob  
      --gnuykob--
      -------gnuykob--------
      +21 / -21
      21 / -21
      +  21 / -  21
      +0021 / -0021
      3.141593e+00
      3.141593E+00
      45.000000%
      3.0
      3
      3,000,000,000
      3,000,000,000.12
      79 / 4f / 117 / 1001111
      79 / 0x4f / 0o117 / 0b1001111
      bee
      { bee }
728x90
๋ฐ˜์‘ํ˜•
Comments