Frontend 개발자 - hyo.loui
파이썬 기초 문법(2/2) - 조건문, 반복문, 함수 본문
❤️🔥TIL : Today I Learned
조건문
- if 문 (if, elif, else)
조건을 만족했을 때만 특정 코드를 실행하도록 하는 문법입니다.
# 조건문
라면 = 5000
if 라면 > 3800:
print('국수를 사자')
elif 라면 > 1900:
print('라면을 사자')
else :
print('라면을 두개 살 수 있어 >.<')
# 이렇게 머릿속에 한번 떠올리면 쉽게 이해 할 수 있어요!
if : 이게 맞아?
elif : 그럼 이건?
elif : 그럼 이건?
.
.
.
else : 이거라도...
그런데, 로직을 구성 할 때 잘 생각해봐야 해요
1번 조건, 2번 조건, 3번 조건을 모두~ 통과하는
코드를 짜면 데이터 효율이 떨어지겠죠?
그래서 가장 신속하게 실행될 수 있는(조건의 확률이 높은) 코드를 우선으로
우선순위가 높은코드는 조건문 상단으로 위치하는게 효율적이죠!
앗! 참고로 파이썬은 들여쓰기가 엄청 중요해요!
자바스크립트와는 다르게 '{}' 가 없어서 들여쓰기에 따라 내용물이 달라지거든요!
반복문
- for 문
for '데이터' in '리스트, 딕셔너리'
반복문은 쓰이는 일도 많고 중요해서 연습문제가 있습니다!
# 반복문
점심메뉴 = ['신라면', '진라면', '너구리', '짜빠게티', '불닭볶음면']
for 라면 in 점심메뉴:
print(라면)
# 신라면 진라면 너구리 짜빠게티 불닭볶음면
자 여러분이 기다리시던(?) 재미있는(..?) 라면예제 나갑니다!!!
# 라면예제
라면종류 = [
{'name': '신라면', 'history': 30},
{'name': '진라면', 'history': 26},
{'name': '너구리', 'history': 21},
{'name': '짜빠게티', 'history': 16},
{'name': '불닭볶음면', 'history': 9},
{'name': '삼양라면', 'history': 57},
{'name': '쇠고기면', 'history': 32},
{'name': '스낵면', 'history': 11}
]
# 모든 라면 종류별로 다 보여줘
for 라면 in 라면종류:
name = 라면['name']
history = 라면['history']
print(name, history)
=> 신라면 30
진라면 26
너구리 21
짜빠게티 16
불닭볶음면 9
삼양라면 57
쇠고기면 32
스낵면 11
# for문 안에 if문 조합!
# 라면 역사가 20년 이상 된 라면만 보여줘
for 라면 in 라면종류:
name = 라면['name']
history = 라면['history']
if history > 20:
print(name, history)
=> 신라면 30
진라면 26
너구리 21
삼양라면 57
쇠고기면 32
- enumerate 와 break
이것 도 알아두시면 좋아요!
# i, enumerate(), break - for를 돌면서 리스트에 순서를 붙여줌
# 데이터가 많은 작업을 할 때 쓰기 좋음! ex) 라면종류 100000개.. 로딩시간 오래걸림
for i, 라면 in enumerate(라면종류):
name = 라면['name']
history = 라면['history']
print(i, name, history)
if i > 2:
break
# 0 신라면 30
# 1 진라면 26
# 2 너구리 21
# 3 짜빠게티 16
연습 1
# 짝수 출력하기
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
'count'라는 변수를 이용해 2로 나눠지지 않는 수는 1씩 대입연산 해주는 for문 이에요~
연습 2
# 리스트에 있는 모든 숫자 더하기
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
sum = 0
for num in num_list:
sum += num
print(sum)
# 38
이것도 sum변수에 대입연산자 활용하여 리스트를 하나씩 돌면서
sum에 대입해주는 문제입니다!
처음부터 어렵게 생각하지 말고
천천히 보다보면 재미있어요~
연습 3
# 리스트에 있는 자연수중 가장 큰 숫자 구하기
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
# 내가 푼 식
num_list.sort()
print(num_list[-1])
# 6
# 해설
max = 0
for num in num_list:
if max < num:
max = num
print(max)
# 6
같은 정답이 나오지만 이렇게 푸는 방식은 천차만별입니다!
이래서 알고리즘 문제풀이가 재미있어요(..?롸?)
저의 풀이는 sort() 함수를 이용했어요!
- 리스트를 순차적으로 정렬하기
- 리스트 맨 마지막 인덱스 가져오기
해설은 위에 있는 연습문제들과 같은 유형으로 풀었네요!
- 0을 가진 변수 'max' 를 만들기
- for 문을 이용해 리스트를 하나씩 돌기
- if 문으로 변수와 비교하기
- 변수 max 보다 크다면 그 수를 변수에 대입
- 이후 나머지 숫자들과 같은 방식으로 반복
함수
- def ()
반복적으로 사용하는 코드들에 이름을 붙여놓은 것입니다!
== js 에서는 function() 이 있죠~
# 함수
def hello():
print('안녕!')
print('좋은 날씨야')
hello()
hello()
# 안녕! 좋은날씨야 안녕! 좋은날씨야
- def (): return
# return 을 만나면 해당 "변수는 return 으로 반환" 되어 값이 변환된다!
def sum(a,b):
return a + b
result = sum(1,2)
print(result) # 3
- 함수와 조건문
조건문에 넣을 값을 바꿔가면서 결과를 확인할 때 쓰면 편합니다.
# 함수와 조건문
def bus_rate(age):
if age > 65:
print('무료입니다')
elif age > 20:
print('성인입니다')
else :
print('청소년입니다')
bus_rate(15) # 청소년입니다.
bus_rate(33) # 성인입니다.
이제 응용해서 return 값을 반환 할 수도 있어요!
# 함수와 조건문 2
def bus_rate(age):
if age > 65:
return 0
elif age > 20:
return 1200
else :
return 750
my_rate = bus_rate(66)
print(my_rate) # 0
my_rate = bus_rate(40)
print(my_rate) # 1200
my_rate = bus_rate(3)
print(my_rate) # 750
마지막 연습문제 입니다!
# quiz 주민등록번호 뒷자리로 성별 판독하기!
def check_gender(pin):
if int(pin.split('-')[1][0]) % 2 == 0:
print('여성입니다.')
else:
print('남성입니다.')
my_pin = '200101-3012345'
check_gender(my_pin) # 남성입니다.
my_pin = '200101-4012345'
check_gender(my_pin) # 여성입니다.
my_pin = '200101-5012345'
check_gender(my_pin) # 남성입니다.
'Python' 카테고리의 다른 글
파이썬 심화 문법(2/3) - 파일 불러오기, 한줄의 마법, map과 filter + lambda식 (1) | 2022.11.14 |
---|---|
파이썬 심화 문법(1/3) - 튜플, 집합, f-string, 예외처리 (0) | 2022.11.13 |
파이썬 기초 문법(1/2) - 변수, 문자열, 리스트, 딕셔너리 (2) | 2022.11.10 |
프론트엔드와 백엔드 연결 방법? (0) | 2022.11.06 |
파이썬으로 라면 만들기? (0) | 2022.11.06 |