데린이 재영

파이썬(Python) 제어문과 함수 이해하기 - 조건문/반복문/함수 본문

멋사 AI school 7기/TIL

파이썬(Python) 제어문과 함수 이해하기 - 조건문/반복문/함수

재용용 2022. 10. 8. 16:49

 목표 설정

- 멋쟁이사자 AI 스쿨 2일차(220920) 학습 내용 정리하기

- 파이썬 프로그램의 구조를 만드는 제어문(조건문, 반복문)과 함수 이해하기

1. 조건문
2. 반복문
3. 함수

알아두면 좋은 연산자 목록

연산자 설명
x or y x와 y 둘중에 하나만 참이어도 참
x and y x와 y 모두 참이어야 참
not x x가 거짓이면 참
in 과 not in 설명
x in (리스트/튜플/문자열) 자료형 안에 x 있으면 참
x not in (리스트/튜플/문자열) 자료형 안에 x 없으면 참

 


1. 조건문(if문)

if문은 조건을 판단하여 해당 조건에 맞는 상황을 수행하는데 쓰는 것으로, 기본 구조는 if와 else로 구성됨
- 들여쓰기 : 4개의 공백 or Tab
- if 조건문 뒤에 콜론(:) 사용하기

- elif : 여러번 사용할 수 있다. / 조건문을 넣어야 한다.

- else : 한번만 사용할 수 있다. / 조건문을 넣지 않는다.

number = int(input("숫자를 입력하세요 : "))

if number % 2 == 0:
    print("입력하신 숫자는 짝수입니다.")
else:
    print("입력하신 숫자는 홀수입니다.")

💡 만약 2가지 이상의 조건문을 만들어야 한다면?

해결방법 : if-elif-else 사용 (elif는 1개 이상 사용 가능) / and, or, not 연산자 사용

# 컴퓨터와 하는 가위바위보 게임
from random import choice

auto = choice(['가위', '바위', '보'])
user = input("가위, 바위, 보 : ")

if user in ['가위', '바위', '보']:
    if user == auto:
        print(f"user : {user}, computer : {auto} 으로 비겼습니다.")
    elif (user == '가위' and auto == '보') or (user == '바위' and auto == '가위') or (user == '보' and auto == '바위'):
        print(f"user : {user}, computer : {auto} 으로 이겼습니다.")
    else:
        print(f"user : {user}, computer : {auto} 으로 졌습니다.")
else:
    print("옳지않은 값을 입력하셨습니다.")

💡 조건문에서 아무 일도 하지 않게 설정하려면?

해결방법 : pass

# 파티 참석 명단에 이미 등록되어있으면 아무것도 출력되지 않음
party = ["Jane", "Michael", "Rose", "Justin", "Jimmy"]
name = input("파티에 참석하신다면 이름을 입력하세요 : ")

if name in party:
    pass
else:
    print(f"{name}, 파티 참석 명단에 등록되었습니다.")

2. 반복문(for/while)

반복문은 반복해서 문장을 수행해야 할 경우 사용한다.

- for문 : 반복할 횟수를 알 때 사용
- while문 : 반복할 횟수를 모를 때 사용 ( 조건문이 참인 동안 순회 )

- range(start, end, step), range(len())나 index와 요소를 함께 사용해야 되는 경우 enumerate() 사용하기

(i) for문

all_kr = "가나다라마바사아자차카타파하"
kr_list = []

for kr in all_kr:
	kr_list.append(kr)
    
kr_list # ['가', '나', '다', '라', '마', '바', '사', '아', '자', '차', '카', '타', '파', '하']

 

(ii) while문

num = int(input("숫자를 입력해 주세요 : "))

while num != 0:
    print(num)
    num -= 1

3. 함수

똑같은 내용을 반복해서 작성할 때, 하나의 함수로 정의해두면 편리하게 사용할 수 있음

예를 들어, 덧셈, 뺄셈, 곱셈, 나눗셈 등의 연산 기능이 가능한 함수를 만들어 두면 함수 한줄로 계산 가능

함수에는 매개변수전달인자(인수)가 있다.

- keywords 인자 : ** 두 개 (딕셔너리 형태로 전달)

- arguments 인자 : * (리스트나 튜플 형태로 전달)

** 함수에서 인자 등 정보 찾을 때
? : Docstring
?? : Source
예) range? add? 함수??
def calculate(num1, num2, sign):
	if sign == '+':
    	return num1 + num2
    elif sign == '-':
    	return num1 - num2
    elif sign == '*':
    	return num1 * num2
    elif sign == '/':
    	return num1 / num2
    else:
    	return "지원하지 않는 기능입니다."
>>> calculate(3, 10, '*')
30

위 코드에서 num1, num2, sign 은 함수에서 매개변수이며 함수를 요청할 때 입력한 3, 10, '*'은 변수에 대한 인수이다.


참고문헌

https://wikidocs.net/19

Comments