파이썬 문법 뽀개기(심화)

jini·2022년 11월 13일
0

Sparta Coding🦸‍♂

목록 보기
4/8
post-thumbnail

심화수업은,
나중에 코딩의 고수가 되었을 때!
사용할 코드를 훑는다고 생각하자


튜플,집합

1.튜플 (tuple)

리스트랑 똑~같이 생겼는데 불변형!

a = (1,2,3)

print(a[0])

리스트는 추가와 변형이 가능하지만, 튜플은 불가능!

딕셔너리 대신리스트와 튜플딕셔너리'비슷하게' 만들어 사용해야 할 때 많이 쓰임!

2.집합 (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} 만 출력됨

교집합 / 합집합 / 차집합

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) #교집합
print(a_set | b_set) #합집합
print(a_set - b_set) #차집합

교집합>{'화학2', '체육', '수학1'}
합집합>{'물리2', '수학1', '미술', '국어', '화학1', '음악', '화학2', '물리1', '체육'}
차집합>{'음악', '물리2', '국어', '화학1'}


f-string

int() - 숫자로 바꿔주는 것
str() - 문자로 바꿔주는 것

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}점입니다")

print(name+"는 "+score+"점 입니다") 도 가능하지만 더 간결하게 f-string을 사용하여 나타냄!


예외처리

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

for person in people:
    if person['age'] > 20:
        print (person['name'])

만약, bobby가 age를 갖고 있지 않다면? - 중간에 데이터가 없어서 에러가 난다.

이 경우는,
try except 구문을 이용하여 에러를 넘긴다.

for person in people:
   try:
       if person['age'] > 20:
           print (person['name'])
   except:
       
       print(person['name'] ,'에러남')

그 결과, 값이 아래처럼 찍힌다.

carry
ben
bobby 에러남
red
queen

실제 프로젝트 남용하는 것은 금물! 어디서 에러가 났는지 알 수 없어요 💀


파일 불러오기

main_test.pymain_func.py 2개의 파일

main_test.py

from main_func import *

say_hi()

main_func.py

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

Run출력시> 안녕!

main_func.py의 파일에 있는 함수를 가져와서 쓴다. 전체(*)가 아니고 부분적으로만 가져오기도 함.


한줄의 마법

if문 - 삼항연산자

num = 3

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

print(f"{num}은 {result}입니다.")

이 코드를 간단히 만드는 것.

num = 3

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

print(f"{num}은 {result}입니다.")

💡 (참일 때 값) if (조건) else (거짓일 때 값)으로 항이 3개라 삼항 연산자

for문 - 한방에 써버리기

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

b_list = []  # 비어있는 b_list를 하나 만들어준다
for a in a_list:  # a_list를 반복해서 돌릴떄,
    b_list.append(a * 2)  # b_list에 *2곱한값을 추가해준다.

print(b_list) #[2, 6, 4, 10, 2, 4]

이 코드도 간단히 만들어주자!

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

b_list = [a * 2 for a in a_list]

print(b_list)  # [2, 6, 4, 10, 2, 4]

🚨아래부터는 조-금 어려울 수 있으니, 가볍게 나중을 위해 들어둔다 라고 생각해두세요!


map부터는 수업 1번 더 듣고 정리하기

map, filter, lambda식


함수 심화


클래스

profile
🌱

0개의 댓글