Python 챌린지 2일차 TIL

‍박태우·2023년 3월 7일
0
post-thumbnail
post-custom-banner



Part 3. 조건문

1)조건식

  • if 문의 조건식은 결국 참이나 거짓을 결정하여 내용 실행 여부 판단

  • 숫자 비교 예시
    => 0<10 (True)
    => 23>=30 (False)
    => 5==5 (True) #좌변과 우변이 같으면 참('='과는 다르다)
    => 10!=5 (False) #좌변과 우변이 다르면 참

사용예시)

  • boolean 연산
    =>and 연산 : 두 조건이 모두 참인 경우에만 참
    =>or 연산 : 두 조건중 하나라도 참이면 참
    =>not 연산 : True는 False로 False는 True 로 바꾸어 준다.

사용예시)

2)조건식 실습(1)

from datetime import datetime 
hour = datetime.now().hour

if hour<12: #12시 전에만 '오전입니다.' 출력하도록 하는 문제
	print('오전입니다.')

오전입니다.

3)조건식 실습(2)

#3의 배수가 맞으면 조건에 맞게 출력하는 문제
number = 15
if number % 3 == 0: #15는 3의 배수 이므로 True
    print("{}는 3의 배수입니다.".format(number))#실행 됨

number = 16
if number % 3 == 0: #16은 3의 배수가 아니므로 False
    print("{}는 3의 배수입니다.".format(number))#실행 안됨

15는 3의 배수입니다.

4)조건식 실습(3)

#hour 가 6의 배수일때만 특정 문장 실행되도록 하기
from datetime import datetime 
hour = datetime.now().hour

if hour%6==0:
    print('종이 울립니다.')

#아래 결과는 실제 시간이 6의 배수일 때만 출력

종이 울립니다.

5)if else

  • if else 문의 사용 예시
if mine==yours:
    result= DRAW
else:
    if mine==SCISSOR:
        if yours==ROCK:
            result =LOSE
        else:
            result = WIN

#반드시 else 문은 if 문과 함께 나와야 하며 들여 쓴 부분이 일치한 if else 문이 서로 관계를 가진다.

  • elif 문

(else와 if 블럭 2개를 합쳐 간략하게 표현 가능)

(전)

if 조건 :
	<코드>
else:
	if 조건 : 
    	<코드>

(후)

if 조건 :
	<코드>
elif 조건:
    <코드>
    
  • 위의 if else 문의 예시를 elif로 표현하기
if mine==yours:
    result= DRAW
elif mine==SCISSOR:
    if yours==ROCK:
    	result =LOSE
    else:
        result = WIN
  • if elif else 정리(if 가 조건 1, elif가 조건 1일때 거짓이고 조건 2일때 참인 경우)
    if 문 : 조건 1 인 경우 실행
    elif 문 : 조건 1이 아닌 조건 2인 경우 실행
    else 문 : 조건 1,2 이 모두 아닌 경우 실행

6)if else 실습(1)

mine = '가위'
yours = '바위'
if mine == yours:
    print("비겼습니다.")
else:
    print("비기지 않았습니다.")

비기지 않았습니다.

7)if else 실습(2)

gender = "남자"
if gender=="남자":
    print("남자입니다.")
elif gender=="여자":
    print("여자입니다.")
else:
    print("논바이너리입니다")

남자입니다.

8)if else 보기 좋게 만들기

mine = "가위"
yours = "바위"

if mine == yours:
    print("비김")
elif mine == "가위":
    if yours == "보":
        print("이겼다")
    else:
        print("졌다")
elif mine == "바위":
    if yours == "가위":
         print("이겼다")
    else:
         print("졌다")
elif mine == "보":
    if yours == "바위":
        print("이겼다")
    else:
         print("졌다")

졌다.


Part 4. 함수

1)함수 만들기

  • 함수 : 반복되는 코드를 블록으로 만들어 코드 간략화 가능(자주 쓸수록 유용)

=> 함수를 만들고 나면 그 내부 코드를 생각할 필요는 없다.

(함수의 사용예시)
def function(): #def 는 함수 키워드, function은 함수 이름(임의 설정 가능)

def function():
    print('안녕,함수!')


function() #이런 식으로 호출을 해야만 함수가 실행됨

안녕, 함수!

  • print() 도 함수의 일종이다.

2)함수 만들기 실습

a = 5
b = 7

def add(): #함수 정의
    result = a + b 
    print(result) 
    
add();#함수를 호출하여 사용

12

3)매개변수

  • 매개변수를 사용하지 않는 경우
def print_root():
    r1=(-b+(b**2-4*a*c)**0.5)/(2*a)
    r2=(-b-(b**2-4*a*c)**0.5)/(2*a)
    
    print('해는 {} 또는 {}'.format(r1,r2))
    
a=1
b=2
d=-8

print_root()

오류 발생

=>오류 발생의 이유 : 함수 내부의 변수가 먼저 정의 되지 않았기 때문
(이러면 프로그래머가 복잡한 경우 오류 발견하기 힘듬, 매개변수의 필요성)

  • 매개변수를 사용하는 경우
def print_root(a,b,c): #  매개변수(parameter) a,b,c : 함수 정의 시 사용하는 이름
    r1=(-b+(b**2-4*a*c)**0.5)/(2*a)
    r2=(-b-(b**2-4*a*c)**0.5)/(2*a)
    
    print('해는 {} 또는 {}'.format(r1,r2))
    
x=1
y=2
z=-8

print_root(x,y,z) # 실행인자(argument) x,y,z : 함수 실행 시 넘기는 값

해는 2.0 또는 -4.0

  • 꼭 실행인자의 개수와 매개변수의 개수는 같아야 한다.
  • 실행인자는 변수가 아닌 바로 필요한 값을 넣어줄 수도 있다.
  • 매개변수와 실행인자는 여러개인 경우 쉼표로 구분한다.
def print_round(number):
    rounded=round(number)# round() 함수는 파이썬에서 반올림 하는 함수
    print(rounded)

print_round(4.6)
print_round(2.2)
print_round(3.6)

5
2
4

4)매개변수 실습

def add(a,b): #add() 함수 정의
    result = a+b
    print( "{} + {} = {}".format(a,b,result) )
    
add(10,5) # add() 함수 실행

10 + 5 = 15

5)함수의 값

  • return 문 : 함수가 실행 결과로 값을 갖도록 하는 것, 호출한 결과 보유
def add_10(value):
    result = value +10
    return result

n=add_10(42)
print(n)

n=round(1.5)
print(n)

52
2

  • 한 함수 내에 return 문이 2개 이상인경우 먼저 실행된 return 값이 나온다.
    (바로 함수 종료, 그 뒤의 코드는 실행되지 않음==>실제로 이 기능 사용)
def add_10(value):
    print('return 앞')
    return 10 #value 관계 없이 10 리턴
    print('return 뒤')
    result = value +10
    return result

n=add_10(42)
print(n)

n=round(1.5)
print(n)

return 앞
10
2

  • return 문을 여러개 사용목적 (함수를 원하는 때 종료 가능)

def add_10(value):
    """value에 10을 더한 값을 돌려주는 함수"""
    if value<10: # 조건문을 통해 원할때 함수 종료 가능
        return 10

    result = value +10
    return result

n=add_10(5)
print(n)

n=add_10(42)
print(n)

10
52

  • 2개 이상의 값을 리턴 하기도 가능(위의 print_root()함수 수정)
def root(a,b,c):
    r1=(-b+(b**2-4*a*c)**0.5)/(2*a)
    r2=(-b-(b**2-4*a*c)**0.5)/(2*a)
    
    return r1,r2 # r1과 r2 값 2개의 값을 리턴
    
    
x=1
y=2
z=-8

r1,r2=root(x,y,z)#r1, r2 변수에 함수의 리턴값 순서대로 대입
print('근은 {} {}'.format(r1,r2))

근은 2.0 4.0

6)함수의 값 실습

def add(a,b):
    return a+b
n=add(2,10)
print(n)

12

Part 5. 사용자 입력받기

  • 프그램의 단계
    사용자 입력->자료 처리->결과 출력
print('가위 바위 보 중에 하나 입력>')#사용자가 입력해야 할 정보를 알려준다.
mine=input()
print('mine : ',mine)

가위 바위 보 중에 하나 입력>
가위
#사용자 입력값
mine : 가위
#결과

위 결과에서 입력시 '가위'와 출력시의 '가위'는 다르다.

  • input 함수 : 사용자의 키보드 입력을 return
  • round 함수 : 수의 반올림 값을 return
  • print() 따로 input() 따로 사용시에
    같은 줄에 입력 받을 수 있도록 하기 end=' ' 사용
print('가위 바위 보 중에 하나 입력>',end=' ')# 같은줄에서 입력 가능
mine=input()
print('mine : ',mine)

가위 바위 보 중에 하나 입력>가위
mine : 가위

  • mine= input('가위 바위 보 중에 하나 입력>')
    => 위와 같이 입력과 동시에 mine 에 입력받은 정보를 저장하는 것도 가능

  • input() 사용시 사용자가 입력하지 않는 한 무한 대기 상태일 수 있음
    Crrl+c 를 이용해 종료 가능


->Ctrl+c 를 이용해 입력 종료를 한 후의 결과

profile
잘 부탁드립니다.
post-custom-banner

0개의 댓글