TIL - 22.04.26 python 기본문법 2

개발자 macan·2022년 4월 26일
0

개발 - 공부

목록 보기
6/28
post-thumbnail

조건문

if와 else, 그리고 elif

  • else : if가 조건을 만족하지 않을 때, 다른 코드를 실행한다
  • elif : 다양한 조건을 판단
    ex)
    elif
age = 27
if age <20:
	print("청소년입니다.")
elif age < 65:
	print("성인입니다.")
else:
	print("무료로 이용하세요!")

반복문

enumerate 와 break

  • enumerate()
    일반적인 for문의 형태는 다음과 같다.
    for (원소) in (목록):
    여기서 목록에는 리스트, 터플, 문자열, 반복자, 제너레이터등 순회가 가능한 거의 모든 데이터
    타입이 들어간다. 원소는 순회 변수(loop variable)이라 하는데, 목록 부분에 넘긴 객체가 갖는 원소들이 루프가
    도는 동안 하나씩 할당된다. 이때 원소와 함께 index도 같이 출력하고 싶을 때, 사용하는 것이 enumerate다. for i, (원소) in enumerate(목록): 를 하면 원소가 indexing 되어 나온다. 이때 그냥 돌리면 목록의 모든 원소를 출력하니
    중간에 break를 사용하여 원하는 만큼만 돌고 나오도록 설정할 수 있다.
    for i, fruit in enumerate(fruits):
    	print(i, fruit)
     if i == 4:
     	break

<h3> 함수 </h3>

- 함수는 반복적으로 사용하는 코드들에 이름을 붙여놓은 것!

<h5>quiz - 헷갈렸던 것 </h5>
<h6>성별 출력 함수</h6>
- 처음에는 리스트에서 int변환을 할 줄 몰라서 별의 별 혼종을 만들어냈다.

def check_gender(pin):
sex = int(pin.split('-')[0:1]
if sex == [1] or sex == [3]:
print('성별은 남성입니다!')
elif sex == [2] or sex == [4]:
print('성별은 여자입니다!')

my_pin = '200101-3012345'
check_gender(my_pin)


-int까지 선언했는데 뭐가 문젠데..? 

#문제 코드
def check_gender(pin):
pin_num = pin.split('-')[0:1]
sex = int(pin_num)
if sex == 1 or sex == 3:
print('성별은 남성입니다!')
elif sex == 2 or sex == 4:
print('성별은 여자입니다!')

my_pin = '200101-3012345'
check_gender(my_pin)


<p style="color: red">
  File "/basic.py", line 11, in <module>
    check_gender(my_pin)
  File "/basic.py", line 4, in check_gender
    sex = int(pin_num)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
</p>
  [0:1] 때문에 list형으로 되어서 int 변환이 안되었나보다.

- 최종 작성 코드 

#완성본
def check_gender(pin):
pin_num = pin.split('-')[1][0]
sex = int(pin_num)
if sex == 1 or sex == 3:
print('성별은 남성입니다!')
elif sex == 2 or sex == 4:
print('성별은 여자입니다!')

my_pin = '200101-3012345'
check_gender(my_pin)


   


profile
개발자로 첫걸음

0개의 댓글