TIL(Today I Learned) 24.06.28
조건문
● if 문 : 조건을 만족했을 때 만 특정 코드를 실행하도록 하는 문법
*** 파이썬에서는 어디까지 구문에 포함되는지를 들여쓰기로 구분하기 때문에 아주 중요!!!!
### 조건에는 불 자료형이 들어간다. money > 3800 은 True
money = 5000
if money > 3800:
print("택시 타자!")
●else 와 elif : 조건을 만족하지 않을 때 다른 코드를 실행하고 싶을 때 쓰는 문법
- 다양한 조건을 판단할 때는 elif
age = 27
if age < 20:
print("청소년입니다.")
elit age < 65:
print("성인입니다")
else:
print("무료로 이용하세요!")
반복문
● for문
- for 문의 형태는 for 루프는 'for <원소> in <목록> :' 형태로 작성된다.
- 'for <원소> in <목록> :' <목록> 부분에는 리스트, 튜플, 문자열 , 반복자(iterator), 제너레이터 등 순회가 가능한 웬만한 모든 데이터 타입을 사용할 수 있고, <원소> 부분은 순회 변수(loop variable)라고 하는데, <목록> 부분에 넘긴 객체가 담고 있는 원소들이 루프가 도는 동안 하나씩 차례로 할당된다.
출처 : https://www.daleseo.com/python-enumerate/
- 예시)
만약 아래 리스트에서 나이가 20보다 큰 사람만 출력한다면 ?
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 문으로 출력해보자
for person in people:
if person['age'] > 20:
print(person['name'])
● for문 - enumerate, break
enumerate() 함수는 기본적으로 인덱스와 원소로 이루어진 튜플을 만들어 준다.
인덱스와 원소를 각각 다른 변수에 할당하고 싶다면 인자풀기 (unpacking)을 해줘야 한다.
출처 : https://www.daleseo.com/python-enumerate/
만약 아래 리스트에서 앞에 5개만 출력해보고 싶다면?
fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지']
for i, fruit in enumerate(fruits):
print(i, fruit)
if i == 4:
break
▶for문은 가장 많이 쓰는 문법 중에 하나여서 예시문제에서는 리스트안에 있는 데이터가 몇 개 안되지만
회사에서 다루는 데이터 수십만개에서 수백만개를 넘어가는 경우가 많기 때문에 꼭 이해하고 넘어가야 한다
이해하기 위해 하나 하나 넣어서 적어가며 이해하고 연습, 게다가 코딩 테스트에도 많이 나오기 때문에
꼭 이해가 안될 때는 손코딩으로 원리를 이해하자.
만약 아래 리스트 안에 있는 자연수 중 가장 큰 숫자를 구하라고 하면
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)
출력하면 리스트 안에 가장 큰 숫자인 6이 나온다.
일단,
max = 0 이고, num에 있는 숫자 1을 넣으면 if문에서
0 < 1 일 때 이 값은 0은 1보다 작은 것이 맞으므로 True
그래서 max = 1 값을 반환하고,
max = 1 이고, num 에 있는 숫자 2를 넣으면
1 < 2 일 때 이 값도 1은 2보다 작은 것이 맞으므로 True
그래서 max = 2 ,
max = 2이고, num 에 있는 숫자 3을 넣으면
2< 3일 때 이 값도 2는 3보다 작은 것이 맞으므로 True
그래서 max = 3 ,
max = 3이고, num 에 있는 숫자 6을 넣으면
3< 6일 때 3은 6보다 작은 것이 맞으므로 True
그래서 max = 6,
max= 6이고, num에 있는 숫자 6을 넣으면
6<6일 때 , 6은 6보다 작은 것 아니므로 False
그래서 그대로 max= 6
max = 6이고, num에 있는 숫자 3을 넣으면
6<3 일 때 6은 3보다 작은 것이 아니므로 False
그래서 그대로 max = 6
그 다음 부터는 계속 max는 6이 나오므로 출력값은 6이 나온다.
num: 1 max:1
num:2 max: 2
num: 3 max : 3
num: 6 max : 6
num:3 max : 6
num : 4 max : 6
num: 5 max : 6
num : 6 max : 6
num:2 max:6
num:4 max : 6
함수
● 함수 사용 방법
- 함수는 반복적으로 사용하는 코드들에 이름을 붙여놓은 것
def hello():
print("안녕!")
print("또 만나요!")
hello()
hello()
- 조건문에 넣을 값을 바꿔가면서 결과를 확인할 때 쓰면 편함
def bus_rate(age):
if age > 65:
print("무료로 이용하세요")
elif age > 20:
print("성인입니다.")
else:
print("청소년입니다")
bus_rate(27)
bus_rate(10)
bus_rate(72)
- 단순한 출력 뿐만 아니라 결과 값을 돌려주도록 함수를 만들 수도 있다.
def bus_fee(age):
if age > 65:
return 0
elif age > 20:
return 1200
else:
return 0
money = bus_fee(28)
print(money)