Python ๊ณต๋ถ€!

2021. 2. 24. 10:30ใ†Work/Python

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ˜ƒ Web IDE : https://repl.it/

๐Ÿ˜ƒ Web Documentation : https://docs.python.org/3.5/library/index.html

Naming Rules

Data Types

  • ๐Ÿ‘‰ string a_string = "Like this"
    • "์ด๋ฆ„ %s" % "๋‚ด์ด๋ฆ„" , "๋‚˜์ด %s" % "25"
    • "์ด๋ฆ„ %s, ๋‚˜์ด %s" % ("๋‚ด์ด๋ฆ„", 25)
    • "์ด๋ฆ„ : %(name)s, ๋‚˜์ด %(age)s" % {"name":"๋‚ด์ด๋ฆ„", "age":25}
    • Formating : %d → 10์ง„์ˆ˜, %o → 8์ง„์ˆ˜, %x → 16์ง„์ˆ˜, %f → ๋ถ€๋™์†Œ์ˆ˜์ , %d → ์ •์ˆ˜, %% → %๋กœ ํ‘œ์‹œ, %5s → ์šฐ์ธก์ •๋ ฌ 5๋งŒํผ, %-5s → ์ขŒ์ธก์ •๋ ฌ 5๋งŒํผ, %0.2f → 3.14, %2.2f → ์šฐ์ธก์ •๋ ฌ 2๋งŒํผ & ์†Œ์ˆ˜ ์ž๋ฆฟ์ˆ˜ 2๋งŒํผ, $02.2f → ๋น„์–ด์žˆ๋Š” ์ž๋ฆฌ์ˆ˜๋Š” 0์œผ๋กœ ์ฑ„์›€
    • "์ด๋ฆ„: {}, ๋‚˜์ด{}".format("๋‚ด์ด๋ฆ„",25} → ์ˆœ์ฐจ์ ์œผ๋กœ ์ ์šฉ, "์ด๋ฆ„:{0}".format("๋‚ด์ด๋ฆ„")
    • "{0:f}.format()" → ์†Œ์ˆ˜์  6์ž๋ฆฌ, "{0:2f}.format()" → ์†Œ์ˆ˜์  2์ž๋ฆฌ
    • "{name}, {age}".format(name="๋‚ด์ด๋ฆ„",age=20)
  • ๐Ÿ‘‰ int a_number = 3
  • ๐Ÿ‘‰ float a_float = 3.12
  • ๐Ÿ‘‰ boolean a_boolean = False
  • ๐Ÿ‘‰ null a_none = None
  • ๐Ÿ‘‰ list a_list = [1, 2, 3]
    • โญ• a_list[1] = 3 → a_list[1, 3, 3] โญ• a_list = ["hi", 21]
  • ๐Ÿ‘‰ tuple a_tuple = ("hi",20)
    • ๐Ÿšซ a_tuple[1] = 21, โญ• a_tuple = ("hi", 21)
  • ๐Ÿ‘‰ set a_set = {1, 2, 3, 3} → a_set = {1, 2, 3}
    • ๐Ÿšซ a_set[0], โ˜๏ธ a_set |= {2, 4} → ํ•ฉ์ง‘ํ•ฉ์œผ๋กœ ์„ ์–ธ ๊ฐ€๋Šฅ โญ• a_set = ["hi", 21]
    • ๐Ÿšซ์ˆœ์„œ๊ฐ€ ์—†์–ด์„œ ์ธ๋ฑ์Šค ์—†์Œ, ๐Ÿšซ๋ฐ์ดํ„ฐ ์ค‘๋ณต ํ—ˆ์šฉX
  • ๐Ÿ‘‰ Dictionary a_dictionary = { 1: 1, 2: 2}
    • a_dictionary[1] → 1, โญ• a_dictionary[2] = 3, a_dictionary[4] = 4 → ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ โ˜๏ธ a_dictionary[4]์™€ a_dictionary['4']๋Š” ๋‹ค๋ฆ„!
    • โ˜๏ธ ํ‚ค๋ฅผ ์ด์šฉํ•ด ๊ฐ’ ์ฝ์„ ์ˆ˜ ์žˆ์Œ, ํ•ญ๋ชฉ ์ถ”๊ฐ€์‹œ ๋™์ผํ‚ค | ์—†์Œ: ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ ์ถ”๊ฐ€, ์žˆ์Œ : ์ €์žฅ๋œ ํ•ญ๋ชฉ ๋ณ€๊ฒฝ
  • ๐Ÿ‘‰ Del del() : ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜ ์ œ๊ฑฐ
  • var1 = 10, var2 = 10, var1 is var2 → True

Queue

Function

  • ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค!

  • ๋ชจ๋“ˆ๋กœ ๋˜์–ด ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค!

  • ๋ณธ์ธ์ด ๋งŒ๋“  ๊ฒƒ๋„ ๋ชจ๋“ˆ์ฒ˜๋Ÿผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค!

 

Class

  • ํด๋ž˜์Šค์˜ ์ƒ์† ๊ตฌ์กฐ ์„ ์–ธ

Map, lambda

  • lambda๋กœ map์— ๋Œ€ํ•ด ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • zip, unpack

    • zip(name), *name

Boolean Operations

  • x or y
  • x and y
  • not x

Slice (:)

  • command[0] → 0๋ฒˆ์งธ index
  • command[1:2] → 1๋ฒˆ์งธ ~ 2๋ฒˆ์งธ index
  • command[:2] → 0 ~ 2๋ฒˆ์งธ ๊นŒ์ง€
  • command[2:] → 2 ~ ๋ ๊นŒ์ง€
  • command ์ตœ๋Œ€๊ฐ€ 4๋ผ๋ฉด command[0] command[1] command[2] command[3] command[-4] command[-3] command[-2] command[-1]

Bisect

  • Array bisection algorithm, Binary search!

import bisect mylist = [1, 2, 3, 7, 9, 11, 33] print(bisect.bisect(mylist, 7))

4

๋ฌธ์ž์—ด ์ •๋ ฌํ•˜๊ธฐ

s, n = input().strip().split(' ') n = int(n) print(f'{s:<{n}}') print(f'{s:^{n}}') print(f'{s:>{n}}')

s.ljust(n) # ์ขŒ์ธก ์ •๋ ฌ s.center(n) # ๊ฐ€์šด๋ฐ ์ •๋ ฌ s.rjust(n) # ์šฐ์ธก ์ •๋ ฌ

Comparisons

  • is : object identity

  • is not : negated object identity

     

Snake case

  • super_long_variable : python ์‚ฌ์šฉํ• ๋•Œ ์•ฝ์†, ๋ชจ๋‘ ์†Œ๋ฌธ์ž

Garbage Collection

  • python์˜ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋Š” ์ด 3์„ธ๋Œ€, 0(young)~2(old)์„ธ๋Œ€
  • ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์ด์œ  : ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์™„์ „ํžˆ ์ค‘์ง€ํ•ด์•ผํ•˜๊ณ , ๊ฐ์ฒด๊ฐ€ ๋งŽ์„ ์ˆ˜๋ก ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ๋‹ˆ ๋ฉˆ์ถฐ์žˆ๋Š” ์‹œ๊ฐ„๋„ ์˜ค๋ž˜๊ฑธ๋ฆผ.
  • ๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŒ…(reference_counting) : ์ฃผ๋กœ ์‚ฌ์šฉ!
    • โ˜๏ธ ๊ฐ์ฒด๊ฐ€ ์ฐธ์กฐ๋  ๋•Œ๋งˆ๋‹ค ์ฆ๊ฐ€, ํ•ด์ œ๋  ๋•Œ ๊ฐ์†Œ, 0 ์ด๋ฉด ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ํ•ด์ œ sys.getrefcount(a) ๋ฅผ ํ†ตํ•ด ์ฐธ์กฐ ํšŸ์ˆ˜ ํ™•์ธ ๊ฐ€๋Šฅ, ๋‹จ sys ํ• ๋‹น์‹œ์—๋„ ์ฆ๊ฐ€!
  • ์„ธ๋Œ€๋ณ„ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(generational_garbage_collection) : ๋ณด์กฐ๋กœ ์‚ฌ์šฉ!
    • โ˜๏ธ ๊ฐ์ฒด๊ฐ€ ์ˆœํ™˜ ์ฐธ์กฐ ํ•˜๊ฑฐ๋‚˜, ์„œ๋กœ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฐ์ฒด์—์„œ ํ•ด๋‹น ๊ฐ์ฒด์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์—†์„ ๊ฒฝ์šฐ ๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŒ…๋งŒ์œผ๋กœ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.
    • โœŒ๏ธ Generation Rules : 0์„ธ๋Œ€์—์„œ ์‹œ์ž‘, ๊ฐ์ฒด๊ฐ€ ์‚ด์•„ ๋‚จ์œผ๋ฉด(ํ˜„์žฌ ์„ธ๋Œ€์˜ ์ž„๊ณ„๊ฐ’ ์ˆ˜์น˜๊ฐ€ ์ตœ๋Œ€) ๋‹ค์Œ ์„ธ๋Œ€๋กœ ์ด๋™, 0์„ธ๋Œ€์—์„œ ๋” ์ž์ฃผ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ํ•จ.
    • ๐ŸคŸ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ๋‹ค! ์ž„๊ณ„๊ฐ’ ๋ณ€๊ฒฝ, ์ˆ˜๋™์œผ๋กœ trigger, ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Manual
    • Time-based(์‹œ๊ฐ„ ๊ธฐ๋ฐ˜) : ๊ณ ์ •๋œ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ๋งˆ๋‹ค ํ˜ธ์ถœ Event-based(์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜) : ํŠน์ • ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ ํ˜ธ์ถœ, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ํ˜น์€ ์ค‘๋‹จ ์ƒํƒœ์ผ ๋•Œ

List comprehension์˜ if ๋ฌธ

  • for ๋ฌธ๊ณผ if๋ฌธ์„ ํ•œ๋ฒˆ์— - List comprehension์˜ if ๋ฌธ

mylist = [3, 2, 6, 7] answer = [i**2 for i in mylist if i %2 == 0]

Reference!

๐Ÿ‘‰ python

๐Ÿ‘‰ garbage collection

728x90
๋ฐ˜์‘ํ˜•

'Work > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Coding Start Python  (0) 2021.03.12