๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“๐Ÿ’ช/Python

ํŒŒ์ด์ฌ ๋ฌธ๋ฒ• ๊ธฐ์ดˆ 1์ฃผ์ฐจ(์‹ฌํ™”)

by ์ˆ˜์จ”์•™ 2022. 9. 1.

ํŠœํ”Œ(tuple)

 

ํŠœํ”Œ์€ ๋ฆฌ์ŠคํŠธ์™€ ๋น„์Šทํ•˜์ง€๋งŒ ๋ฐ”๊ฟ”์ง€์ง€ ์•Š๋Š” ๋ถˆ๋ณ€์ธ ์ž๋ฃŒํ˜•!

a_dict = [('bob','24'),('john','29'),('smith','30')]

 

 

์ง‘ํ•ฉ(set)

 

์ค‘๋ณต์ด ์ œ๊ฑฐ๋˜๋Š” ์ง‘ํ•ฉ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•!

a = [1,2,3,4,5,3,4,2,1,2,4,2,3,1,4,1,5,1]

a_set = set(a)

print(a_set)
# {1, 2, 3, 4, 5}
a = ['์‚ฌ๊ณผ','๊ฐ','์ˆ˜๋ฐ•','์ฐธ์™ธ','๋”ธ๊ธฐ']
b = ['์‚ฌ๊ณผ','๋ฉœ๋ก ','์ฒญํฌ๋„','ํ† ๋งˆํ† ','์ฐธ์™ธ']

a_set = set(a)
b_set = set(b)

print(a_set & b_set)    # ๊ต์ง‘ํ•ฉ {'์ฐธ์™ธ', '์‚ฌ๊ณผ'}
print(a_set | b_set)    # ํ•ฉ์ง‘ํ•ฉ {'์‚ฌ๊ณผ', '๋”ธ๊ธฐ', '๋ฉœ๋ก ', 'ํ† ๋งˆํ† ', '์ฒญํฌ๋„', '๊ฐ', '์ˆ˜๋ฐ•', '์ฐธ์™ธ'}
print(a_set - b_set)    # ์ฐจ์ง‘ํ•ฉ {'๊ฐ', '๋”ธ๊ธฐ', '์ˆ˜๋ฐ•'}

 


 

f-string

 

scores = [
    {'name':'์˜์ˆ˜','score':70},
    {'name':'์˜ํฌ','score':65},
    {'name':'๊ธฐ์ฐฌ','score':75},
    {'name':'ํฌ์ˆ˜','score':23},
    {'name':'์„œ๊ฒฝ','score':99},
    {'name':'๋ฏธ์ฃผ','score':100},
    {'name':'๋ณ‘ํƒœ','score':32}
]


for s in scores:
    name = s['name']
    score = s['score']
    print(name, score)

    # ์˜์ˆ˜ 70
    # ์˜ํฌ 65
    # ๊ธฐ์ฐฌ 75
    # ํฌ์ˆ˜ 23
    # ์„œ๊ฒฝ 99
    # ๋ฏธ์ฃผ 100
    # ๋ณ‘ํƒœ 32


for s in scores:
    name = s['name']
    score = str(s['score'])
    print(name+'์˜ ์ ์ˆ˜๋Š” '+score+'์ž…๋‹ˆ๋‹ค')

    # ์˜์ˆ˜์˜ ์ ์ˆ˜๋Š” 70์ž…๋‹ˆ๋‹ค
    # ์˜ํฌ์˜ ์ ์ˆ˜๋Š” 65์ž…๋‹ˆ๋‹ค
    # ๊ธฐ์ฐฌ์˜ ์ ์ˆ˜๋Š” 75์ž…๋‹ˆ๋‹ค
    # ํฌ์ˆ˜์˜ ์ ์ˆ˜๋Š” 23์ž…๋‹ˆ๋‹ค
    # ์„œ๊ฒฝ์˜ ์ ์ˆ˜๋Š” 99์ž…๋‹ˆ๋‹ค
    # ๋ฏธ์ฃผ์˜ ์ ์ˆ˜๋Š” 100์ž…๋‹ˆ๋‹ค
    # ๋ณ‘ํƒœ์˜ ์ ์ˆ˜๋Š” 32์ž…๋‹ˆ๋‹ค
    
    
    
for s in scores:
    name = s['name']
    score = str(s['score'])
    print(f'{name}์€ {score}์  ์ž…๋‹ˆ๋‹ค')
    
    # ์˜์ˆ˜์€ 70์  ์ž…๋‹ˆ๋‹ค
    # ์˜ํฌ์€ 65์  ์ž…๋‹ˆ๋‹ค
    # ๊ธฐ์ฐฌ์€ 75์  ์ž…๋‹ˆ๋‹ค
    # ํฌ์ˆ˜์€ 23์  ์ž…๋‹ˆ๋‹ค
    # ์„œ๊ฒฝ์€ 99์  ์ž…๋‹ˆ๋‹ค
    # ๋ฏธ์ฃผ์€ 100์  ์ž…๋‹ˆ๋‹ค
    # ๋ณ‘ํƒœ์€ 32์  ์ž…๋‹ˆ๋‹ค

 

์˜ˆ์™ธ์ฒ˜๋ฆฌ

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby'},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

for person in people:
    try:
        if person['age'] > 20:
            print(person['name'])
    except:
        name = person['name']
        print(f'{name} - ์—๋Ÿฌ')

    # carry
    # ben
    # bobby - ์—๋Ÿฌ
    # red
    # queen

 

 


ํŒŒ์ด์ฌ ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

 

main_test.py ์™€ main_func.py ํŒŒ์ผ์ด 2๊ฐœ์ผ๋•Œ

 

main_func.py์— ํ•จ์ˆ˜๋ฅผ ์ ์–ด๋‘๊ณ 

######main_func.py########

def say_hi():
    print('์•ˆ๋…•!')

def say_hi_to(name):
    print(f'{name}๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”')

main_test.py๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด!!

#########main_func.py###############

from main_func import *		# ๋‹ค ์•ˆ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ถ์œผ๋ฉด * ๋Œ€์‹  say_hi ๋กœ๋งŒ ์ ์œผ๋ฉด ์ €๊ฒƒ๋งŒ ๋ถˆ๋Ÿฌ์™€์ง

say_hi()
# ์•ˆ๋…•!

say_hi_to('์ˆ˜์ธ')
# ์ˆ˜์ธ๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”

 


 

ํ•œ์ค„์˜ ๋งˆ๋ฒ•!

 

if

num = 3

# if num % 2 == 0:
#     result = "์ง์ˆ˜"
# else:
#     result = "ํ™€์ˆ˜"
# ๋ผ๊ณ  ์“ธ ์ˆ˜ ์žˆ์ง€๋งŒ ์•„๋ž˜์ฒ˜๋Ÿผ ํ•œ์ค„๋กœ ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค!

result = ("์ง์ˆ˜" if num%2 == 0 else "ํ™€์ˆ˜")

print(f"{num}์€ {result}์ž…๋‹ˆ๋‹ค.")

(์ฐธ์ผ ๋•Œ ๊ฐ’) if (์กฐ๊ฑด) else (๊ฑฐ์ง“์ผ ๋•Œ ๊ฐ’)์œผ๋กœ ํ•ญ์ด 3๊ฐœ๋ผ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž

 

 

for

 

๋ฆฌ์ŠคํŠธ ๊ฐ ์š”์†Œ์— 2๋ฅผ ๊ณฑํ•œ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ!

a_list  = [1, 3, 2, 5, 1, 2]

# b_list = []
# for a in a_list:
#     b_list.append(a*2)
# ์ด๋ ‡๊ฒŒ ์“ธ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์•„๋ž˜์ฒ˜๋Ÿผ ํ•œ์ค„๋กœ ์“ธ์ˆ˜๋„ ์žˆ๋‹ค!!
                  
b_list = [a*2 for a in a_list]


print(b_list)

 


map

 

์ด๊ฑด ์ข€ ์•„๋ฆฌ์†ก~ ํ•ด์„œ ์ฐพ์•„๋ดค๋Š”๋ฐ

์ •๋ฆฌ๊ฐ€ ์•„์ฃผ ์ž˜ ๋˜์–ด์žˆ๋Š” ์ž๋ฃŒ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค!

์ด๊ฑฐ ๋ณด๋‹ˆ๊นŒ ์ดํ•ด๊ฐ€ ์™์™!!!

 

 

map ํ•จ์ˆ˜์˜ ๋ชจ์–‘์€

map(function, iterable)

์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ๋Š” ํ•จ์ˆ˜๊ฐ€ ์˜ค๊ณ 
๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ๋Š” ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒํ˜•(๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ ๋“ฑ)

 

# ๋ฆฌ์ŠคํŠธ์— ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ๋”ํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—…
myList = [1, 2, 3, 4, 5]

# for ๋ฐ˜๋ณต๋ฌธ ์ด์šฉ
result1 = []
for val in myList:
    result1.append(val + 1)

print(f'result1 : {result1}')


# map ํ•จ์ˆ˜ ์ด์šฉ
def add_one(n):
    return n + 1
result2 = list(map(add_one, myList))  # map๋ฐ˜ํ™˜์„ list ๋กœ ๋ณ€ํ™˜
print(f'result2 : {result2}')


# result1 : [2 ,3 ,4 ,5, 6]
# result2 : [2 ,3 ,4 ,5, 6]

 

for ๊ณผ map์˜ ์ฐจ์ด๊ฐ€ ๋ญ์ง€ ํ–ˆ๋Š”๋ฐ ์ด๋Ÿฐ๊ฑฐ์˜€๊ตฐ!!!!

 

์ถœ์ฒ˜: https://blockdmask.tistory.com/531

 

[python] ํŒŒ์ด์ฌ map ํ•จ์ˆ˜ ์‚ฌ์šฉ๋ฒ•๊ณผ ์˜ˆ์ œ

์•ˆ๋…•ํ•˜์„ธ์š”. BlockDMask์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ํŒŒ์ด์ฌ map ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. <๋ชฉ์ฐจ> 1. ํŒŒ์ด์ฌ map ํ•จ์ˆ˜ ์„ค๋ช…๊ณผ ์‚ฌ์šฉ๋ฒ• 2. ํŒŒ์ด์ฌ map ํ•จ์ˆ˜ ์˜ˆ์ œ 1. map ํ•จ์ˆ˜ ์„ค๋ช…๊ณผ ์‚ฌ์šฉ๋ฒ• 1-1) ํŒŒ์ด์ฌ ๋งต ํ•จ์ˆ˜

blockdmask.tistory.com

 

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]
def check_adult(person):
    if person['age'] > 20:
        return '์„ฑ์ธ'
    else:
        return '์ฒญ์†Œ๋…„'

result = map(check_adult, people)
print(list(result))

# ['์ฒญ์†Œ๋…„', '์„ฑ์ธ', '์ฒญ์†Œ๋…„', '์ฒญ์†Œ๋…„', '์„ฑ์ธ', '์„ฑ์ธ', '์„ฑ์ธ', '์„ฑ์ธ']
people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]
def check_adult(person):
    return '์„ฑ์ธ' if person['age'] > 20 else '์ฒญ์†Œ๋…„'

result = map(check_adult, people)
print(list(result))

#['์ฒญ์†Œ๋…„', '์„ฑ์ธ', '์ฒญ์†Œ๋…„', '์ฒญ์†Œ๋…„', '์„ฑ์ธ', '์„ฑ์ธ', '์„ฑ์ธ', '์„ฑ์ธ']

 

filter

๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ๋“ค ์ค‘ ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒƒ๋งŒ ๋ฝ‘๊ธฐ!

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]
result = filter(lambda x: x['age'] > 20, people)
print(list(result))

 


 

ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜!

 

์ง์ ‘ ์“ธ ์ผ์€ ๊ฑฐ์˜ ์—†๋‹ค!

def cal(a, b):
    return a + 2 * b

print(cal(3, 5))	#13
print(cal(5, 3))	#11
print(cal(a=3, b=5))	#13
print(cal(b=5, a=3))	#13

 

def cal2(a, b=3):
    return a + 2 * b

print(cal2(4))		#10
print(cal2(4, 2))	#8
print(cal2(a=6))	#12
print(cal2(a=1, b=7))	#15

 

def call_names(*args):
    for name in args:
        print(f'{name}์•ผ ๋ฐฅ๋จน์–ด๋ผ~')

call_names('์ฒ ์ˆ˜','์˜์ˆ˜','ํฌ์žฌ')

# ์ฒ ์ˆ˜์•ผ ๋ฐฅ๋จน์–ด๋ผ~
# ์˜์ˆ˜์•ผ ๋ฐฅ๋จน์–ด๋ผ~
# ํฌ์žฌ์•ผ ๋ฐฅ๋จน์–ด๋ผ~
def get_kwargs(**kwargs):
    print(kwargs)

get_kwargs(name='bob')
get_kwargs(name='john', age='27')

#{'name': 'bob'}
# {'name': 'john', 'age': '27'}

 


ํด๋ž˜์Šค(Class)

 

์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š”์ง€๋ฅผ ์•„๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค!

class Monster():
    hp = 100
    alive = True

    def damage(self, attack):
        self.hp = self.hp - attack
        if self.hp < 0:
            self.alive = False

    def status_check(self):
        if self.alive:
            print('์‚ด์•„์žˆ๋‹ค')
        else:
            print('์ฃฝ์—ˆ๋‹ค')

m = Monster()
m.damage(120)

m2 = Monster()
m2.damage(90)

m.status_check()
m2.status_check()
728x90

๋Œ“๊ธ€