• ๐Ÿ’ปPython :: ์ž๋ฃŒํ˜• Number & String

    2024. 1. 25.

    by. @leeeun

    ์›๋ž˜ velog์— ๋ฐœํ–‰ํ–ˆ์—ˆ๋˜ ํŒŒ์ด์ฌ ๊ธ€๋“ค ํ‹ฐ์Šคํ† ๋ฆฌ์— ์˜ฎ๊ธฐ๋Š” ์ค‘!!

     

    ๐Ÿ“Number(์ˆซ์žํ˜•)

    ์ˆซ์ž ํ˜•ํƒœ์˜ ์ž๋ฃŒํ˜•

    ๐Ÿ“Œ์ •์ˆ˜ํ˜•(Integer): ex) 0,123,-4...

    ๐Ÿ“Œ์‹ค์ˆ˜ํ˜•(Floating-point): ex) -3.5,1.9, 4,24E10=4.24*10์˜ 10์Šน

    ๐Ÿ“Œ8์ง„์ˆ˜(Octal): 0o ๋˜๋Š” 0O์œผ๋กœ ์‹œ์ž‘(์ˆซ์ž 0+์•ŒํŒŒ๋ฒณ o or O)

    ๐Ÿ“Œ16์ง„์ˆ˜(Hexadecimal): 0x๋กœ ์‹œ์ž‘

     

    ์—ฐ์‚ฐ์ž

    ์‚ฌ์น™์—ฐ์‚ฐ

    ์ฃผ์˜) /๊ณผ //๋Š” ์—„์—ฐํžˆ ๋‹ค๋ฆ„. 11/2=5.5, 11/2=5.


     

    ๐Ÿ“String(๋ฌธ์ž์—ด)

    ์•ŒํŒŒ๋ฒณ, ํ•œ๊ธ€, ํ™”ํ•™๊ธฐํ˜ธ, ์ˆซ์ž ๋“ฑ๋“ฑ character์˜ sequence
    "๋ฌธ์ž์—ด", '๋ฌธ์ž์—ด', """๋ฌธ์ž์—ด""", '''๋ฌธ์ž์—ด''' ์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅ

     

    ๐Ÿ“Œ ๋ฌธ์ž์—ด ์•ˆ์— '์™€ "์„ ํฌํ•จ์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ

    '์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” "์œผ๋กœ ๋‘˜๋Ÿฌ์‹ธ๊ณ , "์„ ๋ฌธ์ž์—ด ์•ˆ์— ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด '์œผ๋กœ ๋‘˜๋Ÿฌ์‹ธ๋ฉด ๋จ.
    or ์ด์Šค์ผ€์ดํ”„ ์ฝ”๋“œ ์‚ฌ์šฉ

     

    ๐Ÿ“Œ์—ฌ๋Ÿฌ ์ค„์ธ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ

    ''' ๋˜๋Š” """์„ ์‚ฌ์šฉํ•ด์„œ ๋‘˜๋Ÿฌ์‹ธ๊ธฐ or ์ด์Šค์ผ€์ดํ”„ ์ฝ”๋“œ(\n) ์‚ฌ์šฉ

     

    ์ด์Šค์ผ€์ดํ”„ ์ฝ”๋“œ

    Empty string

    "", '' ๋น„์–ด์žˆ๋Š” ๋ฌธ์ž์—ด๋„ string ์ทจ๊ธ‰ํ•จ.

     

    ๐Ÿ“Œ๋ฌธ์ž์—ด ์—ฐ์‚ฐํ•˜๊ธฐ

    Python built in functions for string

    • len(): ๋ฌธ์ž์—ด์˜ ๊ธธ์ด ๊ตฌํ•˜๊ธฐ
    • +: ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ
    • *: ๋ฌธ์ž์—ด ๋ฐ˜๋ณต print("="* 50)๋“ฑ์œผ๋กœ ์ •๋ฆฌํ•  ๋•Œ ์œ ์šฉ
    • int(): string-> int type์˜ ์ˆซ์ž๋กœ ์ „ํ™˜
      'a'์ด๋Ÿฐ ๋ฌธ์ž์—ด์€ ์ „ํ™˜์ด ๋‹น์—ฐํžˆ ์•ˆ๋จ. ์ˆซ์ž๋กœ ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด.
    • float(): string->float type์˜ ์ˆซ์ž๋กœ ์ „ํ™˜

     

    >>> print(1,2,3)
    1 2 3
    >>> 
    # ,๋กœ ์ถœ๋ ฅํ•˜๋ฉด ๊ฐ’ ์‚ฌ์ด ์ŠคํŽ˜์ด์Šค ๊ฐ„๊ฒฉ์ด ์ƒ๊ธฐ๊ณ , ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ์ถœ๋ ฅํ•œ ์ดํ›„ ๊ฐœํ–‰
    
    >>>print()
    # ์ž…๋ ฅ์ด ์—†์œผ๋ฉด default๋กœ ์ค„ ๋ฐ”๊ฟˆ ํ•œ ๋ฒˆ ์‹œํ–‰,can print values of any type
    
    >>>print('a','b','c', sep='-')
    a-b-c
    # sep: default๊ฐ€ space. ๊ฐ’๋“ค ์‚ฌ์ด์— ์‚ฝ์ž…๋˜๋Š” ๋ฌธ์ž์—ด(๋ณ€๊ฒฝ ๊ฐ€๋Šฅ)
    
    >>>print('a','b','c',sep='-',end='r')
    a-b-cr
    # end: ๋งˆ์ง€๋ง‰ ์ž…๋ ฅ๊ฐ’ ๋’ค์— ๋‚˜ํƒ€๋‚˜๋Š” ๋ฌธ์ž์—ด. newline(๊ฐœํ–‰)์ด default(๋ณ€๊ฒฝ ๊ฐ€๋Šฅ)
    # ์ฐธ๊ณ ) file = sys.stdout ์ธ์ž: ํ‘œ์ค€์ž…์ถœ๋ ฅ๊ณผ ์—ฐ๊ด€. ํ”„๋กœ๊ทธ๋žจ์—์„œ ํŠน๋ณ„ํ•œ ์„ค์ •์ด ์—†๋‹ค๋ฉด print ํ•จ์ˆ˜๋Š” ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด default(๋ณ€๊ฒฝ ๊ฐ€๋Šฅ)
    """ flush=False ์ธ์ž: ํ•˜๋“œ์›จ์–ด I/O ๋ฒ„ํผ์™€ ์—ฐ๊ด€. ๋ฒ„ํผ ์žฅ์น˜๋Š” ์ถœ๋ ฅ ์ „ ํ‚ค๋ณด๋“œ์—์„œ ์ž…๋ ฅํ•œ ๋‚ด์šฉ์„ ๋ณด๊ด€. 
    flush๋Š” ํ‚ค๋ณด๋“œ์—์„œ ์ž…๋ ฅ๋˜์–ด ๋ฒ„ํผ์— ์ €์žฅ๋œ ๋‚ด์šฉ์„ ์ถœ๋ ฅ๋ฐฉํ–ฅ(์—ฌ๊ธฐ์„œ๋Š” ํ™”๋ฉด)์œผ๋กœ ๋ฐ”๋กœ ๋ฐ€์–ด๋„ฃ๋Š”๋‹ค๋Š” ์˜๋ฏธ. ๋ฐ€์–ด๋„ฃ๋Š” ์ž‘์—…์„ ์ ๊ฒŒ ํ• ์ˆ˜๋ก ํšจ์œจ์ ์ด๋ฏ€๋กœ ์ธ์ž๋ฅผ False๋กœ ํ•ด๋†“์œผ๋ฉด ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ ๋น„์šฉ์ ˆ๊ฐ์„ ์œ„ํ•ด ์ž…๋ ฅ๋œ ๋‚ด์šฉ์ด ๋ฐ”๋กœ ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Œ. """ 

     

    ๐Ÿ“ŒString Indexing& Slicing

    • ์ธ๋ฑ์‹ฑ: ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž๋งˆ๋‹ค ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌ-> ๋ฌธ์ž์—ด a๋ฅผ ์ •์˜ํ–ˆ์„ ๋•Œ a[๋ฒˆํ˜ธ]์˜ ํ˜•ํƒœ๋กœ ๋ฌธ์ž์—ด ์•ˆ์˜ ํŠน์ •ํ•œ ๊ฐ’(ํ•œ ๋ฌธ์ž)์„ ๋ฝ‘์•„๋ƒ„.

    ๋ฌธ์ž์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์ž๋ฆฌ๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘๋จ(์ฃผ์˜).
    ์–‘์ˆ˜ ์ธ๋ฑ์Šค๋Š” ์ฒซ ๋ฒˆ์งธ ์ž๋ฆฌ๋ถ€ํ„ฐ 0์œผ๋กœ ์‹œ์ž‘,
    ์Œ์ˆ˜ ์ธ๋ฑ์Šค๋Š” ๋งจ ๋’ท ์ž๋ฆฌ์—์„œ๋ถ€ํ„ฐ -1๋กœ ์‹œ์ž‘๋จ. (-0=0์ด๋ฏ€๋กœ ์•ž์—์„œ ์ฒซ๋ฒˆ์งธ ๊ธ€์ž ์˜๋ฏธ)

    • ์Šฌ๋ผ์ด์‹ฑ: ํ•œ ๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž์—ด์„ ๋ฝ‘์•„๋‚ด๊ณ  ์‹ถ์„ ๋•Œ,
      a[์‹œ์ž‘ ๋ฒˆํ˜ธ: ๋๋ฒˆํ˜ธ]์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ. ์‹œ์ž‘๋ฒˆํ˜ธ๋ถ€ํ„ฐ (๋๋ฒˆํ˜ธ-1)์— ํ•ด๋‹น๋˜๋Š” ์ž๋ฆฌ๊นŒ์ง€ ๋ฌธ์ž๋ฅผ ๋ฝ‘์•„๋ƒ„.
      a[์‹œ์ž‘ ๋ฒˆํ˜ธ:] - ์‹œ์ž‘๋ฒˆํ˜ธ๋ถ€ํ„ฐ ๊ทธ ๋ฌธ์ž์—ด์˜ ๋๊นŒ์ง€
      a[:๋ ๋ฒˆํ˜ธ] - ๋ฌธ์ž์—ด์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๋ฒˆํ˜ธ-1๊นŒ์ง€
      a[:] - ๋ฌธ์ž์—ด์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€
    a='you only live once.'
    a[9:12]
    >>>'liv'
    a[12:-2]
    >>>'e onc' #๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 12๋ฒˆ์งธ ์ž๋ฆฌ์—์„œ -3์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ. -2๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Œ.
    
    date='20221022Rainy'
    year=date[:4]
    month=[4:6]
    date=[6:8]
    weather=[8:]

    ์ธ๋ฑ์‹ฑ, ์Šฌ๋ผ์ด์‹ฑ-> list์™€ tuple์—์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

     

    ๐Ÿ“ŒString formatting(๋ฌธ์ž์—ด ํฌ๋งคํŒ…)

    ๋ฌธ์ž์—ด ์•ˆ์˜ ํŠน์ •ํ•œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

     

    ๋ฌธ์ž์—ด ํฌ๋งท ์ฝ”๋“œ

    >>>"I have %s apples" %3
    'I have 3 apples'
    #3์„ ๋ฌธ์ž์—ด ์•ˆ์— ์‚ฝ์ž…ํ•˜๋ ค๋ฉด %d๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ %s๋Š” ์ž๋™์œผ๋กœ %๋’ค์˜ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ํ˜•ํƒœ์˜ ๊ฐ’์ด๋“  ๋ณ€ํ™˜ํ•˜์—ฌ ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ.
    
    ์ฃผ์˜) %์•ˆ์— %๋ฅผ ์“ธ ๋•Œ๋Š” %%์„ ์“ด๋‹ค.
    ex) >>>"Error is %d%%" %98
    'Error is 98%

     

    ํฌ๋งท ์ฝ”๋“œ์™€ ์ˆซ์ž ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ

    >>> "%10s" % "hi"
    # ์ „์ฒด ๊ธธ์ด๊ฐ€ 10๊ฐœ์ธ ๋ฌธ์ž์—ด ๊ณต๊ฐ„์—์„œ ๋Œ€์ž…๋˜๋Š” hi๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ •๋ ฌ(๋‚˜๋จธ์ง€๋Š” ๊ณต๋ฐฑ)
    >>> "%-10sjane" % 'hi'
    #์ „์ฒด ๊ธธ์ด๊ฐ€ 10์ธ ๋ฌธ์ž์—ด ๊ณต๊ฐ„์—์„œ hi๋Š” ์™ผ์ชฝ ์ •๋ ฌ, ๋‚˜๋จธ์ง€๋Š” ๊ณต๋ฐฑ. ๋’ค์—๋Š” jane์ด ๋ถ™์Œ

     

    format ํ•จ์ˆ˜๋กœ ํฌ๋งคํŒ…ํ•˜๊ธฐ

    #์ธ๋ฑ์Šค {} ๋ฐฉ์‹ ex) {0}, {1} 
    >>>print('์‹ค์ˆ˜ : {1}, ์ˆซ์ž : {0}, ๋ฌธ์ž์—ด : {2}'.format(5, 0.5, 'ํ™๊ธธ๋™'))
    '์‹ค์ˆ˜ : 0.5, ์ˆซ์ž : 5, ๋ฌธ์ž์—ด : ํ™๊ธธ๋™'
    
    format ํ•จ์ˆ˜๋กœ ์ˆซ์ž, ๋ฌธ์ž์—ด, ๋ณ€์ˆ˜ ๋Œ€์ž… ๋‹ค ๊ฐ€๋Šฅ
    ์ธ๋ฑ์Šค ๋ฐฉ์‹์˜ ๊ฒฝ์šฐ {0}์œผ๋กœ ์‹œ์ž‘ํ•ด์•ผ ๋จ
    
    # ๋ณ€์ˆ˜ ์ง€์ • ๋ฐฉ์‹ {name} ํ˜•ํƒœ
    print('์‹ค์ˆ˜ : {a}, ์ˆซ์ž : {b}, ๋ฌธ์ž์—ด : {c}'.format(a=0.1, b=100, c='์‚ผ์„ฑ์ „์ž'))
    
    '์‹ค์ˆ˜ : 0.1, ์ˆซ์ž : 100, ๋ฌธ์ž์—ด : ์‚ผ์„ฑ์ „์ž'
    
    #์ •๋ ฌ
    >>>"{0:<10}".format("hi")
    10๊ฐœ์˜ ์ž๋ฆฌ์—์„œ ์™ผ์ชฝ ์ •๋ ฌ๋œ hi๋ฅผ ์ถœ๋ ฅ
    
    {0:<10} ์™ผ์ชฝ ์ •๋ ฌ {0:^10} ๊ฐ€์šด๋ฐ ์ •๋ ฌ {0:>10} ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ
    
    #๊ณต๋ฐฑ ์ฑ„์šฐ๊ธฐ
    ์ •๋ ฌ ํ•  ๋•Œ ๊ณต๋ฐฑ์„ ๋‹ค๋ฅธ ๋ฌธ์ž๊ฐ’์œผ๋กœ ์ฑ„์šฐ๊ธฐ
    >>> "{0:!<10}".format("hi")
    'hi!!!!!!!!'
    10๊ฐœ์˜ ์ž๋ฆฌ์—์„œ hi๋ฅผ ์™ผ์ชฝ ์ •๋ ฌ, ๊ทธ ๊ณต๋ฐฑ์€ !์œผ๋กœ ์ฑ„์›€.
    
    #f-sting formatting
    ํŒŒ์ด์ฌ 3.6๋ฒ„์ „๋ถ€ํ„ฐ ์ƒˆ๋กœ ์ƒ๊ธด ๊ธฐ๋Šฅ
    ๋ฌธ์ž์—ด ์•ž์— f ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  {} ์•ˆ์— ๋ฐ”๋กœ ๋ณ€์ˆ˜๋ช…์„ ์ ์œผ๋ฉด ๋จ.
    >>> name='์ •์šฐ'
    >>> age=22
    >>>f'๋‚ด ์ด๋ฆ„์€ {name}์ด๊ณ  ๋‚˜์ด๋Š” {age}์ด๋‹ค.'
    '๋‚ด ์ด๋ฆ„์€ ์ •์šฐ์ด๊ณ  ๋‚˜์ด๋Š” 22์ด๋‹ค.'
    ๋ณ€์ˆ˜ ๊ฐ’์„ ์ƒ์„ฑํ•œ ํ›„์— ๊ทธ ๊ฐ’์„ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ์‹์ž„. ๋ฌธ์ž์—ด ์•ˆ์—์„œ +-๊ฐ™์€ ์ˆ˜์‹๋„ ํ•จ๊ป˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
    ๋”•์…”๋„ˆ๋ฆฌ ํฌ๋งท๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

     

    ๐Ÿ“ŒString methods(๋ฌธ์ž์—ด ๋‚ด์žฅ ํ•จ์ˆ˜)

    • count() : ๋ฌธ์ž ๊ฐœ์ˆ˜ ์„ธ๊ธฐ
    • find(): ๋ฌธ์ž์—ด์—์„œ ๋ฌธ์ž๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ๋‚˜์˜จ ์œ„์น˜ ๋ฐ˜ํ™˜, ์ฐพ๋Š” ๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด -1๋ฐ˜ํ™˜
    • index(): ๋ฌธ์ž์—ด์—์„œ ๋ฌธ์ž๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ๋‚˜์˜จ ์œ„์น˜ ๋ฐ˜ํ™˜, ์ฐพ๋Š” ๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ.
    • join(): ๋ฌธ์ž์—ด์˜ ๊ฐ๊ฐ์˜ ๋ฌธ์ž ์‚ฌ์ด์— ์‚ฝ์ž… ๊ฐ€๋Šฅ.
      ex) ",".join('abcd')-> 'a,b,c,d'
    • lstrip-> ์™ผ์ชฝ ๊ณต๋ฐฑ ์ง€์šฐ๊ธฐ rstrip->์˜ค๋ฅธ์ชฝ ๊ณต๋ฐฑ ์ง€์šฐ๊ธฐ strip->์–‘์ชฝ ๊ณต๋ฐฑ ์ง€์šฐ๊ธฐ
    • replace(): replace(๋ฐ”๋€Œ๊ฒŒ ๋  ๋ฌธ์ž์—ด, ๋ฐ”๊ฟ€ ๋ฌธ์ž์—ด) ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ
    • split: split() ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆ” split(',') ,์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆ”
      ๋‚˜๋ˆˆ ๊ฐ’์€ '๋ฆฌ์ŠคํŠธ'์— ๋“ค์–ด๊ฐ€์„œ ๋ฐ˜ํ™˜๋จ.

    ๋Œ“๊ธ€