[내배캠 / 파이썬 기초] 01. 산술연산자 7가지(+, -, *, /, 제곱 **, 몫 //, 나머지 &)
목차
1. 덧셈 ( + ) - 숫자, 문자열
2. 뺄셈 ( - ) - 숫자
3. 곱셈 ( * ) - 숫자, 문자*정수
4. 나눗셈 ( / ) - 숫자
5. 거듭제곱 ( ** ) - 숫자
6. 몫 ( // ) - 숫자
7. 나머지 ( % ) - 숫자
파이썬 산술연살자는 7가지(+, -, *, /, 제곱 **, 몫 //, 나머지 &)가 있다.
특히 아래의 특이사항이 있음을 확인해야 한다.
- 덧셈 : 문자열끼리 덧셈 가능
- 곱셈 : 문자와 정수의 곱셈 가능 (문자와 실수는 불가)
1. 덧셈( + )
1) 숫자
- 코드
a = 3
b = 2
print(a+b)
- 산출값 : 5
2) 문자
- 코드
a = 'bolee'
b = 'system'
print(a+b)
- 산출값 : boleesystem
2. 뺄셈( - )
- 숫자
- 코드
a = 3
b = 2
print(a-b)
- 산출값 : 1
3. 곱셈( * )
- 숫자
- 코드
a = 3
b = 2
print(a*b)
- 산출값 : 6
- 문자*정수
[참고] 문자*실수를 곱하는 경우, 에러 뜸
Traceback (most recent call last):
File "C:/Users/user/Desktop/project2022/pythonProject/prac.py", line 4, in <module>
print(a*b)
TypeError: can't multiply sequence by non-int of type 'float'
종료 코드 1(으)로 완료된 프로세스
- 코드
a = 'bolee'
b = 2
print(a*b)
- 산출값 : boleebolee
4. 나눗셈( % )
- 숫자
- 코드
a = 3
b = 2
print(a%b)
- 산출값 : 1
5. 거듭제곱( ** )
- 숫자
- 코드
a = 3
b = 2
print(a**b) # 3의 2승
- 산출값 : 9
6. 몫( // )
- 숫자
- 코드
a = 3
b = 2
print(a//b) # 3을 2로 나눴을 때의 몫
- 산출값 : 1
7. 나머지( % )
나머지의 쓰임새?
1. 동등하게 3가지로 나눠줘야 하는 경우, 나머지가 0일 때, 1일 때, 2일 때
2. 짝/홀수 판별하는 경우, 나머지가 0이면 짝수, 1이면 홀수
- 숫자
- 코드
a = 3
b = 2
print(a%b) # 3을 2로 나눈 나머지
- 산출값 : 1
[내배캠 / 파이썬 기초] 02. 변수선언 문자열(따옴표/연산/인덱싱[]/슬라이싱[:]/.split('')/len()/.upper()/.lower()/replace('','')/f-string(f'{}'))
목차
1. 문자열 따옴표
2. 문자열 연산 : 문자열+문자열
3. 인덱싱 / 슬라이싱 / .split()
4. 기타 : len() / .upper() / .lower() / .replace(' ', ' ')
5. f-string
변수란?
- 값을 담는 박스
- 컴퓨터가 기억하고 있는 메모리 공간에 올려져 있는 값들을 가리키고 있는 것
1. 문자열 따옴표
- 작은따옴표( ' ' ), 큰따옴표( " " ) 모두 사용 가능
a = 'aa'
b = 'aa'
- 따옴표로 감싸지 않으면 변수이름을 뜻함
a = 1
b = "a"
c = a
print(a, b, c) # 출력값 1 a 1
2. 문자열 연산 : 문자열+문자열
문자열 연산에서 print(a+b)와 print(a, b)의 차이? 띄어쓰기!
- print(a+b)의 출력값은 boleesystem
- print(a, b)의 출력값은 bolee system
문자열+정수는 에러
a = 'bolee'
b = "system"
print(a+b) # 출력값 boleesystem
a = 'bolee'
b = 'system'
print(a, b) # 출력값 bolee system
a = "3"
b = "2"
print(a + b) # 출력값 32
3. 인덱싱 / 슬라이싱 / .split()
1. 인덱싱[ ]
인덱싱(indexing)?
- 문자열에서 한 문자씩 부를 때 몇 번째인지 '인덱스'를 넣어 부르는 것
f='boleesystem'
print(f[1]) # 출력값 o
2. 슬라이싱[:]
슬라이싱(slicing)?
- 문자열의 일부를 잘라내는 것
f='boleesystem'
print(f[0]) # 출력값 b
print(f[5]) # 출력값 s
print(f[0:5]) # 출력값 bolee / f[0]부터 f[4]까지 (※ 헷갈리지 않게 유의)
print(f[5:]) # 출력값 system / f[5]부터
print(f[:5]) # 출력값 bolee / f[5]까지
print(f[:]) # 출력값 boleesystem / 처음부터 끝까지
헷갈리지 않기!!!
- f[0:5]는 f[0]부터 f[4]까지
- f[5:]는 f[5]부터
3. .split('문자열')
- 특정 문자열로 자르기
- [예제1] 이메일 도메인 출력하기
myemail = 'bolee@gmail.com'
result = myemail.split('@')
print(result) # 출력값 ['bolee', 'gmail.com']
print(result[0]) # 출력값 bolee / 리스트의 첫번째 요소
print(result[1]) # 출력값 gmail.com / 리스트의 두 번째 요소
result2 = result[1].split('.')
print(result2) # 출력값 ['gmail','com']
print(result2[0]) # 출력값 gmail -> 우리가 알고 싶었던 것
# 한 줄로 정리하면
print(myemail.split('@')[1].split('.')[0]) # 출력값 gmail
- 예제2 : 전화번호 지역번호 출력하기
phone = "02-123-1234"
print(phone.split("-")) # 출력값 ['02', '123', '1234']
print(phone.split("-")[1]) # 출력값 02
4. 기타 : len() / .upper() / .lower() / .replace(' ', ' ') /
1. len()
- 문자열 길이 구하기
print(len("bolee.")) # 출력값 6
2. .upper() / .lower()
- 모든 알파벳을 대문자/소문자로 바꾸기
sentence = 'boLEE'
print(sentence.upper()) # 출력값 BOLEE
print(sentence.lower()) # 출력값 bolee
3. .replace('문자', '문자')
- 특정 문자를 다른 문자로 바꾸기
txt = 'bo-lee-system'
print(txt.replace('-', '+')) # 출력값 'bo+lee+system'
5. f-string
- 변수로 더 직관적인 문자열 만들기
scores = [
{'name':'bo','score':90},
{'name':'lee','score':85},
{'name':'system','score':75}
]
for s in scores:
name = s['name']
score = str(s['score'])
# str : 숫자에서 문자로 변환, int : 문자에서 숫자로 변환
print(f'{name}는 {score}점 입니다.')
# print(name+'는 '+score+'점 입니다')를 f-string으로 동일하게 표현
# 출력값
# bo는 90점 입니다.
# lee는 85점 입니다.
# system는 75점 입니다.
[내배캠 / 파이썬 기초] [내배캠 / 파이썬 기초] 03. 리스트(a=[ , , ]/a=list()/.append()/.sort( )/.sort(reverse=True))/print(요소 in 리스트명) / 딕셔너리(a={" ": , " ": }/print("key값" in 딕셔너리명)) / 튜플(a=( , , )/불변) / 집합(a=[ , , ]/a_set..
목차
01. 리스트
1. 리스트 예제
2. 인덱싱 / 슬라이싱
3. len() : 길이 구하기
4. .append() : 요소 추가
5. .sort( ) / .sort(reverse=True) : 정렬하기
6. print(요소 in 리스트명) : 요소 찾기
7. 요소가 리스트인 경우
02. 딕셔너리
1. 딕셔너리 예제
2. 값 수정 / 추가하기
3. print("key값" in 딕셔너리명) : key값 찾기
03. 리스트와 딕셔너리의 조합
04. 튜플
05. 집합
01. 리스트
리스트(list)란?
- 순서로 값을 담는 자료형
* 리스트, 딕셔너리 모두 값을 담는 방법(자료형)에 대한 것이나, 딕셔너리는 key:value로 값을 담음
1. 리스트 예제
a = [1, 'a', [8, 4, 2], True]
b = []
c = list()
# 빈 리스트 만들기
print(c) # 출력값 []
print(d) # 출력값 []
2. 인덱싱 / 슬라이싱
a = [1, 3, 2]
print(a[2]) # 출력값 2
print(a[0:1]) # 출력값 [1, 3]
print(a[-1]) # 출력값 2 / 맨 마지막 값
3. len() : 길이 구하기
a = [1, 3, 2]
b = [1, 3, 2, [8, 4, 2]]
print(len(a)) # 출력값 3
print(len(b)) # 출력값 4
4. .append() : 요소 추가
a = [1, 3, 2]
a.append(5)
print(a) # 출력값 [1, 3, 2, 5]
a.append([9, 0])
print(a) # [1, 3, 2, 5, [9, 0]]
# 더하기 연산과 비교
a += [4, 8]
print(a) # [1, 3, 2, 5, [9, 0], 4, 8]
5. .sort( ) / .sort(reverse=True) : 정렬하기
a = [1, 9, 0]
a.sort()
print(a) # 출력값 [0, 1, 9]
a.sort(reverse=True)
print(a) # 출력값 [9, 1, 0]
6. print(요소 in 리스트명) : 요소 찾기
- 리스트 안에 해당 요소가 있는지 확인하기
a = [1, "2"]
print(2 in a) # 출력값 False
print("2" in a) # 출력값 True
print(0 not in a) # 출력값 True
7. 요소가 리스트인 경우
a = [1, 3, [5, 6], 0]
print(a[2]) # 출력값 [5, 6]
print(a[2][0]) # 출력값 5 / a[2]의 출력값인 [5, 6]에서 0번째 요소인 5
딕셔너리(dictionary)란?
- key:value의 쌍으로 이루어진 자료형
* 리스트, 딕셔너리 모두 값을 담는 방법(자료형)에 대한 것이나, 리스트는 순서로 값을 담음
02. 딕셔너리
딕셔너리에서 인덱싱?
- 딕셔너리의 요소에는 순서가 없기 때문에 인덱싱 사용할 수 없음
1. 딕셔너리 예제
a = {"bolee":1, "system":2}
# 빈 딕셔너리 만들기
b = {}
c = dict()
print(b) # 출력값 {}
print(c) # 출력값 {}
student = {"name":"bo", "age": 51, "scores": {"math": 91, "science": 90}}
print(student["scores"]) # 출력값 {'math': 91, 'science': 90}
print(student["scores"]["science"]) # 출력값 90
2. 값 수정 / 추가하기
student = {"name":"lee", "age": 51}
# 값 수정하기
student["name"] = "bo"
student(person) # 출력값 {'name': 'bo', 'age': 51}
# 값 추가하기
student["height"] = 185.5
print(person) # 출력값 {'name': 'bo', 'age': 51, 'height': 185.5}
3. print("key값" in 딕셔너리명) : key값 찾기
value값은 어떻게 찾지?
1. map을 활용해 dict을 뒤집어 key와 value 자리를 바꾸기
2. for문 활용하기
> 더보기 : [궁금해] (Python) 딕셔너리에서 value값을 찾는 방법? dict 뒤집기와 for문 활용하기!
- 딕셔너리 안에 해당 key값이 있는지 확인하기
student = {"name":"bo", "age": 51}
print("name" in student) # 출력값 True
print("bo" in student) # 출력값 False / "bo"는 key값이 아닌 value값임
03. 리스트와 딕셔너리 조합
students = [{'name': 'bo', 'age': 51}, {'name': 'lee', 'age': 42}]
print(students[0]['name']) # 출력값 bo
print(students[1]['age']) # 출력값 42
student = {'name': 'system', 'age': 18}
students.append(student)
print(students)
# 출력값 [{'name': 'bo', 'age': 51}, {'name': 'lee', 'age': 42}, {'name': 'system', 'age': 18}]
students = [
{'name': 'bo', 'age': 51, 'score':{'math':80,'science':100}},
{'name': 'lee', 'age': 42, 'score':{'math':91,'science':77}},
{'name': 'system', 'age': 18, 'score':{'math':51,'science':88}},
]
print(people[1]['score']['math']) # 출력값 91
04. 튜플
튜플(tuple)이란?
- 리스트와 비슷하지만 불변인 자료형
- 순서가 존재
* 리스트 : 순서로 값을 담는 자료형
* 딕셔너리 : key:value의 쌍으로 이루어진 자료형
- 튜플 예제
a = (1,2,3)
print(a[0]) # 출력값 1
- 요소값을 변경할 수 없음
a = (1,2,3)
a[0] = 99
# 오류남
# TypeError: 'tuple' object does not support item assignment
- 리스트와 튜플로 딕셔너리와 비슷하게 만들어 사용해야 할 때 많이 쓰임
# 표현방법1을 튜플을 이용해 2처럼 쓸 수 있음?????????????????????????????????????????????
# 표현방법1
students = [{'name': 'bo', 'age': 51}, {'name': 'lee', 'age': 42}]
# 표현방법2
students = [('bo','51'),('lee','42'))]
05. 집합
집합(set)이란?
- '집합'을 구현하는 방법
- 중복이 제거됨
- 집합 예제
a = [1,2,3,1,2,3,1,2,3]
a_set = set(a)
print(a_set) # 출력값 {1, 2, 3}
- 교집합/합집합/차집합
1. 교집합
1) a & b
2) a.intersection(b)
2. 합집합
1) a | b
2) a.union(b)
3. 차집합
1) a - b
2) a.difference(b)
# 작성방식1
a = [1,2,3,4,5,6]
b = [4,5,6,7,8,9]
a_set = set(a)
b_set = set(b)
print(a_set & b_set) # 교집합 / 출력값 {4, 5, 6}
print(a_set | b_set) # 합집합 / 출력값 {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(a_set - b_set) # 차집합 / 출력값 {1, 2, 3}
# 작성방식2
a = set([1,2,3,4,5,6])
b = set([4,5,6,7,8,9])
print(a & b) # 교집합 / 출력값 {4, 5, 6}
print(a | b) # 합집합 / 출력값 {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(a - b) # 차집합 / 출력값 {1, 2, 3}
# 작성방식3
a = set([1,2,3,4,5,6])
b = set([4,5,6,7,8,9])
print(a.intersection(b)) # 교집합 / 출력값 {4, 5, 6}
print(a.union(b)) # 합집합 / 출력값 {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(a.difference(b)) # 차집합 / 출력값 {1, 2, 3}
[내배캠 / 파이썬 기초] 04. 조건문(if / else / elseif / enumerate, break) / 반복문(for)
목차
01. 조건문 : if / else / elseif
02. 반복문 : for
1. for문 예제
2. for문 / enumerate, break
@ 예제문제
1) 리스트에서 나이가 40보다 큰 사람만 출력
2) 리스트에서 짝수만 출력하기
3) 리스트에서 짝수의 개수 출력하기
4) 리스트에서 짝수의 개수 출력하기
5) 리스트 내 자연수 중 가장 큰 숫자 구하기
01. 조건문 : if / else / elseif
if문?
- 조건을 만족했을 때만 특정 코드를 실행하도록 하는 문법
else문과 elif문?
- 조건을 만족하지 않을 때 다른 코드를 실행하고 싶을 때 쓰는 문법
- 다양한 조건을 판단할 때는 elif문을 사용
age = 14
if age < 14:
print("어린이입니다.")
elif age < 20:
print("청소년입니다.")
else:
print("성인입니다.")
02. 반복문 : for
파이썬에서 반복문?
- 리스트 안에 있는 요소들을 하나씩 꺼내서 사용하는 것
1. for문 예제
fruits = ['사과', '배', '감', '귤']
for fruit in fruits:
print(fruit) # 출력값 사과 배 감 귤
2. for문 / enumerate, break
enumerate 함수?
- 리스트가 있는 경우 순서와 리스트의 값을 전달하는 기능을 가짐
- enumerate는 '열거하다'라는 의미
- 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력 받아 인덱스 값을 포함하는 enumerate 객체를 리턴
- 보통 for문과 함께 자주 사용
* 출처 : 위키독스 파이썬 01. range와 enumerate 함수
- 예제1 : for문 / enumerate로 순서와 값 출력하기
alphabets = ['b', 'o', 'l', 'e', 'e']
for i, alphabet in enumerate(alphabets):
print(i, alphabet)
# 출력값
0 b
1 o
2 l
3 e
4 e
- 예제2 : for문 / enumerate / break로 원하는 순서까지의 값만 출력하기
alphabets = ['b', 'o', 'l', 'e', 'e']
for i, alphabet in enumerate(alphabets):
print(i, alphabet)
if i == 2:
break
# 출력값
# 0 b
# 1 o
# 2 l
- 예제3 : for문 / enumerate / break / 인덱스 시작값을 0이 아닌 1부터 (start=1)
*출처 : Python Examples - Enumerate - Start at 1
alphabets = ['b', 'o', 'l', 'e', 'e']
for i, alphabet in enumerate(alphabets, start=1):
print(i, alphabet)
if i == 2:
break
# 출력값
# 1 b
# 2 o
@ 예제 문제
1) 리스트에서 나이가 40보다 큰 사람만 출력
- 코드
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}
]
- 풀이
for person in people:
if person['age'] > 40:
print(person['name']) # 출력값 bobby
2) 리스트에서 짝수만 출력하기
- 입력 코드
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
for num in num_list:
if num % 2 == 0:
print(num)
- 출력값 : 2 6 2 4 6 2 4
3) 리스트에서 짝수의 개수 출력하기
- 입력 코드
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)
- 출력값 : 7
- 유의사항 : print(count)를 작성할 때 탭의 여부에 따라 출력값이 달라짐
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) # 첫번째 출력값 1 2 3 4 5 6 7
print(count) # 두번째 출력값 7
4) 리스트에서 짝수의 개수 출력하기
- 입력 코드1
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
print(sum(num_list))
- 입력 코드2
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
add = 0
for num in num_list:
add += num
print(add)
- 출력값 : 38
5) 리스트 내 자연수 중 가장 큰 숫자 구하기
- 입력 코드1
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
print(max(num_list))
- 입력 코드2
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
max = 0
for num in num_list:
if max < num:
max = num
print(max)
[내배캠 / 파이썬기초] 05. 함수(기초, 심화 - 매개변수) / map, lambda식 / filter식 / 매개변수(def cal(a, b=3):/def cal(*args):/def cal(**args):)
목차
01. 함수 기초
02. 함수 심화
1. map, lambda식
2. filter식
3. 매개변수
01. 함수 기초
- 함수란 반복적으로 사용하는 코드들에 이름을 붙여놓은 것
def test():
print("함수출력1")
print("함수출력2")
test()
test()
# 출력값
# 함수출력1
# 함수출력2
# 함수출력1
# 함수출력2
- 조건문에 넣을 값을 바꿔가면서 결과를 확인할 때 쓰면 편함
def test(num):
if num > 100:
print('세 자릿수 이상')
elif num > 10:
print('두 자릿수')
else:
print('한 자릿수')
test(19)
# 출력값
# 두 자릿수
- 결과 값을 돌려주도록 함수를 만들 수 있음
def test(num):
if num > 100:
return '세 자릿수 이상'
elif num > 10:
return '두 자릿수'
else:
return '한 자릿수'
result = test(19)
print(result)
- [예제문제] 주민등록번호를 입력하면 성별을 출력
def gender(pin):
num = int(pin.split('-')[1][0])
if num & 2 == 0:
print('남성입니다.')
else:
print('여성입니다.')
my_pin = '123456-1234567'
gender(my_pin)
02. 함수 심화
1. map, lambda식
- if문을 풀어쓴 작성 방식
- students를 하나하나 돌면서 check_adult에 넣어라
- 그리고 그 결과값을 다시 리스트로 묶어라
students = [
{'name': 'bo', 'age': 51},
{'name': 'lee', 'age': 42},
{'name': 'system', 'age': 18},
]
def check_adult(student):
if student['age'] > 20:
return '성인입니다.'
else:
return '성인이 아닙니다.'
result = map(check_adult, students)
print(list(result))
# 출력값 ['성인입니다.', '성인입니다.', '성인이 아닙니다.']
- if문을 한 줄로 쓴 작성 방식
students = [
{'name': 'bo', 'age': 51},
{'name': 'lee', 'age': 42},
{'name': 'system', 'age': 18},
]
def check_adult(student):
return '성인입니다.' if student['age'] > 20 else '성인이 아닙니다.'
result = map(check_adult, students)
print(list(result))
# 출력값 ['성인입니다.', '성인입니다.', '성인이 아닙니다.']
- lambda식으로 쓴 작성 방식
students = [
{'name': 'bo', 'age': 51},
{'name': 'lee', 'age': 42},
{'name': 'system', 'age': 18},
]
result = map(lambda student: ('성인입니다.' if student['age'] > 20 else '성인이 아닙니다.'), students)
print(list(result))
# 출력값 ['성인입니다.', '성인입니다.', '성인이 아닙니다.']
2. filter식
filter식?
- True인 것만 출력하기
students = [
{'name': 'bo', 'age': 51},
{'name': 'lee', 'age': 42},
{'name': 'system', 'age': 18},
]
result = filter(lambda person: person['age'] > 20, students)
print(list(result))
# 출력값 [{'name': 'bo', 'age': 51}, {'name': 'lee', 'age': 42}]
3. 매개변수
매개변수 관련해서는 직접 쓰는 것보단
알고 있으면 내장함수 등을 사용할 때 라이브러리 등 도큐먼트를 읽는 데 도움이 됨
- 함수에 인수를 넣을 때, 어떤 매개변수에 어떤 값을 넣을지 정해줄 수 있음 (순서 상관 없음)
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라는 이름을 사용
*arguments라는 뜻
def call_names(*args):
for name in args:
print(f'{name}야 밥먹어라~')
call_names('철수','영수','희재')
- 키워드 인수를 여러 개 받기
def get_kwargs(**kwargs):
print(kwargs)
get_kwargs(name='bob')
get_kwargs(name='john', age='27')
[내배캠 / 파이썬 기초] 06. 예외처리(try-except 문) / 파일 불러오기(from main_func import *) / 한 줄로 쓰기 / 클래스
목차
01. 예외처리 : try - except 문
02. 파일 불러오기
03. 한 줄로 쓰기
1. if문 - 삼항연산자
2. for문
04. 클래스
01. 예외처리 : try - except 문
try - except 문?
- 요소값이 빠진 경우 등 에러가 발생할 상황에서 예외처리를 해 에러를 넘기는 방법
- name이 system인 경우 age값이 빠져있어 에러가 발생하는 상황
students = [
{'name': 'bo', 'age': 51},
{'name': 'lee', 'age': 42},
{'name': 'system'}
]
for student in students:
if student['age'] > 50:
print (student['name'])
# 에러발생
# KeyError: 'age'
- try - except문을 사용해 예외처리함으로써 에러를 넘길 수 있음
students = [
{'name': 'bo', 'age': 51},
{'name': 'lee', 'age': 42},
{'name': 'system'}
]
for student in students:
try:
if student['age'] > 50:
print (student['name'])
except:
name = student['name']
print(f'{name} - 에러입니다')
# 출력값
# bo
# system - 에러입니다
02. 파일 불러오기
- 복합한 함수를 담은 main_func.py 파일의 내용을 main_test.py 파일에서 가져다 사용할 수 있음
1. main_test.py
from main_func import *
test1() # 출력값 출력1
2. main_func.py
def test1():
print('출력1')
def test2():
print('출력2')
03. 한 줄로 쓰기
1. if문 - 삼항연산자
- result = "짝수" if num%2 == 0 else "홀수"
num = 3
if num%2 == 0:
result = "짝수"
else:
result = "홀수"
# 한 줄로 쓰기
# result = "짝수" if num%2 == 0 else "홀수"
print(f"{num}은 {result}입니다.")
2. for문
- b_list = [a*2 for a in a_list]
a_list = [1, 3, 2, 5, 1, 2]
b_list = []
for a in a_list:
b_list.append(a*2)
# 한 줄로 쓰기
# b_list = [a*2 for a in a_list]
print(b_list)
04. 클래스
- 몬스터 게임으로 생각하면 몬스터수가 너무 많은 경우, 2번의 방법이 보다 관리하는 데 편하고 직관적임
- 몬스터의 HP를 중앙에서 리스트로 관리하는 것
- 아래의 그림과 같이 몬스터가 각각 HP를 가지고 있는 것 (객체지향적)
- 클래스 예제
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은 인스턴스라고 함
m.damage(120)
m2 = Monster()
m2.damage(90)
m.status_check()
m2.status_check()
※ [출처] 이 게시글은 복습의 목적으로 작성하였습니다. 내일배움캠프 <파이썬 문법 기초(스파르타코딩클럽)> 강의 자료에서 발췌한 내용이 포함되어 있으니 자세한 내용은 꼭 해당 강의를 참고하셔서 학습 이해에 도움 받으시길 바라겠습니다.