본문 바로가기
TIL

[TIL]2023.03.21 / 파이썬 기초 정리

by kming 2023. 4. 29.

목표

 

파이썬 기초 중 조금 더 심화 된 내용 공부하기


참고자료


내용

 

 

약간 심화 문법!!


tuple(튜플)

:리스트와 비슷하지만 불변인 자료형

  • 순서가 존재함
  • ()괄호로 닫음
  • 불변형(추가, 변경 다 금지)
    a = ('사과','감','배')
    a[1] = '수박'
    print(a[1])
    결과: TypeError: 'tuple' object does not support item assignment
    (불변형이라 값을 바꾸려고하면 에러가 뜸)

set(집합)

:집합!

  • 중복이 제거됨
    a = [1,5,3,8,4,5,8,4,3,8,4,6,2]
    a_set = set(a)
    print(a_set)
    결과: {1, 2, 3, 4, 5, 6, 8}
  • 교집합/합집합/차집합도 구할 수 있음
    a = ['포도','사과','감','배','수박']
    b = ['포도','참외','감','귤','수박']
    a_set = set(a)
    b_set = set(b)
    1) print(a_set & b_set) #교집합
    2) print(a_set | b_set) #합집합
    3) print(a_set - b_set) #차집합(a한텐 있는데 b한텐 없는 것들 a-b)
    결과:
    1) {'수박', '포도', '감'}
    2) {'수박', '포도', '참외', '배', '사과', '귤', '감'}
    3) {'배', '사과'}

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+'의 점수는 '+str(score)+'점입니다.') #score는 숫자라 문자로 바꿔주어야함
    print(f'{name}의 점수는 {score}점입니다.') #-fstring 형식
결과:
영수의 점수는 70점입니다.
영희의 점수는 65점입니다.
기찬의 점수는 75점입니다.
희수의 점수는 23점입니다.
서경의 점수는 99점입니다.
미주의 점수는 100점입니다.
병태의 점수는 32점입니다.

예외처리 try-except문

:에러가 있어도 건너뛰게 할 수 있는 방법

for person in people:
    try: #얘를 시도해서 에러가나면
        if person['age'] > 20:
            print(person['name'])
    except: #대신 얘를 실행하라
        print(person['name'], '에러입니다') #name을 출력하여 어디서 에러가 난건지 확인 용이
  • 서버에 콜을 하는 경우, 서버가 잘못되어 에러가 발생되었을 수 있는 가능성에 많이 사용
  • 그러나 남용하면 무슨 에러인지 찾기가 어려워지므로 안쓰는걸 권장

파일불러오기

:여러개 파일로 분리하려면 파일불러오기를 해야함


1. main_test.py 뼈대가 되는 파일 / main_func.py 복잡한 함수는 여기에 나눠서 작성했을 경우
2. main_func.py에 만든 함수를 main_test.py에서 불러와 쓰고 싶으면
3. main_test.py에 from main_func import * 를 작성
4. 특정함수만 가지고 오고 싶으면 *대신 함수명()을 작성 from main_func import 함수명()

if 한줄로 줄여쓰기

:위 코드를 아래코드 처럼 한줄로 줄여 쓸 수 있음

num = 3
if num % 2 == 0:
    result = '짝수'
else:
    result = '홀수'
#짝수라고해라 만약에 num을 2로 나눴을때 0이 나오면, 아니면 홀수라고해라
result = ('짝수' if num % 2 == 0 else '홀수')

for 한줄로 줄여쓰기

:위 코드를 아래코드 처럼 한줄로 줄여 쓸 수 있음

a_list = [1,3,2,5,1,2]
b_list = []
for a in a_list:
    b_list.append(a*2)
#a_list 안에있는 a를 돌리는데 그때마다 a*2를 해라 그런다음 리스트로 묶어라
b_list = [a*2 for a in a] 

 


문제 (해결하기 어려웠던 일이나 에러)

튜플

딕셔너리 이해가 어려움


시도 (문제가 생긴 이유와 해결하기 위해 시도해본 것들)

 


해결 (최종적으로 해결이 되었을 때 시도한 것 정리)

 


마무리 (내가 새롭게 알게 된 것이나 짧은 정리)