본문 바로가기
개발 일지

[ 스파르타 / Python ] 심화 문법

by CODESIGN 2022. 11. 8.

튜플


순서가 있는 자료형이지만 불변형이다. 변경이나 추가가 불가능하다.

student_a = ('물리2','국어','수학1')
print(stduent_a) # ('물리2','국어','수학1')

studnet_a[0] = '수학2'
print(student_a) # 에러가 뜬다

 

 

집합


중복을 제거해준다.

a = [1,1,2,2,3,3]
a_set = set(a)
print(a_set) # {1, 2, 3}

 

교집합


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

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

print(a_set & b_set) # {2, 3}

 

합집합


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

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

print(a_set | b_set) # {1, 2, 3, 4}

 

차집합


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

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

print(a_set - b_set) # {1}

 

 

f-string


아래의 코드와 같이 print에 'f'를 써준다.

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

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

 

 

try-except


아래의 코드는 에러가 난다. 그 이유는 people의 마지막에 age가 없기 때문이다. 이를 해결하기 위해서 try-except를 쓸 수 있다.

people = [
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen'}
]

for person in people:
	if (person['age'] > 20:
    	print(person['name']) # 에러 메시지가 뜬다

 

people = [
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen'}
]

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

# bobby
# red
# 에러입니다

 

 

파일 불러오기


main_func.py

def say_hi():
	print('안녕!')
    
def say_hi_to(name):
	print(f'{name}님 안녕하세요!')

 

main_test.py

from main_func import * #main_func.py에 있는 함수들을 다 가져온다

say_hi()
say_hi_to('Sam')

# 안녕!
# Sam님 안녕하세요!

 

 

한줄로 코드 쓰기


a_list = [1,3,4,1]

# 늘려 쓴 방법
b_list = []
for a in a_list:
	b_list.append(a*2)

# 위의 코드 한줄로 쓰는 방법
b_list = [a*2 for a in a_list]

print(b_list) # [2, 6, 8, 2]

 

 

댓글