생각하는 감쟈

[Python] 2) 조건문_반복문 본문

Language/Python

[Python] 2) 조건문_반복문

생각하는 감쟈🥔 2023. 3. 16. 09:56

 

 

 

오늘은 몬스터 수혈☕

 

a

 

 3일차 (23.03.15)

 

 

 

조건문

/ 3.1 조건문이란?

if x>0:
   print("양수이다!")
else:
   print("음수 또는 0이다!")
 

조건문?

조건식의 참 또는 거짓에 따라 실행되는 함수 코드

 

if문의 3가지)

구문
만약 조건을 만족하면 ~
if~
if 수행
if~else~
if 수행하고 그렇지 않으면 else~
if~else(1)~else(2)
if 수행하고 그렇지 않으면 else(1)수행...그렇지 않으면else(n)수행

 

#if문의 동작원리

x = int(input("정수를 입력하세요 : "))

if x > 0:
    print("입력된 수는 양수입니다")
    print("입력된 수는 양수입니다")
 

들여쓰기 맞춰줘야함

if()문에 맞는 조건이 아닐경우 실행화면에 아무것도 나타나지 않음

 


 

/ 3.2 비교연산자와 논리연산자

 

비교 연산자 )

비교 연산자
>, <, ==, !=, <=, >=
논린 연산자
and , or, not

 

!는 부정형 (반대 의미)

a == b
같다
a != b
같지 않다
a > b
a가 b보다 크다
a >= b
a가 b보다 크거니 같다
a < b
a가 b보다 작다
a <=b
a가 b보다 작거나 같다

비교 대상자는 이 기준 'a' 이고 True/False로 나뉨

ex) id는 주체 == admin 비교대상자

id == admin
 

논리연산자

조건1 and 조건2
논리곱 : 조건 둘 다 True일 경우만 T
조건1 or 조건2
논리합 : 하나만 True 여도 T
not 조건
논리부정 : True일 땐 False / False일 땐 True

 

 


 

 

/ 3.3 if~ 구문

# 나이를 입력 받아 경로우대(65세 이상)인 경우 공원 입장료 무료로하는 프로그램

age = int(input("나이는? "))

#기본정보
ticket = 2000
free_age = 65

#65보다 크거나 같을때 조건
if age >= free_age: 
    ticket = 0

print("나이 : %d세" % age)
print("입장료 : %d원" % ticket)
 

if() 다음 줄 문장 앞에선 반드시 들여쓰기

 

# 3 or 4의 배수 판별 하기
    #3의 배수, 4의 배수, 둘다 만족하는 3,4의 배수

num = int(input("양의 정수를 입력하세요 : "))
result = "3의 배수도 4의 배수도 아니다" #if문의 조건을 충족허지 못하는 로직일때 기본 조건

if num%3 == 0:
    result = "3의 배수이다."
if num%4 == 0:
    result = "4의 배수이다."
if num%3 == 0 and num%4 == 0:
    result = "3의 배수이면서 4의 배수이다."

print("%d은(는) %s" %(num, result))
 

숫자의 배수를 판별할 때

ex) 3의 배수 -> %3 했을때 나머지가 0이면 True

if() 반복문은 실행은 위에서 아래로 실행 됨

 

# 키보드로 영어 단어 입력받아 맞는지 틀린지 표시해주는 프로그램
    #간단 영어 단어 퀴즈 만들기

ans1 = input("'사자'의 엉어 단어는 무엇일까요 : ")
result = "떙! 틀렸습니다" # 틀림이 기본으로

if ans1 == "lion":
    result = "딩동댕! 참 잘했어요 ~~"
print(result)

ans2 = input("'오렌지'의 엉어 단어는 무엇일까요 : ")
result = "떙! 틀렸습니다"

if ans2 == "orange":
    result = "딩동댕! 참 잘했어요 ~~"
print(result)

ans3 = input("'기차'의 엉어 단어는 무엇일까요 : ")
result = "떙! 틀렸습니다"


if ans3 == "train":
    result = "딩동댕! 참 잘했어요 ~~"
print(result)
 
ans1 = input("'사자'의 엉어 단어는 무엇일까요 : ")
result = "떙! 틀렸습니다" # 틀림이 기본으로

if ans1 == "lion":
    result = "딩동댕! 참 잘했어요 ~~"
print(result)
 

하나의 로직이 반복 됨

 

# 월을 입력받아 계절을 판별하라
'''
월을 입력받아 봄, 여름, 가을 ,겨울 중 어느 계절인지 판별하는 프로그램
봄(3,4,5) 여름(6,7,8) 가을(9,10,11) 겨울(12,1,2)
'''

month = input("월을 숫자로 입력하세요 : ")

#봄
if month == "3" or month == "4" or  month == "5" :
    print("%s월은 봄 입니다" % month)

#여름
if month == "6" or month == "6" or  month == "8" :
    print("%s월은 여름 입니다" % month)

#가을
if month == "9" or month == "10" or  month == "11" :
    print("%s월은 가을 입니다" % month)

#겨울
if month == "12" or month == "1" or  month == "2" :
    print("%s월은 겨울 입니다" % month)


'''
입력받은 값을 문자형말고 int() 변환하여 숫자 판정으로도 만들기
'''
 

month를 문자형으로 입력받음 -> if() 조건문에 논리 연산자 사용해줌

문자형으로 입력고 int()로 변환하여 비교 연산자로도 가능함


 

 

/ 3.4 if~ else~ 구문

 

x = int(input("양의 정수를 입력하세요 : "))

if x%2 == 0 :
    print("짝수이다!")
else :
    print("홀수이다!")
 

마찬가지로 들여쓰기 해주고!!

if()에 대한 값이 False이 나왔을 경우 -> 그 외를 처리 할 수 있는 것이 else 문

 

'''
주민번호 뒷 자리 첫 번째 숫자를 입력받아 남/여 판정하는 프로그램
남성(1,3) 여성(2,4)
'''

a = input("주민번번호 뒷자리 첫번째 숫자를 입력해 주세여: ")

if a == "1" or a == "3":  #if int(a)%2 == 1;
    print("남성입니다")

if a == "2" or a == "4":  #if int(a)%2 == 0;
    print("여성입니다")

#if int(a)%2 == 1; 문자열 a를 int()로 변환

'''
#if else
     if int(a)%2 == 1;
         print("남성입니다")
     else ;(나머지가 다 똑같을 경우)
         print("여성입니다")
'''
 

변수 a가 1 또는 3인지 확인 -> 남성

변수 a가 2 또는 4인지 확인 -> 여성

밑 식으로도 가능함

if int(a)%2 == 1; #남성 판별
if int(a)%2 == 0; #여성 판별
 

 

'''
필기 실기 점수를 입력 받아 자격증 시험의 합격과 불합격을 판정하는 프로그램
'''

pilgi = int(input("필기시험 점수는? "))
silgi = int(input("실기시험 점수는? "))

if pilgi >= 80 and silgi >= 80:
    result = "합격"
else :
    result = "불합격"

print(" 필기시험 점수 : %d" % pilgi)
print(" 실기시험 점수 %d" % silgi)
print(" 판정 : %s" % result)
 
'''
영문 대소문자를 입려박아 자음/모음 판별하는 프로그램
'''

char = input("영문 대문자 또는 소문자 하나를 입력하세요: ")
char2 = char.upper() #대문자로 바꾸고 char2에 입력 다른 변수에 담아주는게 좋음

if char2 == "A" or char2 == "E" or char2 == "I" \
   or char2 == "O" or char2 == "U" :
    # 그냥 엔터치면 안됨 연결되는 문장을 인식해주는 \ 입력
    print("%s 는 모음" % char)
else :
    print("%s 는 자음" % char)

 

upper() : 소문자를 대분자로 변환하는 함수

if() 함수 조건이 길어지면 다음줄로 넘길 수 있음 -> 그냥 엔터치면 인식이 안되 역슬래시를 입력하여 연결되게 인식

 

'''
키와 몸무게를 입력받아 다이어트의 필요성을 판정하는 프로그램
몸무게가 판단 기준보다 크면 다이어특 필요
판단기준 : (키-100) * 0.9 
'''

height = int(input("키는? "))
weight = int(input("몸무게는? "))

s = (height-100) * 0.9

print("=" * 50)
print("키 : ", height)
print("몸무게 : ", weight)

if weight > s:
    print("건강을 위해 다이어트가 필요합니다")
else :
    print("표준 또는 마른 체형입니다")
 

 


 

 

/ 3.5 if~ elif~ else~ 구문

'''
점수를 입력 받아 (점수에 해당되는 학점 A,B,C,D,F)판정하는 프로그램
'''

score = int(input( "점수는? "))

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else :
    grade = "F"

print("등급 : ", grade)
 

if~ elif~ else~의 수식은 밑으로 확인되어 가면서 판단하기에

범위를 잘 못 지정하면 판정 오류가남

 

'''
사칙연산을 하는 간단한 계산기 프로그램
(1 : +) (2 : -) (3 : *) (4 : /)
'''

print("기능 선택하기")
print("1 : +")
print("2 : -")
print("3 : *")
print("4 : /")
print()

s = input("계산기의 기능을 선택하시여(1,2,3,4)")
num1 = int(input("첫번째 숫자를 입력하세요"))
num2 = int(input("두번째 숫자를 입력하세요"))

if s == "1" :
    print("%d + %d = %d" % (num1, num2, num1+num2))
          
elif s == "2" :
    print("%d - %d = %d" % (num1, num2, num1-num2))

elif s == "3" :
    print("%d * %d = %d" % (num1, num2, num1*num2))

elif s == "4" :
    print("%d / %d = %d" % (num1, num2, num1/num2))

else :
    print("잘못된 입력입니다")
     
 

 


 

 

/ 3.6 if문의 중첩

'''
만 나이를 계산하는 프로그램
현재 날짜와 비교해서 지났으면 1+ 아니면 0 
'''

print("-" * 50)
now_year = int(input("현재 년은? "))
now_month = int(input("현재 월은? "))
now_day = int(input("현재 일은? "))

birth_year = int(input("출생 년은? "))
birth_month = int(input("출생 월은? "))
birth_day = int(input("출생 일은? "))

# 출생월이 현재 월보다 빠른 경우
if birth_month < now_month : # 작다 (지남)
    age = now_year - birth_year
    
# 출생월이 현재 월이랑 같은 경우 day 비교
elif birth_month == now_month :
    # 출생일이 현제일 보다 빠른 경우
    if birth_day < now_day :
        age = now_year - birth_year
    else :
        age = now_year - birth_year -1
# 그 외 (안 지남)
else :
    age = now_year - birth_year -1
    
print("-" * 50)
print("오늘날짜 : %d년 %d월 %d일" % (now_year, now_month, now_day))
print("생년월일 : %d년 %d월 %d일" % (birth_year, birth_month, birth_day))
print("-" * 50)
print("만 나이 : %d " % age)
 

 


 

코딩 연습 )

'''
서비스 만족도에 따라 팁 계산
'''

print("서비스 만족도")
print("1 : 매우만족")
print("2 : 만족")
print("3 : 물만족")

a = input("서비스 만족도는? (1,2,3)")
price = int(input("음식 값은? "))

if a == "1":
    tip = int(price * 0.2)
    service = "메우 만족"
elif a == "2":
    tip = int(price * 0.1)
    service = "만족"
else :
    tip = ()
    service = "불만족"

print()
print("서비스 만족도 : %s, 팁 : %d원" % (service, tip))
 

음식점 서비스 만족도에 따라 팁을 계산하는 프로그램

팁 - 매우 만족 : 음식 값 20%, 만족 : 음식 값 10%, 불만족: 0%

 

'''
웹 사이트 콘텐츠 이용 가능 여부 판단
'''

userid = input(" id? ")

if userid == admin :
    print("콘텐츠 이용이 가능합니다")
else :
    level = int(input("회원 레벨은?(1~9)"))


if level >= 1 and level <= 3:
    print("콘텐츠 이용이 가능합니다")
else :
    print("콘텐츠 이용할 수 없습니다")
 

웹 사이트 아이디와 회원 레벨에 따라 콘텐츠 이용 가능 여부 판정하는 프로그램

단, 아이디가 'admin'이면 이용 아능 메시지 출력, 아닐경우 회원 레벨 1~3이면 이용가능 아니면 사용 불가

 

'''
온도에 따라 물의 상태를 판별
'''

unit = input("단위를 입력해 주세요(1:섭씨 2:화씨): ")
temp = int(input("온도를 입력해 주세요 : "))

if unit == "2" :
    temp = (temp - 32) + 5 / 9

    elif temp <= 0:
        state = "고체"
    elif temp < 100:
        state = "액체"
else :
    state = "기체"

print("물의 섭씨 온도 : %.1f도, 상태 : %s" % (temp, state))
 

물의 온도와 단위(섭씨, 화씨)를 입력받아 물의 상태를 판별하는 프로그램

단위로 화씨 입력되었을 시 변환하여 물의 상태를 판별

화씨 계산 : (화씨온도-32) * 5 / 9

 

 

 

 

 

반복문

/ 4.1 반복문이란?

 

 

Python 의 반복문

1. for()

2. while()

= 특정 문장을 반복해서 여러 번 수행 할 때 사용함

# 인사 3번 출력하기

print("안녕하세요")
print("안녕하세요")
print("안녕하세요")

print() 

#반복문 사용

for x in range(3) : # x가 0~2의 값을 가지고 5번 반복
    print("안녕하세요")3
 
'''
range() 함수
'''

#0~9 출력 10번 출력  (0부터 시작할꺼면 시작 생략가능)
for i in range(10):
    print(i, end=" ") #end=" " 공백으로 한 줄 출력

print() # 한 줄 띄기

#1~10 10번 출력 (시작이 1이니까 꼭 시작 위치를 명시)
for i in range(1, 11): #(1, 11, 1) 1은 생략
    print(i, end=" ")

print()

#1~10 2씩 증가해서 출력 1,3,5,7,9 - 5번 출력
for i in range(1, 10, 2):   #(시작, 종료, 증가수)
     print(i, end=" ")

print()

#20에서 1까지 -2씩 감소 20, 18,, 16, ...
for i in range(20, 0, -2):
 print(i, end=" ")
 
print(i, end=" ")
#변수 i의 값을 출력후 다음 줄 바꿈 대신 공백(" ")을 삽입
 

 

 

/ 4.2 for문

# if문으로 배수 합계 구하기
sum = 0
for i in range(100, 201):

    if i%5 == 0 :
        sum = sum + i

print("5의 배수는 합계 %d " % sum)
 
'''
5의 배수 합계 구하기 (100~200)
'''
# for문으로 배수 합계 구하기

sum = 0

for i in range (100, 201, 5):
    sum = sum +i
    
print("5의 배수는 합계 %d " % sum)
 
'''
전화번호에서 하이픈(-) 삭제하기
'''

phone = input("하이픈(-)을 포함한 휴대폰 번호를 입력하세요 : ")

for x in phone:
    if x != '-':
        print("%s" % x, end = " ")
 

 

'''
for문으로 갈아 환산표를 만들어라
1~100cm 1씩 증가 -> mm, m, inch로 환
'''

print("-"*40)
print("\tcm\tmm\tm\tinch")
print("-"*40)
      
for cm in range(1,101,1) :
    mm = cm * 10.0
    m = cm * 0.01
    inch = cm * 0.3937
    print("\t%d\t%d\t%.2f\t%.1f" % (cm, mm, m, inch))

print("-"*40)
 

 

'''
키보드로 입력된 숫자에서 홀수의 개수를 카운트하는 프로그램
'''

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

total = 0

for a in number :
    a = int(a)
    if a%2 == 1 :
        total = total + 1

print("홀수의 개수 : %d 개" % total)
 

100은 검사를 못 함

 

 

/ 4.4 while 문

 

while 조건식 :
   문장1
   문장2
   ...
 

while() : while문은 조건식이 True인 동안 문장1, 문장2, ... 반복 수행

구간은 for / 조건은 whlie

'''
1~10의 합계
'''
sum = 0
i = 1

while i <= 10 : # 
    sum = sum + 1
    print("i의 값 : %d => 합계 : %d" %(i, sum))

    i = i + 1 # 이 로직이 없으면 무한루프 (탈출 코드)
 

while 에 i변수가 있으므로 문장 내에 i의 증감식 로직이 없으면 무한루프를 탐

 

'''
500~600까지 정수의 5의 배수의 합계 구하는 프로그램
'''

sum = 0 #항상내가 쓸 함수들을 초기화시켜줘여함
i = 500

while i <= 600:
    if i%5 == 0:
        sum = sum + i

    i = i + 1

print("5의 배수의 합계 %d" % sum)
 

 

 

 

/ 4.5 break문으로 빠져 나가기

 

반복문을 돌다가 특정 조건을 만족 했으때 벗어나고 싶으면 break

'''
500~600까지 정수의 5의 배수의 합계 구하는 프로그램
'''

sum = 0 #항상내가 쓸 함수들을 초기화시켜줘여함
i = 500

while i <= 600:
    if i%5 == 0:
        sum = sum + i

    if i == 555:
        break #반복문을 돌다가 특정 조건을 만족 했으때 벗어나고 싶으면 break

    i = i + 1

print("5의 배수의 합계 %d" % sum)
 

while true -> 조건 while 문 break문이 있어야함 없으면 무한루프

 


 

 

과제

 

1. 일주일간 일한 시간에 따라 주급을 계산하는 프로그램을 작성하시오.

단, 시급은 12,000원, 40시간을 초과한 시간에 대해서는 오버타임을 적용하여 시급의 1.5배로 계산

'''
일주일간 일한 시간에 따라 주급을 계산하는 프로그램
단, 시급은 12,000원, 40시간을 초과한 시간에 대해서는
오버타임을 적용하여 시급의 1.5배로 계산함.
'''

name = input("이름을 입력하세요 : ")
week_time = int(input("일주일간 일한 시간을 입력하세요 : "))


# 시급 : 12,000, 시간 : 40시간, 추가시급 : 12000 * 1.5, 오버타임 0기초
hour = 12000
time = 40
over_pay = 12000 * 1.5
over_time = 0 

if week_time < time :           # 일한 시간이 40 시간 미만일때             
    pay = week_time * hour      # 주급은 (일한 시간 * 시급)
    
else :                                            # 40시간이 넘었을때
    over_time = (week_time - time)                # 오버타임은 (일한 시간 - 40)
    pay = (time * hour) + (over_time * over_pay)
    # 주급 (일한시간 * 시급) + (오버타임 * 추가시급)


#실행 화면
print("- 이름 : %s" % name)
print("- 일주일간 일한 시간 : %d시간" % week_time)
print("- 오버타임 : %d시간" % over_time)
print("- 주급 : %d원" % pay)
 

시금은 12000원 40시간 넘어가면 1.5배

ex) 50시간 40은 기본 수당 나머지 10시간은 오버타임 1.5

오버타임 : 워크타임-40h

 

 

2. 성적을 입력받아 등급(수: 90점 이상, 우: 80점 이상, 미: 70점 이상, 양: 60점 이상, 가: 60점 미만)을

판정하는 프로그램

단, 'q'를 입력하면 프로그램이 종료됨

'''
성적을 입력받아 등급
(수: 90점 이상, 우: 80점 이상, 미: 70점 이상, 양: 60점 이상, 가: 60점 미만)을
판정하는 프로그램
단, 'q'를 입력하면 프로그램이 종료됨
'''


while True :

    score = int(input("성적을 입력하세요 : "))
    
    if score >=90:              # 90점 이상이면"수"
        print("등급 : 수")
        
    elif score >=80:            # 80점 이상이면"우"
        print("등급 : 우")
        
    elif score >=70:            # 70점 이상이면"미"
        print("등급 : 미")
        
    elif score >=60:            # 60점 이상이면"양"
        print("등급 : 양")
    else:                       # 60점 미만이면"가"
        print("등급 : 가")

    choose = input("계속하시겠습니까? (중단 : q, 계속 : y)") 

    if choose == "q" :          # 입력받은 choose가 q일 때
        
        print("프로그램을 종료합니다")
        break                # while True에서 break가 없으면 무한루프, 반복문 빠져 나가기
 

q를 누르면 종료 안 누르면 계속 반복 whlie true으로 무한루프

q= break

 

 

 

 

 

https://blog.naver.com/illilllilli_

'Language > Python' 카테고리의 다른 글

[Python] 타자 게임 만들기  (2) 2023.03.20
[Python] 주말 코딩 연습  (1) 2023.03.20
[Python] 4) 함수_모듈_파일  (0) 2023.03.19
[Python] 3) 리스트_튜플_딕셔너리  (2) 2023.03.17
[Python] 1) 파이썬 기초_기본 문법  (4) 2023.03.15
Comments