λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μ–Έμ–΄/Python 기초

파이썬 문법 3

by 제룽 2023. 7. 20.
728x90
λ°˜μ‘ν˜•

2022. 1. 12

1. ν•¨μˆ˜μ˜ μ’…λ₯˜

 

@ λ‚΄μž₯ν•¨μˆ˜

@ λͺ¨λ“ˆν•¨μˆ˜

@ μ‚¬μš©μžμ •μ˜ν•¨μˆ˜

@ 무λͺ…ν•¨μˆ˜

 

 

1-1) λ‚΄μž₯ν•¨μˆ˜

-> 파이썬 μ•ˆμ— λ“€μ–΄μžˆλŠ” ν•¨μˆ˜λΌκ³  ν•  수 μžˆλ‹€.

κ·Έλƒ₯ ν•¨μˆ˜μ½”λ“œ λ°”λ‘œ μ“°λ©΄ 됨.

ex) abs()

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

사진 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.

*λ‚΄μž₯ν•¨μˆ˜

## β˜…β˜…β˜… map(f, iterable) : μž…λ ₯ 받은 μžλ£Œν˜•μ˜ 각 μš”μ†Œλ₯Ό ν•¨μˆ˜ f κ°€ μˆ˜ν–‰ν•œ κ²°κ³Όλ₯Ό λ¬Άμ–΄μ„œ λŒλ €μ£ΌλŠ” ν•¨μˆ˜ β˜…β˜…β˜…

## list ν•¨μˆ˜λž‘ 많이 씀!!

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

사진 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.

 

1-2) λͺ¨λ“ˆν•¨μˆ˜

 

Pandas : 데이터 μ‘°μž‘ 및 뢄석을 μœ„ν•΄ Python ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ μž‘μ„±λœ μ†Œν”„νŠΈμ›¨μ–΄ 라이브러리

NumPy : ν–‰λ ¬μ΄λ‚˜ λŒ€κ·œλͺ¨ 닀차원 배열을 μ‰½κ²Œ 처리 ν•  수 μžˆλ„λ‘ μ§€μ›ν•˜λŠ” 파이썬 의 라이브러리

Matplotlib : κ·Έλž˜ν”„λ₯Ό κ·Έλ¦¬κ±°λ‚˜ μ‹œκ°ν™”ν•˜λŠ” 데 ν•„μš”ν•œ ν’λΆ€ν•œ κΈ°λŠ₯을 가지고 μžˆλŠ” 라이브러리

Scikit-Learn : ν˜„μ‘΄ν•˜λŠ” λŒ€λΆ€λΆ„μ˜ λ¨Έμ‹ λŸ¬λ‹ μ•Œκ³ λ¦¬μ¦˜μ΄ κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” 파이썬 λ¨Έμ‹  λŸ¬λ‹ 라이브러리

Tensorflow : κ΅¬κΈ€μ—μ„œ κ°œλ°œν•œ 파이썬 λ”₯λŸ¬λ‹ μ˜€ν”ˆμ†ŒμŠ€ 라이브러리

Keras : Tensorflow μœ„μ—μ„œ λ™μž‘ν•˜λŠ” μ˜€ν”ˆμ†ŒμŠ€ 신경망 라이브러리

Pytorch : νŽ˜μ΄μŠ€λΆμ—μ„œ κ°œλ°œν•œ 파이썬 λ”₯λŸ¬λ‹ μ˜€ν”ˆμ†ŒμŠ€ 라이브러리

 

* λͺ¨λ“ˆ λΆˆλŸ¬μ˜€λŠ” 4가지 방법

@ import λͺ¨λ“ˆλͺ…

ex) import mymath

mymath.add(1,2) + mymath.sub(1,2)

 

@ import [λͺ¨λ“ˆλͺ…] as [별칭]

ex) import mymath as m

m.add(1,2) + m.sub(1,2)

 

@ from [λͺ¨λ“ˆλͺ…] import *

from mymath import *

add(1,2) + sub(1,2)

 

@ from [λͺ¨λ“ˆλͺ…] import [ν•¨μˆ˜λͺ…]

from mymath import add, sub

add(1,2) + sub(1,2)

 

1-3) μ‚¬μš©μžμ •μ˜ν•¨μˆ˜

 

def ν•¨μˆ˜μ΄λ¦„(인자):

κ³Όμ •

κ³Όμ •

return κ°’ λ°˜ν™˜

 

1-4) 무λͺ…ν•¨μˆ˜

 

lambda ν•¨μˆ˜

: μΌνšŒμ„± ν•¨μˆ˜

 

-> ν•¨μˆ˜μ΄λ¦„ = lambda 인자 : μˆ˜μ‹

function = lambda x, y : x + y

function(10, 20)

 

*쑰건문 μ‚¬μš©ν•˜κ³  싢을 λ•Œ

 

lambda λ³€μˆ˜ : 쑰건문1 λ§žμ„λ•Œ μ‹€ν–‰λ¬Έ1 if 쑰건문1 else 쑰건문1 ν‹€λ¦΄λ•Œ μ‹€ν–‰λ¬Έ

##이 λ•Œ elifλŠ” μ‚¬μš©μ•ˆν•¨.

ex) list(map(lambda x: str(x) if x%3==0 else x, my_list))

 

2. λ¬Έμžμ—΄ formatting

1. % μ„œμ‹

2. format λ©”μ†Œλ“œ

3. f-string

 

2-1) % μ„œμ‹

 

: %μžλ£Œν˜•’ %κ°’ μžλ£Œν˜•μ΄ λ§žμ§€ μ•ŠμœΌλ©΄ μ—λŸ¬κ°€ λ‚œλ‹€. λ¬Έμžμ—΄μ— 숫자, λ¬Έμžμ—΄μ„ λŒ€μž…ν•  수 있고, %d %f %s 등이 주둜 μ‚¬μš©λœλ‹€. μ½”λ“œκ°€ λ³΅μž‘ν•˜κ³  κΈΈμ–΄μ§ˆμˆ˜λ‘ 지저뢄해 보이기 λ•Œλ¬Έμ— ν˜„μž¬λŠ” 많이 μ‚¬μš©λ˜μ§€ μ•ŠλŠ”λ‹€.

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

사진 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.

2-2) format λ©”μ†Œλ“œ

 

ex) '제 이름은 {}이고, λ‚˜μ΄λŠ” {}μž…λ‹ˆλ‹€.'.format('김지은', '21')

 

2-3) f-string

: 파이썬 3.6버전 μ΄μƒμ—μ„œ μ§€μ›ν•˜λŠ” μƒˆλ‘œμš΄ λ¬Έμžμ—΄ ν¬λ§€νŒ… 방법이닀.

λ¬Έμžμ—΄ μ•žμ— `f`λ₯Ό 뢙이면 λœλ‹€.

 

ex)

age=21

f'μ €λŠ” μ§€κΈˆ {age}살이고, 10λ…„ λ’€μ—” {age+10}살이 λ©λ‹ˆλ‹€.'

 

3. λ¬Έμžμ—΄ method

 

3-1) join

: str을 κ΅¬λΆ„μ μœΌλ‘œ list의 μ›μ†Œλ“€μ„ string(λ¬Έμžμ—΄)으둜 합쳐쀀닀.

ex)

",".join('abcd')

> 'a,b,c,d'

 

3-2) split

: string을 κΈ°μ€€μœΌλ‘œ str을 λ‚˜λˆ μ„œ list둜 λ°”κΏ”μ€€λ‹€.

 

* κ΄„ν˜Έ μ•ˆμ— 아무 값도 λ„£μ–΄ 주지 μ•ŠμœΌλ©΄ `곡백(슀페이슀, νƒ­, μ—”ν„° λ“±)`을 κΈ°μ€€μœΌλ‘œ λ¬Έμžμ—΄μ„ λ‚˜λˆ„μ–΄ μ€€λ‹€.

ex)

s = "Life is too short"

s.split()

> ['Life', 'is', 'too', 'short']

 

3-3) replace

: str.replace(old, new, *count)

 

ex)

s = "aaa-bbb-ccc"

> s.replace('a', 'x', 2) #aλ₯Ό x둜 λ°”κΎΈκ³  싀행은 2번만 λ°”κΎΈκ² λ‹€.

 

3-4) in, not in

* λ¬Έμžμ—΄, 리슀트, νŠœν”Œλ‘œλ„ μž…λ ₯이 κ°€λŠ₯!

 

: `in`을 μ‚¬μš©ν•΄ λ¬Έμžμ—΄ μ•ˆμ— ν•΄λ‹Ή κΈ€μžκ°€ ν¬ν•¨λ˜μ—ˆλŠ”μ§€ 확인할 수 μžˆλ‹€.

`not in`을 μ‚¬μš©ν•΄ λ°˜λŒ€λ‘œ ν•΄λ‹Ή κΈ€μžκ°€ μ—†λŠ”μ§€ 확인할 수 μžˆλ‹€.

 

ex)

#λ¬Έμžμ—΄

'a' in 'abc'

True

 

#νŠœν”Œ

'a' not in ('a', 'b', 'c')

False

 

---------------------3μ£Όμ°¨ ν”Όλ“œλ°±-----------------------

 

1.

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

사진 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.

λ©˜ν†  였빠 ν”Όλ“œλ°±

 

κ²°κ³Όκ°’μœΌλ‘œ None이 λ‚˜μ˜¨κ±΄ μ•ˆμ—λ‹€κ°€ print()ν•¨μˆ˜λ₯Ό μ¨μ„œ 그래 print 없이 κ·Έλƒ₯ 'A'라고 μ“°λ©΄ 됨!

 

print()에 λŒ€ν•΄μ„œ 많이 ν—·κ°ˆλ¦¬λŠ” 것 같은데

print()λŠ” 였직 좜λ ₯에 νŠΉν™”λœ ν•¨μˆ˜μ•Ό κ·Έλ ‡κΈ° λ•Œλ¬Έμ— 값을 지정할 λ•ŒλŠ” μ‚¬μš©ν•˜λ©΄ μ•ˆλ¨!!!

 

2.

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

sum의 μœ„μΉ˜ μ€‘μš”!

 

 

map같은 경우 리슀트 μ•ˆμ— μžˆλŠ” μ›μ†Œμ—κ²Œ λͺ¨λ“  ν•¨μˆ˜λ₯Ό μ μš©μ‹œμΌœμ€˜

 

그렇기에 map μ•ˆμ— sum을 μ‚¬μš©ν•˜κ²Œ λœλ‹€λ©΄ sum([a,b,c])κ°€ μ•„λ‹Œ ->[sum(a),sum(b),sum(c)]κ°€ 되기 λ•Œλ¬Έμ— 였λ₯˜κ°€ λ°œμƒν•˜κ²Œ λ©λ‹ˆλ‹€!

 

++ μ€‘μš” ++

β˜… map μ•ˆμ— sum의 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ£Όλ©΄ 각 λ¦¬μŠ€νŠΈμ— 적용이 됨!! β˜…

 

사싀 값이 μ•ˆλ‚˜μ˜€λŠ” κ°€μž₯ 큰 μ΄μœ λŠ” dis_(x,y)ν•¨μˆ˜λ₯Ό μ •μ˜ν•΄λ†“κ³  ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•˜μ§€ μ•Šμ€ μ΄μœ κ°€ κ°€μž₯ 큼!

 

β˜…return κ°’ μ •ν•΄μ£Όκ³ , dis(a,b) 처럼 μ–΄λ–€ 값을 넣을 건지λ₯Ό μ¨μ€˜μ•Ό 싀행됨. β˜…

 

3.

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

사진 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

사진 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.

개인적으둜 μ΄ν•΄ν•˜λŠ”λ° μ’€ νž˜λ“€μ—ˆλ˜ λ¬Έμ œμ˜€λ‹€.

이해 뢀뢄이라기 보닀도 걍 λ³΅μž‘ν–ˆμŒ.

 

4.

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

사진 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.

5.

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

사진 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.

λ‹€μ‹œ ν’€μ–΄λ³΄μ„Έμš” ν•˜λ©΄ λ‹€μ‹œ λͺ»ν’€ 것 같은..γ…‹.γ…‹...

μ–΄λ ΅λ„€μš”

 

6.

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

사진 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.

이게 λ²„λΈ”μ†”νŠΈκ°€ for i in range(len(lst)-1)이 ν•œλ°”ν€΄ μ§€λ‚˜κ°€λ©΄ 무슨 νŠΉμ„±μ΄ μžˆλƒλ©΄

 

[2, 5, 4, 3, 1]

[2, 5, 4, 3, 1]

[2, 4, 5, 3, 1]

[2, 4, 3, 5, 1]

[2, 4, 3, 1, 5]

예λ₯Ό λ“€μ–΄ ν•œλ°”ν€΄λ₯Ό λŒμž–μ•„?

ν•œλ°”ν€΄λ₯Ό 돌 λ•Œλ§ˆλ‹€ 제일 큰 수λ₯Ό 맨 λ’€λ‘œ λ³΄λ‚΄μ£Όκ²Œ 됨!

κ·Έλ ‡κΈ° λ•Œλ¬Έμ— ν•œ 바퀴 돌 λ•Œλ§ˆλ‹€ λ’€μ—μ„œ λΆ€ν„° ν•œ μžλ¦¬μ”©μ€ 검사λ₯Ό ν•΄μ€„ν•„μš”κ°€ μ—†λŠ”κ±°μ•Ό

 

κ·Έλž˜μ„œ -iλ₯Ό ν•΄μ€λ‹ˆλ‹€

 

ν•œλ°”ν€΄λ₯Ό λŒλ©΄μ„œ 제일 큰 수λ₯Ό 맨 뒀에 넣어쀬기 λ•Œλ¬Έμ— 맨 λ’€λŠ” 검사λ₯Ό μ•ˆ ν•˜λŠ” 것!

 

ex) 두바퀴 돌면 맨 λ’€ λ‘μžλ¦¬λŠ” ν™•μ • μ§€μ—ˆμœΌλ‹ˆκΉŒ

λμ—μ„œ 2칸은 κ²€μ‚¬ν•„μš”x

 

-> μš”μ•½:

리슀트 μ•ˆμ— μ›μ†Œκ°€ 5개라면 4번만 비ꡐ해주면 됨. κ·Έλž˜μ„œ -1을 ν•˜λ©΄ λ˜λŠ”κ±°κ³ ,

ν•œλ°”ν€΄ 돌면 κ°€μž₯ 큰 μˆ«μžκ°€ 맨 λ’€λ‘œ κ°€λ‹ˆκΉ 3번만 λŒλ €μ„œ κ²€μ‚¬ν•˜λ©΄ λ˜λŠ”κ±°μž–μ•„? κ·Έλž˜μ„œ -iλ²ˆμ„ 또 λΉΌμ£ΌλŠ”κ±°!

 

7.

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

사진 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.

λŒ€ν‘œμ‚¬μ§„ μ‚­μ œ

사진 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.

μƒˆλ‘œ μ•Œκ²Œ 됝 점:

 

lambda x에 λŒ€ν•œ 식:

sorted(array[i-1:j])[k-1]

 

이거λ₯Ό λ‚œ commands에 μ μš©μ‹œν‚¬κ±°μ•Ό!

 

μ•žμ˜ 식을 commands 자리 섀정을 ν•˜κΈ° μœ„ν•΄ λ΄€λ”λ‹ˆ i= x의 0번째 자리이고, j= x의 첫번째 자리,k= x의 2번째 자리

 

λ”°λΌμ„œ x[0]/x[i-1]/x[2]둜

λ°”κΏ”μ€˜μ•Όλ¨@@@!!!

 

 

728x90
λ°˜μ‘ν˜•

'μ–Έμ–΄ > Python 기초' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

파이썬 문법 6  (0) 2023.07.20
파이썬 문법 5  (0) 2023.07.20
파이썬 문법4  (0) 2023.07.20
파이썬 문법 2  (0) 2023.07.20
파이썬 문법 1  (0) 2023.07.20