728x90
λ°˜μ‘ν˜•
# μž¬κ·€ν•¨μˆ˜λ‘œ 뢀뢄집합 λ§Œλ“€κΈ°
# bits: ν•΄λ‹Ή 인덱슀의 μš”μ†Œλ₯Ό μ‚¬μš©ν• μ§€μ˜ 유무 (1은 μ‚¬μš©ν•˜κ³  0은 μ•„λ‹˜)
# depth : λ‚΄κ°€ μ–Όλ§ˆλ‚˜ ν•¨μˆ˜λ₯Ό μž¬κ·€ν˜ΈμΆœν–ˆλŠ”μ§€μ— λŒ€ν•œ 카운트 κ°’...
def recur(bits, depth):
    # κΈ°μ € 쑰건
    if depth == N:
        for i in range(N):
            if bits[i] == 1:
                print(arr[i], end=' ')
        print()
        return

    for i in range(2): # 0, 1
        bits[depth] = i
        # 자기 μžμ‹ μ„ 호좜
        recur(bits, depth + 1)


N = 4
arr = [1, 2, 3, 4]
recur([0] * N, 0)

# result
4 
3 
3 4 
2 
2 4 
2 3 
2 3 4 
1 
1 4 
1 3 
1 3 4 
1 2 
1 2 4 
1 2 3 
1 2 3 4

λ’€μ—μ„œ ν•˜λ‚˜ν•˜λ‚˜ λŒμ•„μ˜¨λ‹€κ³  생각해주면 μ΄ν•΄ν•˜κΈ° μ‰¬μšΈκ²ƒ κ°™λ‹€~~~

 

μž¬κ·€ν•¨μˆ˜ λ„ˆλ¬΄ μ–΄λ €μ›Œμš”μ˜€....제제제.....κΈ°.........λž„,,,,

 

μ—¬κΈ°μ„œ 제일 μ€‘μš”ν•œ ν¬μΈνŠΈλŠ” [0, 0, 0, 0] 배열을 λκΉŒμ§€ λ§Œλ“€μ–΄μ£Όκ³  μ—­μœΌλ‘œ λ§Œλ“€μ–΄μ Έ λ‚˜κ°€λŠ” λŠλ‚Œμ΄λΌλŠ”κ±°?

return을 λ°›μ•˜μ„ λ•Œ, 제일 처음이 μ•„λ‹Œ μžμ‹ μ„ ν˜ΈμΆœν–ˆλ˜ 곳으둜 λŒμ•„κ°€ 0이 μ•„λ‹ˆλΌ 1인 경우λ₯Ό λ§Œλ“€μ–΄μ€€λ‹€λŠ”κ±°??

κ·Έλž˜μ„œ 닡을 좜λ ₯ν–ˆμ„λ•Œ, λ¦¬μŠ€νŠΈμ— κ°€μž₯ λ¨Όμ € μ €μž₯된 1이 μ•„λ‹ˆλΌ 4κ°€ λ‚˜μ˜€λŠ” 뢀뢄이 정말 μ€‘μš” 포인트인거 κ°™λ‹€...

 

μž¬κ·€μ˜ κ°€μž₯ λŒ€ν‘œμ μΈ 예 : νŒ©ν† λ¦¬μ–Ό

 

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

1) ν•¨μˆ˜

 

  • μš°λ¦¬κ°€ ν”„λ‘œκ·Έλž˜λ°μ„ μ’€ 더 μ‰½κ²Œ ν•  수 μžˆλ„λ‘ ν•΄μ€€λ‹€
  • μ²˜μŒλΆ€ν„° νŒŒμ΄μ¬μ—μ„œ μ œκ³΅ν•΄μ£ΌλŠ” 거솓 있고, μš°λ¦¬κ°€ ν•„μš”λ‘œ ν•˜λŠ” 것을 직접 λ§Œλ“€μ–΄ μ“Έ 수 μžˆλ‹€
# len () : 리슀트의 크기λ₯Ό μ•Œλ €μ£ΌλŠ” ν•¨μˆ˜ -> νŒŒμ΄μ¬μ—μ„œ μ œκ³΅ν•˜λŠ” 것
a_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
len(a_list)  # 10

# μ •μˆ˜λ₯Ό μž…λ ₯λ°›κ³ , κ·Έ μˆ˜κ°€ λͺ‡ 자리 μˆ«μžμΈμ§€ 좜λ ₯ν•˜λŠ” ν•¨μˆ˜ numOfDigits () λ§Œλ“€κΈ°
def numOfDigits(num):
    print(len(str(num)))

 

++) μ—°μŠ΅λ¬Έμ œ

 

# λ‚΄ 풀이
for i in range (2, 10):
    for j in range (1,10):
        # print (f"{i} * {j} = {i * j}"
        print(i, "*", j, "=", (i*j))
        
 # λͺ¨λ²” λ‹΅μ•ˆ
 def multi(m):
        for n in range(1, 10):
            print(f'{m} * {n} = {m*n:2d}')


    if __name__ == '__main__':
        for i in range(2, 10):
            multi(i)
            print()

 

++) map ν•¨μˆ˜ 

  • ν•¨μˆ˜μ™€ 리슀트λ₯Ό 인자둜 λ°›κ³ 
  • λ¦¬μŠ€νŠΈλ‘œλΆ€ν„° μ›μ†Œλ₯Ό ν•˜λ‚˜μ”© κΊΌλ‚΄μ„œ ν•¨μˆ˜λ₯Ό μ μš©μ‹œν‚¨ λ‹€μŒ
  • κ²°κ³Όλ₯Ό μƒˆλ‘œμš΄ λ¦¬μŠ€νŠΈμ— λ‹΄μ•„μ€λ‹ˆλ‹€
map(ν•¨μˆ˜, 리슀트)

list(map(lambda x : x ** 2, range(5)))
[0, 1, 4, 9, 16]

 

 

++) reduce ν•¨μˆ˜

  • μ‹œν€€μŠ€(λ¬Έμžμ—΄, 리슀트, νŠœν”Œ) 의 μ›μ†Œλ“€μ„ λˆ„μ ν•΄μ„œ ν•¨μˆ˜μ— μ μš©μ‹œν‚΅λ‹ˆλ‹€
reduce(ν•¨μˆ˜, μ‹œν€€μŠ€)

from functools import reduce
reduce(lambda x, y: x + y, [0, 1, 2, 3, 4])   #10

 

++) filter ν•¨μˆ˜

  • μ›μ†Œλ“€μ„ ν•¨μˆ˜μ— μ μš©μ‹œμΌœμ„œ κ²°κ³Όκ°€ 참인 κ°’λ“€λ‘œ μƒˆλ‘œμš΄ 리슀트λ₯Ό λ§Œλ“€μ–΄μ€λ‹ˆλ‹€
filter(ν•¨μˆ˜, 리슀트)

list(filter(lambda x: x < 5, range(10)))
[0, 1, 2, 3, 4]

 

 

2) λ°˜ν™˜ (return) λ¬Έ

 

  • ν•¨μˆ˜μ˜ 값을 돌렀주기 μœ„ν•΄ return이 μ‚¬μš©λœλ‹€
# λ§€κ°œλ³€μˆ˜λ‘œ 받은 μ •μˆ˜λ₯Ό ν•œκ΅­μ–΄λ‘œ ν‘œκΈ°ν•œ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ korean_number() λ₯Ό μ •μ˜
# 단, λ§€κ°œλ³€μˆ˜λŠ” 1이상 10μ΄ν•˜μ˜ μ •μˆ˜

def korean_number(num):
    if num == 1:
        return '일'
    elif num == 2:
        return '이'
    elif num == 3:
        return 'μ‚Ό'
    elif num == 4:
        return '사'
    elif num == 5:
        return '였'
    elif num == 6:
        return '윑'
    elif num == 7:
        return 'μΉ '
    elif num == 8:
        return 'νŒ”'
    elif num == 9:
        return 'ꡬ'
    elif num == 10:
        return 'μ‹­'

 

 

3) μ§€μ—­λ³€μˆ˜, μ „μ—­λ³€μˆ˜

 

  • μ§€μ—­λ³€μˆ˜ : ν•¨μˆ˜ μ•ˆμ—μ„œ λ§Œλ“€μ–΄μ§„ λ³€μˆ˜, ν•¨μˆ˜κ°€ 호좜되면 λ§Œλ“€μ–΄μ Έμ„œ, ν•¨μˆ˜μ˜ 싀행이 끝날 λ–„ ν•¨κ»˜ 없어진닀
  • μ „μ—­λ³€μˆ˜ : ν•¨μˆ˜ λ°–μ—μ„œ λ§Œλ“€μ–΄μ§„ λ³€μˆ˜ , ν•¨μˆ˜μ™€ 관계없이 항상 μœ μ§€λœλ‹€

=> 그럼 항상 μœ μ§€λ˜λŠ” μ „μ—­ λ³€μˆ˜λ₯Ό 쓰지 λ­ν•˜λŸ¬ 지역 λ³€μˆ˜λ₯Ό 쓰냐??

더보기

    μ „μ—­λ³€μˆ˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ λ³΅μž‘ν•΄μ§ˆμˆ˜λ‘ λ‹€λ₯Έ ν•¨μˆ˜λ“€ λ•Œλ¬Έμ— λ³€μˆ˜μ˜ 값이 λ°”λ€Œμ–΄λ²„λ¦¬λŠ” κ²½μš°κ°€ μ’…μ’… μžˆμ–΄μ„œ  ν•„μš”μ— 따라 μ§€μ—­λ³€μˆ˜μ™€ μ „μ—­λ³€μˆ˜λ₯Ό 골라 μ“°λŠ” 것이 μ’‹λ‹€. 

  • ν•¨μˆ˜ μ•ˆμ—μ„œ μ „μ—­λ³€μˆ˜λ₯Ό λ§Œλ“œλŠ” 방법도 μžˆλ‹€ : μ „μ—­λ³€μˆ˜(global)둜 μ‚¬μš©ν•˜κ² λ‹€κ³  λͺ…μ‹œ
def e_is_10():
    global e   # μ „μ—­λ³€μˆ˜
    e = 10
    print('e 값은 ', e, 'μž…λ‹ˆλ‹€')

 

4) λžŒλ‹€

 

  • λžŒλ‹€ ν˜•μ‹μ€ 인곡지λŠ₯ λΆ„μ•Όλ‚˜ AutoCAD λΌλŠ” 섀계 ν”„λ‘œκ·Έλž¨μ—μ„œ μ“°μ΄λŠ” Lisp μ–Έμ–΄μ—μ„œ λ¬Όλ €λ°›μ•˜λ‹€
  • ν•¨μˆ˜λ₯Ό λ”± ν•œμ€„λ‘œ λ§Œλ“€μ–΄μ€€λ‹€
lambda λ§€κ²¨λ³€μˆ˜ : ν‘œν˜„μ‹

(lambda x, y : x+y) (10, 20)   # 30

 

++) str.strip으둜 λ¬Έμžμ—΄ μ•žλ’€μ˜ 곡백을 μ œκ±°ν•  수 μžˆλ‹€

>>> str.strip(" I am a boy. ")
'I am a boy.'

 

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

1) while 을 μ‚¬μš©ν•˜λŠ” 반볡문

 

# 1λΆ€ν„° 100κΉŒμ§€ 좜λ ₯ν•˜κΈ°
num = 1
while num <= 100:
    print(num)
    num = num + 1

# ;(μ„Έλ―Έμ½œλ‘ )을 μ•ˆμ“΄λ‹€λŠ” 점과 쑰건문뒀에 :(콜둠)을 λΆ™μΈλ‹€λŠ”κ²Œ 정말 μƒˆλ‘­λ„€μ—¬...
  • λ³€μˆ«κ°’ 증가 
num = num + 1  (num +=1)
  • num이 100이 될 λ•ŒκΉŒμ§€ print(num)κ³Ό num = num +1을 λ°˜λ³΅ν•˜λŠ” 것 !!
  • whileλ¬Έ λ§ˆμ§€λ§‰μ—λŠ” 콜둠(:)이 κΌ­ λ“€μ–΄κ°€μ•Ό ν•œλ‹€!!

 

++) μ—°μŠ΅λ¬Έμ œ

# μ •μˆ˜λ₯Ό ν•œ 개 μž…λ ₯λ°›μ•„, 1λΆ€ν„° μž…λ ₯받은 μˆ˜κΉŒμ§€ 각각에 λŒ€ν•΄ μ œκ³±μ„ ꡬ해 ν”„λ¦°νŠΈ
num = int(input())

i = 1
while (i < num):
    print (i, i ** 2)
    i += 1

 

++) round ( )  : 반올림 ν•΄μ£ΌλŠ” ν•¨μˆ˜ πŸ‘

  • round(1.23456, 2) # 1.23456을 μ†Œμˆ˜μ  λ‘˜μ§Έ 자리둜(μ…‹μ§Έ μžλ¦¬μ—μ„œ) 반올림 => 1.2
  • round(1.23456, 3) # 1.23456을 μ†Œμˆ˜μ  μ…‹μ§Έ 자리둜(λ„·μ§Έ μžλ¦¬μ—μ„œ) 반올림 => 1.235
  • 참고둜, round(2.675, 2)λ₯Ό μˆ˜ν–‰ν•˜λ©΄ κ²°κ³Όκ°€ 2.68이 μ•„λ‹Œ 2.67둜 λ‚˜μ˜€λŠ”데, μ΄κ²ƒμ€ λ²„κ·Έκ°€ μ•„λ‹ˆλΌ λΆ€λ™ μ†Œμˆ˜μ (floating point) μ—°μ‚°μ˜ ν•œκ³„이닀

 


 

2) 쑰건문 (if - elif - else)

 

  • 파이썬의 if 와 else
a = 1234 * 4
b = 13456 / 2
# λ§Œμ•½ aκ°€ b보닀 크면
if a > b:
    # 'a'λ₯Ό 좜λ ₯ν•œλ‹€
    print('a')
# 그렇지 μ•ŠμœΌλ©΄
else: 
    # 'b'λ₯Ό 좜λ ₯ν•œλ‹€
    print('b')
    
# κ΄„ν˜Έλ₯Ό μ•ˆμ“°λŠ”κ±°λž‘ μ„Έλ―Έμ½œλ‘  μ•ˆ λΆ™μ΄λŠ”κ±° 아직은 μ΅μˆ™ν•˜μ§€ μ•Šλ„€μš”...

 

  • elif

 

c = 15 * 5
d = 15 + 15 + 15 + 15 + 15
if c > d:
    print('c is greater than d')
elif  c == d:
    print('c is equal to d')
else:
    print('c is less than d')

elif λΌλŠ” 것을 μ‚¬μš©ν•˜λ©΄ μ—¬λŸ¬ 개의 쑰건을 κ²€μ‚¬ν•΄μ„œ κ·Έ μ€‘μ—μ„œ λ§˜μ— λ“œλŠ” 것을 κ³ λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

μžλ°”μ˜ else if λž‘ λΉ„μŠ·ν•˜λ„€μš” πŸ€”

 

  • == μ—°μ‚°μž 
# c와 d의 값이 κ°™λ‹€
c == d
# d의 값을 c에 λ„£λŠ”λ‹€
c = d
  • 쑰건에 따라 반볡문 μ€‘λ‹¨ν•˜κΈ°
# 10보닀 큰 μˆ«μžκ°€ λ“€μ–΄μ˜€λ©΄ λ©ˆμΆ”λŠ” 반볡문
max = 10
while True:
    num = int(intput())
    if num > max:
        print(num, 'is too big!')
        break

쑰건에 ν•΄λ‹Ήν•˜μ§€ μ•ŠλŠ” 값이 였면 break 문을 μ‚¬μš©ν•˜μ—¬ λ°˜λ³΅λ¬Έμ„ 쀑단 ν•  수 μžˆμŠ΅λ‹ˆλ‹€ !!

 

 

++) μ—°μŠ΅λ¬Έμ œ

# μ‚¬μš©μžλ‘œλΆ€ν„° μž…λ ₯받은 μ •μˆ˜λ₯Ό 계속 λ”ν•΄λ‚˜κ°€λ‹€κ°€, μŒμˆ˜κ°€ μž…λ ₯되면 μ€‘λ‹¨ν•˜κ³  κ·Έ μ „κΉŒμ§€ κ³„μ‚°ν•œ 값을 좜λ ₯
sum = 0
while True:
    num = int(input())
    if num < 0:
        break
    else:
       sum += num

print(sum)

 

  •  and / or μ—°μ‚°μž
더보기

and μ—°μ‚°μž : '그리고' 에 ν•΄λ‹Ήν•˜λŠ” 의미, μ€‘μ²©λ˜μ—ˆλ˜ if 문을 ν•œλ²ˆμœΌλ‘œ 쀄인닀 (μžλ°”μ—μ„  &&)

or μ—°μ‚°μž : 'λ˜λŠ”' 에 ν•΄λ‹Ήν•˜λŠ” 의미 (μžλ°”μ—μ„  ||)

 

++) λ¬Έμžμ—΄μ˜ lower () λ©”μ„œλ“œ : μ˜μ–΄ λŒ€λ¬Έμžλ₯Ό μ†Œλ¬Έμžλ‘œ λ°”κΎΌ 값을 λŒλ €μ€λ‹ˆλ‹€.

더보기

'Yes'. lower( ) => 'yes'

 

 

3) for λ₯Ό μ‚¬μš©ν•˜λŠ” 반볡문

 

  • for λ¬Έ 
# κ°€μ‘±λ“€μ˜ 이름과 λ¬Έμžμ—΄ 길이λ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨
family = ['father', 'mother', 'brother', 'sister']
# family의 각 ν•­λͺ© x에 λŒ€ν•˜μ—¬
for x in family:
# x와 x의 길이λ₯Ό 좜λ ₯ν•˜λΌ
    print(x, len(x))

 

  • range ( )
# for λ¬Έμ—μ„œ range () μ‚¬μš© ν•  수 μžˆμŠ΅λ‹ˆλ‹€ 
# range (x, y) = [x, x+1, x+2 ... y-1]
for i in range(4, 8):
    print(i)

 

++) μ—°μŠ΅λ¬Έμ œ

# 숫자λ₯Ό μž…λ ₯λ°›μ•„, κ·Έ 숫자 크기만큼 λ°˜λ³΅ν•΄μ„œ 좜λ ₯ν•˜μ‹œμ˜€
num = int(input())
# i = 1

for i in range (num):
    print('', num)
    # print(num)

적어도 ν‹€λ¦¬μ§€λŠ” μ•Šλ˜λ°

μ™œ i μ΄ˆκΈ°κ°’μ„ 적어주지 μ•ŠλŠ” κ±°λž‘ , print 뒀에 ' ' 을 λΆ™μ—¬μ€˜μ•Ό ν•˜λŠ”μ§€λ₯Ό λͺ¨λ₯΄κ² λ„€μš”.γ…œ

 

++) spilt ( )  λ©”μ„œλ“œ

# λ¬Έμžμ—΄μ„ λΆ„ν• ν•œ 리슀트λ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€
'0, 100'.split()
# spilt()으둜 얻은 κ²°κ³Όλ₯Ό λ°”λ‘œ λ³€μˆ˜μ— ν• λ‹Ήν•  수 μžˆμŠ΅λ‹ˆλ‹€
freezing_point, boiling_point = '0 100.spilt()'
freezing_point # 0
boiling_point # 100

 


 

4) match - case λ¬Έ (java의 switch-case λ¬Έκ³Ό μœ μ‚¬)

 

  • ν™€μˆ˜, 짝수 νŒλ³„
for i in range(1,11):
    match i % 2:
        case 0:
            print(f"{i} is even.")
        case 1:
            print(f"{i} is odd.")

 

  • case(0. _)  => _ λŠ” 아무 κ°’μ΄λ‚˜ 상관 μ—†λ‹€λŠ” 뜻

 

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

1. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λž€?

 

     ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€κΈ° μœ„ν•œ "도ꡬ" λ₯Ό μ‚¬μš©ν•˜λŠ” 방법을 λ°°μš°λŠ” 것

      * μ–Έμ–΄ : μžμ‹ μ˜ 생각을 μ „λ‹¬ν•˜κΈ° μœ„ν•œ 체계

   

    μ»΄ν“¨ν„°λŠ” κΈ°κ³„μ–΄λ‘œ μ†Œν†΅!

    κΈ°κ³„μ–΄λž€?

:   0κ³Ό 1둜 λͺ¨λ“  것을 ν‘œν˜„(2진법)

 

    ν”„λ‘œκ·Έλž˜λ°ν•˜λ €λ©΄ 기계어λ₯Ό μ•Œμ•„μ•Ό ν•˜λ‚˜μš”?  => X

 

2. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λž€? (2)

 

    μ‚¬λžŒμ΄ 이해할 수 μžˆλŠ” 문자둜 ꡬ성

    기본적인 κ·œμΉ™κ³Ό 문법이 쑴재

 

    <ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ ꡬ성>

 

    (1) μ†ŒμŠ€ μ½”λ“œ : ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ μž‘μ„±λœ ν”„λ‘œκ·Έλž¨

    (2) λ²ˆμ—­κΈ°(interpreter, compiler) 

  •  μ†ŒμŠ€ μ½”λ“œλ₯Ό 컴퓨터가 이해할 수 μžˆλŠ” κΈ°κ³„μ–΄λ‘œ λ²ˆμ—­
  • 인터프리터 : ν•œλ§ˆλ”” ν•  λ–„λ§ˆλ‹€ λ™μ‹œν†΅μ—­ν•΄μ£ΌλŠ” 방식
  • 컴파일 : λ§ν•˜λŠ” 것을 μ²˜μŒλΆ€ν„° λκΉŒμ§€ λ“£κ³  λ‚˜μ„œ ν•œκΊΌλ²ˆμ— λ°”κΏ”μ£ΌλŠ” 것
  • νŒŒμ΄μ¬μ€ 인터프리터 방식 / μ‚¬λžŒμ΄ 파이썬 μ–Έμ–΄λ‘œ μž‘μ„±ν•œ ν”„λ‘œκ·Έλž¨μ„ 컴퓨터에 λ²ˆμ—­ν•΄μ£ΌλŠ” 파이썬 μ…Έ = 인터프리터

 

3. 파이썬의 νŠΉμ§• 

 

  •  λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ° 언어에 λΉ„ν•΄ 문법이 κ°„λ‹¨ν•˜λ©°, μ—„κ²©ν•˜μ§€ μ•ŠμŒ
  • λ³„λ„μ˜ 데이터 νƒ€μž… 지정이 ν•„μš” μ—†μœΌλ©°, μž¬ν• λ‹Ήμ΄ κ°€λŠ₯함
  • λ¬Έμž₯을 ꡬ뢄할 λ–„ μ€‘κ΄„ν˜Έλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  λ“€μ—¬μ“°κΈ°λ₯Ό μ‚¬μš©ν•¨
  • μ†ŒμŠ€ μ½”λ“œλ₯Ό κΈ°κ³„μ–΄λ‘œ λ°˜ν™˜ν•˜λŠ” 컴파일 κ³Όμ • 없이 λ°”λ‘œ 싀행이 κ°€λŠ₯함
  • 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ λͺ¨λ“  것이 객체둜 κ΅¬ν˜„λ˜μ–΄ 있음 (κ°μ²΄λž€? κ°’κ³Ό 행동을 가지고 μžˆλŠ” 데이터 집합)

 

4. 파이썬의 ν™œμš©

 

κ³Όμ—° λ‚˜λŠ” μ–΄λ””λ‘œ μ·¨μ—…ν•  것인가 πŸ˜‚πŸ˜‚πŸ˜‚

5. 파이썬 κ°„λ‹¨νžˆ 맛보기

 

μžλ°”λž‘ 달리 λͺ«μ΄λž‘ λ‚˜λˆ„κΈ°μ˜ μ—°μ‚°μžκ°€ λ‹€λ₯΄λ‹€... λ‚˜μ€‘μ— 더 μžμ„Ένžˆ μ•Œμ•„λ³΄μ˜€μž πŸ˜›

νŒŒμ΄μ¬μ€ μ„€μΉ˜ν•˜μ§€ μ•Šκ³ λ„ 곡식 ν™ˆνŽ˜μ΄μ§€ μ²«ν™”λ©΄μ—μ„œ λ°”λ‘œ μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€

파이썬 ν™ˆνŽ˜μ΄μ§€ :https://www.python.org/

 

Welcome to Python.org

The official home of the Python Programming Language

www.python.org

 

6. λ³€μˆ˜ (Variable)

 

: 컴퓨터 λ©”λͺ¨λ¦¬ μ–΄λ”˜κ°€μ— μ €μž₯λ˜μ–΄ μžˆλŠ” 객체λ₯Ό μ°Έμ‘°ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” 이름을 의미

  • 객체(object) : 숫자, 문자, 클래슀 λ“± 값을 가지고 μžˆλŠ” λͺ¨λ“  것 
  • νŒŒμ΄μ¬μ€ 객체지ν–₯ 언어이며, λͺ¨λ“  것이 객체둜 κ΅¬ν˜„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • 동일 λ³€μˆ˜μ— λ‹€λ₯Έ 객체λ₯Ό μ–Έμ œλ“  ν• λ‹Ήν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 즉, μ°Έμ‘°ν•˜λŠ” 객체가 λ°”λ€” 수 있기 λ•Œλ¬Έμ— 'λ³€μˆ˜'라고 λΆ€λ¦…λ‹ˆλ‹€

ex) μ‹œκ³„λΌλŠ” λ³€μˆ˜μ— λ°±λ§Œμ΄λΌλŠ” 값을 μ €μž₯ν•΄ λ³΄μ„Έμš”!

   watch = 1,000,000

 

7. 리슀트 (List) 

 

: 데이터가 λ‚˜μ—΄λœ ν˜•μ‹ 쀑 ν•˜λ‚˜

 

  • μˆœμ„œκ°€ μžˆλ‹€.
  • νŠΉμ • μœ„μΉ˜μ˜ 데이터λ₯Ό 가리킬 수 μžˆλ‹€
  • λŒ€κ΄„ν˜Έ [ ] 및 list( ) λ₯Ό 톡해 λ§Œλ“€ 수 μžˆλ‹€
# 가쑱을 리슀트둜 ν‘œν˜„
family = ['mother', 'father', 'brother', 'sister']
# κ°€μ‘±μ΄λΌλŠ” 리슀트의 길이 좜λ ₯
print (len(family))
# κ°€μ‘± 쀑 2번째 μš”μ†Œλ‘œ μΈλ±μŠ€μ— μ ‘κ·Όν•˜μ—¬ 좜λ ₯
print (family[2])
# μ œκ±°ν•˜κΈ°
family.remove('brother')
# νƒ€μž… 좜λ ₯
print(type(family))

 

++) μ—°μŠ΅λ¬Έμ œ

# μ‚¬μš©μžμ—κ²Œ μ •μˆ˜λ₯Ό μž…λ ₯λ°›μ•„, κ·Έ 수의 μ œκ³±μ„ 계싼해 좜λ ₯ν•˜λŠ” 파이썬 슀크립트λ₯Ό μž‘μ„±ν•˜μ„Έμš”
num = int(input())
print (num * num)
print (num ** 2)

μ§„μ§œ λˆˆμ— ν™• λ“€μ–΄μ™€μ„œ μ’‹λ„€μš”...

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

tkinter : GUI에 λŒ€ν•œ ν‘œμ€€ Python μΈν„°νŽ˜μ΄μŠ€μ΄λ©° Window 창을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

"Tkinter μ‹€ν–‰μ‹œν‚€κΈ°"

더보기

1. python에 λ“€μ–΄κ°€μ„œ 터미널에 pip install tkλ₯Ό 적어 tkinter을 μ‹€ν–‰ν•  수 μžˆλ„λ‘ ν•΄μ€λ‹ˆλ‹€

2. μ—…κ·Έλ ˆμ΄λ“œκ°€ ν•„μš”ν•˜λ©΄ upgrade 쀄을 밑에 적어주면 λœλ‹€.

3. μ½”λ”© 고우

"μœˆλ„μš° μ°½ μƒμ„±ν•˜κΈ°"

더보기

import tkinter : 상단에 import tkinterλ₯Ό μ‚¬μš©ν•˜μ—¬ GUI λͺ¨λ“ˆμ„ ν¬ν•©μ‹œν‚΅λ‹ˆλ‹€. tkinter ν•¨μˆ˜μ˜ μ‚¬μš©λ°©λ²•μ€ tkinter."λ₯Ό μ΄μš©ν•˜                               μ—¬ μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

window=tkinter.Tk() : μœˆλ„μš° 이름=tkinter.TK()λ₯Ό μ΄μš©ν•˜μ—¬ κ°€μž₯ μƒμœ„ 레벨의 μœˆλ„μš° 창을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

window.mainloop() : μœˆλ„μš° 이름.mainloop()λ₯Ό μ‚¬μš©ν•˜μ—¬ μœˆλ„μš° λ¦¬λ¦„μ˜ μœˆλ„μš° 창을 μœˆλ„μš°κ°€ μ’…λ£Œλ  λ•Œ κΉŒμ§€ μ‹€ν–‰μ‹œν‚΅λ‹ˆλ‹€.

                                     μƒμ„± ꡬ문과 반볡 ꡬ문 상에 μœ„μ ―μ„ μƒμ„œμ•„κ³  μ μš©ν•©λ‹ˆλ‹€.

tkinter.TK()λ₯Ό μ μš©ν•  경우 κ°€μž₯ 기본적인 μœˆλ„μš° 창이 μƒμ„±λ©λ‹ˆλ‹€.

"Window μ°½ μ„€μ •"

더보기

import tkinter

 

window=tkinter.Tk()

 

window.title("CHO SU HYEON") : μœˆλ„μš°μ΄λ¦„.title("제λͺ©")을 μ΄μš©ν•˜μ—¬ μœˆλ„μš° 창의 제λͺ©μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

window.geometry("640x400+100+100": μœˆλ„μš°μ΄λ¦„.geometry("λ„ˆλΉ„x높이+xμ’Œν‘œ+yμ’Œν‘œ")λ₯Ό μ΄μš©ν•˜μ—¬ μœˆλ„μš° μ°½

                                                                      의 λ„ˆλΉ„μ™€ 높이, 초기 ν™”λ©΄ μœ„μΉ˜μ˜ xμ’Œν‘œμ™€ yμ’Œν‘œλ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

window.resizable(False, False) : μœˆλ„μš°μ΄λ¦„.resizeable(μƒν•˜, 쒌우)λ₯Ό μ΄μš©ν•˜μ—¬ μœˆλ„μš° 창의 μ°½ 크기 쑰절 κ°€λŠ₯ μ—¬                                                          λΆ€λ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. True둜 μ„€μ •ν•  경우 μœˆλ„μš° 창의 크기λ₯Ό μ‘°μ ˆν•  수 있                                                            μŠ΅λ‹ˆλ‹€.

 

window.mainloop() 

 * Tip : resizeable() 을 μ μš©ν•  λ•Œ, True=1, False=0을 μ˜λ―Έν•˜μ—¬ μƒμˆ˜λ₯Ό μž…λ ₯해도 적용이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

μœˆλ„μš° 창의 이름이 CHO SU HYEON둜 μ„€μ •λ˜μ—ˆμœΌλ©° 크기와 초기 ν™”λ©΄ μœ„μΉ˜, μœˆλ„μš° 팑의 크기 쑰절 λΆˆκ°€λ‘œ μ„€μ •λœ 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

"Widget 배치"

더보기

import tkinter

 

window=tkinter.Tk()

 

window.title("CHO SU HYEON")

window.geometry("640x400+100+100")

window.resizable(False, False)

 

label=tkinter.Label(window, text="μ•ˆλ…•ν•˜μ„Έμš”.") μœ„μ ―이름=tkinter.Label(μœˆλ„μš° μ°½, text="λ‚΄μš©")을 μ‚¬μš©ν•˜μ—¬ μœˆλ„ 우 창에 Label μœ„μ ―μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. / μœ„μ ―μ΄λ¦„.pacl()을 μ‚¬μš©ν•˜μ—¬ μœ„μ ―μ„ λ°°μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

label.pack() 

 

window.mainloop()

속성을 μ„€μ •ν•˜μ§€ μ•Šμ•„ κΈ°λ³Έ μ†μ„±μœΌλ‘œ μ„€μ •λ˜μ–΄ κ°€μž₯ μ΅œμƒλ‹¨μ— 라벨이 λ°°μΉ˜λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

 

*였늘의 μ—λŸ¬

파일 이름을 tkinter둜 μ„€μ •ν•˜μ—¬ attribute μ—λŸ¬κ°€ μž‘λ™ν•˜μ—¬ 디버깅이 λ˜μ§€ μ•Šμ•˜λ‹€.

λ‹€μ‹œ μž‘λ™ν•˜κ³  λ‚˜κ°”λ‹€ λ“€μ–΄μ™”λŠ”λ°λ„ μž‘λ™ μ•ˆλ˜μ–΄ 파일의 제λͺ©μ΄ 였λ₯˜μ˜ μ£Ό μ›μΈμ΄λΌλŠ” 말을 많이 λ“€μ–΄μ„œ 

파일 이름을 tkinter2둜 λ°”κΎΈμ–΄ λ‹€μ‹œ μ‹€ν–‰ν•΄λ³΄λ‹ˆ λ‹€ν–‰νžˆ μ‹€ν–‰λ˜μ—ˆλ‹€!!

 

 

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

1)  2~100κΉŒμ§€μ˜ μ†Œμˆ˜ κ΅¬ν•˜κΈ° 

# 2~100 μ‚¬μ΄μ˜ λͺ¨λ“  μ†Œμˆ˜ κ΅¬ν•˜κΈ°
num = 2
count = 0  # μ†Œμˆ˜μ˜ 개수λ₯Ό 세어쀄 λ³€μˆ˜
while num <= 100:
    i = 2  # 2 ~ num κΉŒμ§€ 증가할 λ³€μˆ˜
    while num % i:  # λ‚˜λˆ„μ–΄μ§ˆ λ–„κΉŒμ§€ 반볡
        i += 1      # 1증가

    if i == num:  # λ‚˜λˆ„μ–΄μ§„ μˆ˜κ°€ 자기 μžμ‹ μ΄λ©΄ μ†Œμˆ˜
        print('{0:5}'.format(num), end='')
        count += 1
        if not count % 10:  # κ°œμˆ˜κ°€ 10의 배수면 μ€„λ°”κΏˆ
            print()
    num += 1  # 100κΉŒμ§€ 증가
 
-> vscode에 μ΄λŒ€λ‘œ λˆ„λ₯΄κ³  μ‹€ν–‰ν•˜λ©΄ (=F5)
=>
 2    3    5    7   11   13   17   19   23   29
   31   37   41   43   47   53   59   61   67   71
   73   79   83   89   97
PS C:\Users\user\Desktop\chosuhyeon\school class\python\GOGODAN>
 
μ΄λ ‡κ²Œ λ‚˜μ˜΅λ‹ˆλ‹€~~~ 
 
* 같은 열끼리 μ •ν™•ν•˜κ²Œ 적어야 μ½”λ“œ 싀행됨(클둠 μ½”λ”©ν•˜λ‹€κ°€ 자주 μ‹€μˆ˜ν•˜λŠ” μš”μΈ 쀑 ν•˜λ‚˜, μ²˜μŒμ— μ΄ν•΄ν•΄μ„œ 혼자 적으렀 ν•˜λ‹€κ°€ 계속 였λ₯˜λ– μ„œ λ³΄λ‹ˆκΉŒ 열이 쑰금 λ‹€λ₯΄κ²Œ λ˜μ–΄μžˆμ—ˆμŒ)
* # : 주석 (코딩에 듀어가지 μ•ŠλŠ” λ‚΄μš©, μ„€λͺ…을 μœ„ν•΄ 듀어감)
 
 

2) 2-9λ‹¨κΉŒμ§€μ˜ ꡬꡬ단 λ§Œλ“€κΈ°

print("ꡬꡬ단을 좜λ ₯ν•©λ‹ˆλ‹€.\n")
for x in range(2,10):
    print("------[" + str(x) + "단]------")
    for y in range(1,10):
        print(x, "x", y, "=", x*y)

-> vscode에 μ΄λŒ€λ‘œ λˆ„λ₯΄κ³  μ‹€ν–‰ν•˜λ©΄ (=F5)

=>


------[2단]------
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
------[3단]------
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
------[4단]------
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
------[5단]------
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
------[6단]------
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
------[7단]------
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
------[8단]------
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
------[9단]------
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

* ν•œμ€„μ”© 좜λ ₯ν•˜κ³  μ‹ΆμœΌλ©΄ for y in range(1,10):이 식에 F9 λˆ„λ₯Έλ‹€μŒμ— μ‹€ν–‰(F5)ν•œ ν›„, F10을 κ³„μ†ν•΄μ„œ 눌러주면

λΉ¨κ°„ 점이 μƒκΈ°λ©΄μ„œ 4~5λ²ˆμ„ μ™”λ‹€ κ°”λ‹€ν•˜λ©΄μ„œ

2 x 1 = 2
2 x 2 = 4
2 x 3 = 6

μ£Όλ₯΄λ₯΅ λ‚˜μ˜΅λ‹ˆλ‹€~~~

 

νŒŒμ΄μ¬μ— λŒ€ν•œ κΈ°λ³Έ 지식도 없이 λ°”λ‘œ 코딩을 μ‹€ν–‰ν•˜λ €κ³  ν•˜λ‹ˆκΉŒ μ΄ν•΄ν•œλ‹€κ³  어렀움이 λ§Žμ•˜λŠ”λ° λ¬΄μž‘μ • ν•œλ²ˆ μ‹œλ„ν•΄λ³΄λŠ” 것도 μž¬λ―ΈλŠ” μžˆμ—ˆλ„€μš”. μ–Έμ  κ°€ 기초적인 지식듀을 λ°°μ›Œμ„œ 주제λ₯Ό λ˜μ§€λ©΄ λ°”λ‘œ μ½”λ”© ν•΄λ³΄λŠ” μ‹€λ ₯ 가지길 λ°”λΌλ©΄μ„œ μ˜€λŠ˜μ€ μ•ˆλ…• :)

728x90
λ°˜μ‘ν˜•

+ Recent posts