오늘은 파이썬 기초 문법을 배워보고, 제가 배우고 부족한 부분들만 공부하고 복습하겠습니다
- 조건을 만족했을 때만 특정 코드를 실행하도록 하는 문법입니다.
```python
money = 5000
if money > 3800:
print("택시 타자!")
```
- 파이썬에서는 어디까지 구문에 포함되는지를 들여쓰기로 구분하기 때문에 아주 중요합니다.
- 조건에는 불 자료형이 들어갑니다. money > 3800은 `True`
```python
money = 5000
if money > 3800:
print("택시 타자!")
```
- 조건을 만족하지 않을 때 다른 코드를 실행하고 싶을 때 쓰는 문법입니다.
```python
money = 2000
if money > 3800:
print("택시 타자!")
else:
print("걸어가자...")
```
- 다양한 조건을 판단할 때는 `elif`를 쓰면 좋아요!
```python
age = 27
if age < 20:
print("청소년입니다.")
elif age < 65:
print("성인입니다.")
else:
print("무료로 이용하세요!")
```
- 0부터 9까지 숫자를 출력해볼까요?
```python
print(0)
print(1)
print(2)
...
print(9)
```
- 파이썬에서는 아래처럼 쓰는 것이 더 자연스럽습니다.
```python
fruits = ['사과', '배', '감', '귤']
for fruit in fruits:
print(fruit)
```
```python
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}
]
```
```python
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}
]
```
이 리스트에서 나이가 20보다 큰 사람만 출력합니다.
풀이
```python
for person in people:
if person['age'] > 20:
print(person['name'])
```
python
fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지']
python
fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지']
```python
for i, fruit in enumerate(fruits):
print(i,fruit)
예를 들어 앞에 5개만 출력해보고 싶다면?
```python
for i, fruit in enumerate(fruits):
print(i, fruit)
if i == 4:
break
```
함수 사용 방법
- 함수는 반복적으로 사용하는 코드들에 이름을 붙여놓은 것입니다.
```python
def hello():
print("안녕!")
print("또 만나요!")
hello()
hello()
```
- 조건문에 넣을 값을 바꿔가면서 결과를 확인할 때 쓰면 편합니다.
```python
def bus_rate(age):
if age > 65:
print("무료로 이용하세요")
elif age > 20:
print("성인입니다.")
else:
print("청소년입니다")
bus_rate(27)
bus_rate(10)
bus_rate(72)
```
- 단순한 출력 뿐만 아니라 결과 값을 돌려주도록 함수를 만들 수도 있어요!
```python
def bus_fee(age):
if age > 65:
return 0
elif age > 20:
return 1200
else:
return 0
money = bus_fee(28)
print(money)
```
- 튜플은 `리스트와 비슷하지만 불변`인 자료형 입니다. 마찬가지로 순서가 존재하죠!
```python
a = (1,2,3)
print(a[0])
```
- 예를 들어 아래와 같은 작업이 불가합니다!
```python
a = (1,2,3)
a[0] = 99
```
- 언제 주로 사용하냐면요, 아래와 같이, 딕셔너리 대신 리스트와
튜플로 딕셔너리 '비슷하게' 만들어 사용해야 할 때 많이 쓰입니다!
```python
a_dict = [('bob','24'),('john','29'),('smith','30')]
- 집합은 말 그대로 '집합'을 구현하는 방법! 좋은점: `중복이 제거`됩니다.
```python
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)
```
- 교집합 / 합집합 / 차집합도 구할 수 있어요
```python
a = ['사과','감','수박','참외','딸기']
b = ['사과','멜론','청포도','토마토','참외']
print(a & b) # 교집합
print(a | b) # 합집합
```
- 변수로 더 직관적인 문자열 만들기
- 예를 들어 아래 for문을 살펴보겠습니다.
```python
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
```
```python
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
```
이름과 점수를 모두 출력해볼게요
```python
for s in scores:
name = s['name']
score = str(s['score'])
print(name,score)
```
아래와 같이 출력해보면 어떨까요?
```python
for s in scores:
name = s['name']
score = str(s['score'])
print(name+'는 '+score+'점 입니다')
```
f-stirng을 이용하면 훨씬 간단하게 가능하답니다.
```python
for s in scores:
name = s['name']
score = str(s['score'])
print(f'{name}은 {score}점입니다')
```
-try - except 문
- 에러가 있어도 건너뛰게 할 수 있는 방법
```python
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}
]
```
실제 프로젝트 남용하는 것은 금물! 어디서 에러가 났는지 알 수 없어요 💀
자, 다음과 같이 20세 보다 큰 사람만 출력한다고 해봅시다.
```python
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'] > 20:
print (person['name'])
```
그런데 만약, bobby가 age를 갖고 있지 않다면? - 데이터 하나가 잘못 들어간거죠!
```python
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'])
```
그 때 아래와 같이 try except 구문을 이용하면 에러를 넘길 수 있답니다.
```python
for person in people:
try:
if person['age'] > 20:
print (person['name'])
except:
name = person['name']
print(f'{name} - 에러입니다')
```
-여러개 파일로 분리하려면
- main_test.py
```python
from main_func import *
say_hi()
```
- main_func.py
```python
def say_hi():
print('안녕!')
```
-if문 - 삼항연산자
- 만약 조건에 따라 다른 값을 변수에 저장하고 싶다면?
```python
num = 3
if num%2 == 0:
result = "짝수"
else:
result = "홀수"
print(f"{num}은 {result}입니다.")
```
- 이것을 한 줄에 적는 것이 파이썬의 유일한 삼항연산자인 조건식입니다.
```python
num = 3
result = "짝수" if num%2 == 0 else "홀수"
print(f"{num}은 {result}입니다.")
```
`(참일 때 값) if (조건) else (거짓일 때 값)``으로 항이 3개라 삼항 연산자입니다`
와... 공부하는데 좀 머리가 띵 하네요.. 코드를 보면 이해하고 읽을 수 있는데, 이거를 활용하라고 하면 어떻게 활용해야할지 좀 어려울거같네요... 이제 프로젝트 해여하니 프로젝트 하면서 모르는거 찾아보면서 엄청난 시간을 쏟아 부어야 할거 같습니다..