카테고리 없음
[파이썬 문법기초] 내일배움캠프 AI트랙
lovvepearl
2021. 12. 13. 23:08
가장 기본적인 파이썬 문법의 개념을 짚고 넘어가자!
문법은 변수, 자료형, 함수, 조건문, 반복문으로 크게 다섯가지로 나뉘고
더 나아가 심화개념들도 알아보고자 한다🔥
01. 변수란?
값을 담는 상자.
컴퓨터의 입장에서는 메모리에 담긴 변수를 가리키는 것.
02. 리스트와 딕셔너리
리스트는 순서(index)가 있는 배열.
a = [1, 2, [2, 3], 0]
# a라는 리스트에서 원하는 값 print할때
# 아래와 같이 index번호로 값을 불러옴
print(a[2]) # 출력값 [2, 3]
print(a[2][0]) # 출력값 2
딕셔너리는 key:value 형태의 자료 모음. 순서가 없기 때문에 index 사용할수 없음!
person = {"name":"Bob", "age": 21}
# 딕셔너리에서 key값으로 value값을 얻을 수 있음
print(person["name"])
# 출력값 Bob
03. 함수
반복적으로 사용하는 코드에 이름을 붙여놓은 것.
def bus_fee(age):
if age > 65:
print("무료로 이용하세요.")
return 0
elif age > 20:
print("성인입니다.")
return 1200
else:
print("청소년입니다.")
return 0
money = bus_fee(28) # 출력값 "성인입니다."
print(money) # 출력값 1200
# print 구문으로 출력
# return 구문으로 결과값을 돌려줄수도 있음
04. 조건문(if, elif, else)
age = 27
if age < 20:
print("청소년입니다.")
elif age < 65:
print("성인입니다.")
else:
print("무료로 이용하세요!")
# 20 < age < 65이기 때문에
# 출력값 "성인입니다."
05. 반복문(for)
fruits = ['사과', '배', '감', '귤']
# fruits 배열을 한바퀴 돌려서 과일을 나열하기
for fruit in fruits:
print(fruit)
# 출력값
# 사과
# 배
# 감
# 귤
# 순서대로 출력됨
좀 더 심화된 파이썬 개념들을 알아보자!
06. 튜플(불변의 자료형)
배열은 추가, 삭제를 할 수 있는 가변의 자료형.
튜플은 불변의 자료형.
a_list = ['지환', '진주', '라담']
a_tuple = ('지환', '진주', '라담')
# 배열을 묶는 괄호가 다름
# 순서가 있기 때문에 index 사용가능
07. 집합
배열의 중복을 제거할 수 있음
a = [1,2,3,4,5,3,4,2,1]
# set의 변수로 a를 집어넣어 중복이 제거된 결과물을
# a_set으로 표기
a_set = set(a)
print(a_set) # 출력값 [1,2,3,4,5]
08. f-string
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
]
# 반복문을 통해 얻은 자료를 활용하고 싶을때
# {}을 사용하여 원하는 자리에 문자열로 삽입가능
for s in scores:
name = s['name'] # name의 value 값을 불러오기
score = str(s['score']) # score의 value 값(숫자)을 문자로 변환하여 불러오기
print(name+'는 '+score+'점 입니다') # f-string 사용하지 않는 방법
print(f'{name}은 {score}점입니다') # f-string 사용하는 방법
09. 예외처리(try-except)
오류를 예외처리하여 프로그램을 문제없이 실행하도록 함.
실제 코딩할때는 어디에서 오류가 났는지 찾기 어렵기 때문에 잘 사용하지 않음🤦♀️
for person in people:
try:
if person['age'] > 20: # age 값을 가지고 있는 경우 try구문 실행
print (person['name'])
except:
name = person['name'] # age 값이 없는 경우 except 구문 실행
print(f'{name} - 에러입니다')
10. map, filter, lambda 식
map = 리스트의 원소를 조작하여 새로운 배열 생성
Filter = 리스트의 원소 중 특별한 값만 추출
Lambda = map이나 filter 기능을 개별함수 없이 실행할수 있도록 함. 주로 변수 x를 사용
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'carry', 'age': 38},
]
def check_adult(person):
# if person['age'] > 20: # age 가 20 초과면 '성인' 같거나 이하면 '청소년'
# return '성인'
# else:
# return '청소년'
# return '성인' if person['age'] > 20 else '청소년' # 한줄로 코드를 요약할수도 있음
result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people) # lambda 식 사용
# result = map(check_adult, people) # map으로 people 리스트를 돌면서 check_adult 함수의
print(list(result)) # return 값으로 새로운 리스트 생성
# 출력값 ['청소년', '성인', '청소년', '성인']
result = filter(lambda x: x['age'] > 20, people) # filter로 조건에 true되는 원소만 추출
print(list(result)) # 출력값 {'name': 'carry', 'age': 38}, {'name': 'carry', 'age': 38}
11. 함수의 인자
입력값의 갯수를 무제한으로 받고 싶을 때 변수 *args 사용
키워드 인수를 여러개 받고 싶을 때 변수 **kwargs 사용
12. 클래스는 언제 사용할까?
클래스 안의 문법을 사용하는 여러 인스턴스가 있을때🥳