[T.I.L] 221121 - 파이썬 이것저것

권병석·2022년 11월 21일
1

T.I.L (스파르타)

목록 보기
5/22
post-thumbnail

쪼개기

phone = '02-123-4567'
result = phone.split('-')[0]

print(result)

출력값 =
02

추가하기

a_list = [1,8,5,2,9,7,3,0,6,]
a_list.append(99)
print(a_list)

출력값 =
[1, 8, 5, 2, 9, 7, 3, 0, 6, 99]

추가 후 출력

a_dict = {'name':'bob','age':27,'friend':['영희','철수']}

a_dict['height'] = 180

result = 'height' in a_dict

print(result)

출력값 =
True

조건문

money = 1000

if money > 3800:
    print('택시를 타자!')
elif money > 1200:
    print('버스를 타자!')       // elif = else if 같은거임
else:
    print('걸어가자')

출력값 =
걸어가자

반복문 + enumerate

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}
]

for i, person in enumerate(people):   // 순서를 매겨주는 함수 enumerate()
    name = person['name']
    age = person['age']
    print(i + 1, name, age)
    if i > 3:
        break

출력값=
1 bob 20
2 carry 38
3 john 7
4 smith 17
5 ben 27

반복문 예제

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 80, 2, 4]

max = 0

for num in num_list:
    if max < num:
        max = num

print(max)

출력값 =
80

함수 예제

def check_gender(pin):
    gender_checker = pin.split('-')[1][0]
    if int(gender_checker) % 2 == 0:
        print('여자')
    else:
        print('남자')

check_gender('150101-1012345')
check_gender('150101-2012345')
check_gender('150101-4012345')

출력값=
남자
여자
여자

set()은 집합을 구해줌 (중복 제거)

student_a = ['물리2','국어','수학1','음악','화학1','화학2','체육']
student_b = ['물리1','수학1','미술','화학2','체육']


a_set = set(student_a)
b_set = set(student_b)

print(a_set - b_set)

출력값=
{'음악', '화학1', '국어', '물리2'}

f'{}' == JS ${} 같은것들

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 = str(s['score'])
    print(f'{name}의 점수는 {score}점입니다.')

출력값=
영수의 점수는 70점입니다.
영희의 점수는 65점입니다.
기찬의 점수는 75점입니다.
희수의 점수는 23점입니다.
서경의 점수는 99점입니다.
미주의 점수는 100점입니다.
병태의 점수는 32점입니다.

에러가 나도 에러확인시키고 그대로 쭉 진행하는 방법

try, except (하지만 자주쓰면 안됌 break문 같이)

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:
        print(person['name'], '에러입니다')

출력값=
carry
ben
bobby 에러입니다
red
queen

파일 import 하기

main_func.py 파일의 모든것을 import 하고 싶다면 아래 코드

from main_func import *

map 함수

def f(x):
    return x + 5

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

print(list(map(f, numList)))  // numList에 f함수를 적용시켜서 결과물들을 리스트로 만들고 출력

출력값=
[6, 7, 8, 9, 10]

lambda 함수

add = lambda x,y: x+y   // 굳이 함수까지 만들필요 없을때 가끔 쓰임 (코드 짧게 만드려고)
print(add(3,4))

출력값=
7

map, lambda 함수 적용 사례

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 = map(lambda person: '성인' if person['age'] > 20 else '청소년', people)
print(list(result))

출력값=
['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인']

filter 함수 (map과 유사하지만 True인것만 뽑아오기)

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))

출력값=
[{'name': 'carry', 'age': 38}, {'name': 'ben', 'age': 27}, {'name': 'bobby', 'age': 57}, {'name': 'red', 'age': 32}, {'name': 'queen', 'age': 25}]

클래스

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 == True:
            print('살았다')
        else:
            print('죽었다!')

m1 = Monster()
m1.damage(150)
m1.status_check()

m2 = Monster()
m2.damage(90)
m2.status_check()

출력값=
죽었다!
살았다

profile
Back-End 개발자를 꿈꾸는 디제이였던 백수의 TIL 일기장 입니다.

1개의 댓글

comment-user-thumbnail
2022년 11월 29일

영수의 점수는 70점입니다.
영희의 점수는 65점입니다.
기찬의 점수는 75점입니다.
희수의 점수는 23점입니다.
서경의 점수는 99점입니다.
미주의 점수는 100점입니다.
병태의 점수는 32점입니다.

영희 누구냐? 희수 누구냐? 서경이 누구냐? 미주 누구냐?

답글 달기