python 기초 문법 정리

haru·2022년 11월 21일
0

딕셔너리

주의 : 딕셔너리의 요소에는 순서가 없음. 익덱싱 사용 ㄴㄴ

*딕셔너리 안에 다른 딕셔너리 넣기
person = {"name":"Alice", "age": 16, "scores": {"math": 81, "science": 92, "Korean": 84}}

반복문

*리스트에서 짝수 출력 함수

*짝수 요소 출력
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

for num in num_list:
    if num % 2 == 0:
        print(num)       
 *짝수 개수 출력
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

count = 0

for num in num_list:
    if num % 2 == 0:
        count += 1

print(count)

*리스트 안 모든 숫자 더하기

result = 0
for num in num_list:
    result += num

print(result)


print(sum(a_list))

*리스트에서 자연수중 큰 숫자 구하기

result = 0
for num in num_list:
    result += num

print(result)

튜플

리스트와 비슷하지만 불변인 자료형이라 순서 존재, 인덱싱 ㅇㅋ

a = (1,2,3)

print(a[0])

집합(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)

//장점:중복제거

*교집합/합집합/차집합

a = ['사과','감','수박','참외','딸기']
b = ['사과','멜론','청포도','토마토','참외']

print(a & b)  # 교집합
print(a | b)  # 합집합
print(a-b) #차집합(b의 요소와 겹치지 않는 a의 요소)

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

try-except

에러가 있어도 건너 뛰는 예외처리문



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

//20세 이상만 출력한다고 할떄, bobby가 age를 가지고 있지 않다면
데이터 하나가 잘못됬기 떄문에 에러가 날경우 예외처리하는 법

for person in people:
    if person['age'] > 20:
        print (person['name'])
for person in people:
    try:
        if person['age'] > 20:
            print (person['name'])
    except:
        name = person['name']
        print(f'{name} - 에러입니다')

import - 파일 분리

main_test.py

from main_func import *

say_hi()

main_func.py

def say_hi():
	print('안녕!')

삼항 연상자

//조건에 따라 다른값을 변수에 저장하는 경우의 삼항연상자

num = 3

result = "짝수" if num%2 == 0 else "홀수"

print(f"{num}은 {result}입니다.")
//a리스트의 각 요소에 2를 곱한 새로운 리스트를 만드는 경우의 삼항연상자

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

b_list = [a*2 for a in a_list]

print(b_list)

map, lamda ,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}
]
# 조작1
def check_adult(person):
    if person['age'] > 20:
        return '성인'
    else:
        return '청소년'

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



# 조작2
def check_adult(person):
    return '성인' if person['age'] > 20 else '청소년'

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



# 조작3
result = map(lambda person:('성인' if person['age'] > 20 else '청소년'), people)
print(list(result))




# filter : True 인것만 뽑아온다.
result = filter(lambda person: person['age'] > 20, people)
print(list(result))

함수심화

  • 함수에 인수를 넣을 때, 순서 상관 없이 어떤 값을 어떤 매개변수에 넣을지 정하기
def cal(a, b):
    return a + 2 * b

print(cal(3, 5))
print(cal(5, 3))
print(cal(a=3, b=5))
print(cal(b=5, a=3))
  • 특정 매개변수에 디폴트 값을 지정하기
def cal2(a, b=3):
    return a + 2 * b

print(cal2(4))
print(cal2(4, 2))
print(cal2(a=6))
print(cal2(a=1, b=7))
  • (*args) 입력값의 개수를 지정하지 않고 모두 받기
def call_names(*args):
    for name in args:
        print(f'{name}야 밥먹어라~')

call_names('철수','영수','희재')
  • (**kwargs)키워드 인수를 여러 개 받기
def get_kwargs(**kwargs):
    print(kwargs)

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

클래스

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

1개의 댓글

comment-user-thumbnail
2022년 11월 22일

파이썬에 대해서 완벽하게 이해하게 됐어요!

답글 달기