''' 
제어문이란? 명령어의 흐름(순서)를 제어하는 용도로 이용 
제어문의 종류 
     : 조건문 - if , if~else~ , 다중 조건문 if ~ elif ~ else 
     : 반복문 - while 조건식 : while 무한루프 + break   
             - for ~ in range(), for ~ in 문자열|리스트|튜플|딕셔너리 
     : 기타명령어 - break, continue, pass  
제어문 : 들여쓰기(4칸, 탭키 1개)를 이용해서 실행 블록을 지정 
''' 
1. 단순 조건문 
''' 
조건식을 만족하면 명령문1 ~ 수행 
# 실행명령문이 여러개인 경우에는 들여쓰기 이용 
if 조건식|변수|값 : 
    명령문1 
    명령문2 
    ... 
# 실행명령문이 하나인 경우에는 한줄로 가능 
if 조건식|변수|값 : 실행명령문 
# True(참)이 되는 값  
# => 0이 아닌 숫자, True, 길이가 0이 아닌 빈 문자열이 아닌 문자열|리스트|튜플|딕셔너리|집합 
# False(거짓)이 되는 값 
# => 0, False, 길이가 0인 문자열|리스트|튜플|딕셔너리|집합, None 
''' 
# 양수이거나 0보다 크면 메세지 출력 
x = 10 
if ( x>=0 ) : 
    print(f' {x}은/는 양수이거나 0보다 크다.') 
print('if 테스트 종료')     
''' 
 10는 양수이거나 0보다 크다. 
if 테스트 종료 
''' 
x = -10 
if ( x>=0 ) :  
    print(f' {x}은/는 양수이거나 0보다 크다.') 
# 수행 명령어가 한 행인 경우 if 문뒤에 바로 사용 가능 
# ex) if ( x>=0 ) : print(f' {x}은/는 양수이거나 0보다 크다.') 
print('if 테스트 종료')    #if 테스트 종료 
# if 문을 여러번 쓴 경우 
# 짝수인지 홀수인지 출력  
# - 숫자 % 2 == 0 => 짝수 
# - 숫자 % 2 != 0 => 홀수 
x = 10 
if x%2 == 0 : print('짝수') 
if x%2 != 0 : print('홀수') 
print('짝수 홀수 테스트 종료') 
# if 문을 여러번 쓴 경우 
# 짝수인지 홀수인지 3의 배수인지 10의 배수인지 출력 
# - 숫자 % 2 == 0 => 짝수 
# - 숫자 % 2 != 0 => 홀수 
# - 숫자 % 3 == 0 => 3의배수 
# - 숫자 % 10 == 0 => 10의배수 
x=12 
if x%2 == 0 : print('짝수') 
if x%2 != 0 : print('홀수') 
if x%3 == 0 : print('3의배수') 
if x%10 == 0 : print('10의배수') 
print('짝수 홀수 테스트 종료') 
2. if~ else 조건문 
''' 
조건식을 만족하면(if) 명령문1 그렇지 않으면(else) 명령문2 수행 
# 실행명령문이 여러개인 경우에는 들여쓰기 이용 
if 조건식|변수|값 : 
    명령문1-1 
    명령문1-2 
    ... 
     
     
else : 
    명령문1-1 
    명령문1-2 
    ...      
# 실행명령문이 하나인 경우에는 한줄로 가능 
if 조건식|변수|값 : 실행명령문1 
else : 실행명령문1 
... 
''' 
# 짝수인지 홀수인지 출력 
# 단순 if 문 예시 
# - 숫자 % 2 == 0 => 짝수 
# - 숫자 % 2 != 0 => 홀수 
#if~else 구조로 변경 
# print('='*20) 
# x=10 
# if x%2 == 0 : 
#     print('짝수') 
# else: 
#     print('홀수') 
# print('if~else 테스트 종료') 
#짝수 
#if~else 테스트 종료 
# 미성년자 여부 판별 
# age = int(input('나이를 입력하세요...')) 
# if age>=19 : 
#     print('성인입니다.') 
#     print('투표권이 있습니다.') 
# else : 
#     print('미성년자 입니다.') 
# print('if~ else 테스트 종료2') 
3. if~ elif~ else 조건문 (다중 조건식) 
''' 
조건식1을 만족하면(if) 명령문1  
조건식2(elif)를 만족하면 명령문2 
그렇지 않으면(else) 명령문3 수행 
# 실행명령문이 여러개인 경우에는 들여쓰기 이용 
if 조건식|변수|값 : 
    명령문1-1 
    명령문1-2 
    ... 
     
     
elif 조건식|변수|값 : 
    명령문2-1 
    명령문2-2 
    ...      
else : 
    명령문 3-1 
    명령문 3-2 
    ... 
   
''' 
# x 값에 따라서 양수, 음수, 0 출력하기 
x = 0 
if x>0 : 
    print('양수') 
elif x<0 : 
    print('음수') 
else : 
    print('0') 
print('if~elif~else 테스트 종료') 
# 관계 연산자 : > , < , >= , <= , == , != 
# 논리 연산자 : and(논리곱), or(논리합), not(논리부정) 
# 3의 배수이거나 10의 배수이면 성공 그렇지 않다면 실패라는 메세지를 출력한다. 
# x = int(input('숫자를 입력하세요...')) 
# if (x%3==0) or (x%10==0) : 
#     print('성공') 
# else : 
#     print('실패')     
# 3의 배수이지만 5의 배수가 아니면 성공 그렇지 않다면 실패 출력 
# 15의 배수는 실패 
x = int(input('숫자를 입력하세요...')) 
if (x%3==0) and (x%5!=0) : 
    print('성공') 
else : 
    print('실패')
# Quiz1       
# ~7 : 영유아 
# 8 ~ 13 : 초등학생 
# 14 ~ 16 : 중학생 
# 17 ~ 19 : 고등학생 
# 20 ~ : 성인 
# 당신의 나이를 입력해주세요? ...12 
# 초등학생 
# 비교연산자 1 : minNumber < 변수 < maxNumber 
age = int(input('당신의 나이를 입력해주세요?...')) 
if age <= 7 and age>=0 : 
    print('영유아') 
elif age<= 13 :  
    print ('초등학생') 
elif age<=16 : 
    print('중학생')        
elif age<=19 : 
    print('고등학생') 
else : 
    print('성인') 
             
# 비교연산자 1 : minNumber < 변수 < maxNumber 
age = int(input('당신의 나이를 입력해주세요?...')) 
if 0<=age<=7 : 
    print('영유아') 
elif 8<=age<=13 :  
    print ('초등학생') 
elif 14<=age<=16 : 
    print('중학생')        
elif 17<=age<=19 : 
    print('고등학생') 
else : 
    print('성인')             
             
# 비교연산자 2 : 순서 주의 
age = int(input('당신의 나이를 입력해주세요?...')) 
if ( age>19) : 
    print(f' {age} => 성인') 
elif (age>16) : 
    print(f' {age} => 고등학생') 
elif (age>13) : 
    print(f' {age} => 중학생') 
elif (age>7) : 
    print(f' {age} => 초등학생') 
else : 
    print(f' {age} => 영유아') 
     
     
            
''' 
Quiz2 
키와 체중을 입력받은 후 bmi 값에 따라 메세지를 출력하여라. 
# bmi 공식 
k = 키(입력값) 단위 cm 
w = 체중(입력값) 
bmi = 체중(kg)/키(m)의제곱 
키의 단위는 미터(m) 
# bmi 값에 따라 출력되는 메세지 
고도 비만 : 35 보다 클 경우 
중등도 비만 : 30 - 35 미만 
경도 비만 : 25 - 30 미만 
과체중 : 23 - 25 미만 
정상 : 18.5 - 23 미만 
저체중 : 18.5 미만 
키를 입력해주세요... 단위 cm...175 
체중을 입력해주세요... 단위 kg...67 
bmi = 21.88 
정상 
'''
풀이)
height = int(input('키를 입력해주세요...단위 cm...')) 
weight = int(input('체중을 입력해주세요...단위 kg...')) 
bmi = int((weight)/((height/100)**2)) 
if bmi>=35 : 
    print('고도 비만') 
elif 30<=bmi<35 : 
    print('중등도 비만') 
elif 25<=bmi<30 : 
    print('경도 비만') 
elif 23<=bmi<25 : 
    print('과체증') 
elif 18.5<=bmi<23 : 
    print('정상') 
else  : 
    print('저체중')         
''' 
Quiz 
1. 딕셔너리에서 키와 값을 추가하는 방법은 무엇인가요? b 
   a) dict.add(key, value) 
   b) dict[key] = value   
   c) dict.insert(key, value) 
   d) dict.append(key, value) 
2. 딕셔너리의 모든 키를 가져오는 메서드는? a 
   a) dict.keys()   
   b) dict.get_keys() 
   c) dict.all_keys() 
   d) dict.fetch_keys() 
3. 집합에 요소를 추가하는 방법은? a 
   a) set.add(element)   
   b) set.append(element) 
   c) set.insert(element) 
   d) set.push(element) 
4. 두 집합의 합집합을 구하는 방법은? a 
   a) set1.union(set2)   
   b) set1.add(set2) 
   c) set1.merge(set2) 
   d) set1.combine(set2) 
5. 두 집합의 차집합을 구하는 방법은? a 
   a) set1.difference(set2)   
   b) set1.subtract(set2) 
   c) set1.remove(set2) 
   d) set1.exclude(set2) 
6. 집합에서 중복 요소를 제거하는 방법은? a 
   a) 집합은 본래 중복 요소를 허용하지 않음   
   b) set.remove_duplicates() 
   c) set.filter_duplicates() 
   d) set.unique() 
7. 다음 코드의 출력 결과는 무엇인가? d 
set_a = {1, 2, 3} 
set_b = {3, 4, 5} 
result = set_a ^ set_b 
print(result) 
a) {1, 2} 
b) {3} 
c) {4, 5} 
d) {1, 2, 4, 5}  
8. 다음 문자열을 리스트로 변환할 때 적절한 코드 조각은? b 
text = "apple,banana,cherry" 
a) list(text) 
b) text.split(",")   
c) text.to_list() 
d) split(text, ",") 
9. 다음 문자열에서 중복된 문자를 제거하고 리스트로 변환하여 출력하는 코드는? 
text = "python of program language" 
k = set(text) 
kk = list(k) 
print(kk) 
10. 다음 코드의 결과로 알맞은 것은? b 
my_set = {1, 2, 3, 2, 1} 
print(my_set) 
a) {1, 2, 3, 2} 
b) {1, 2, 3}  
c) [1, 2, 3, 2] 
d) {1, 2} 
11. 다음 중 딕셔너리의 특징이 아닌 것은?  b 
a) 키는 중복될 수 없다. 
b) 값은 중복될 수 없다.  
c) 순서가 보장되지 않는다. 
d) 키는 불변형 자료형이어야 한다. 
12. 출생년도를 입력받아 띠를 구하는 코드를 딕셔너리를 사용하여 코드로 작성하면?  
띠는 출생년도를 12로 나눈 후 나머지 값에 따라 결정된다  
 # 띠를 나타내는 딕셔너리 
zodiac_dict = { 
    0: "원숭이", 
    1: "닭", 
    2: "개", 
    3: "돼지", 
    4: "쥐", 
    5: "소", 
    6: "호랑이", 
    7: "토끼", 
    8: "용", 
    9: "뱀", 
    10: "말", 
    11: "양" 
} 
# 출력 예시 
출생년도를 입력하세요: 2009 
당신의 띠는 소 띠입니다. 
zodiac_dict = {    0: "원숭이", 
    1: "닭", 
    2: "개", 
    3: "돼지", 
    4: "쥐", 
    5: "소", 
    6: "호랑이", 
    7: "토끼", 
    8: "용", 
    9: "뱀", 
    10: "말", 
    11: "양"} 
birth_year = int(input('출생 연도를 입력하세요')) 
zodiac_index = birth_year%12 
zodiac_animal = zodiac_dict[zodiac_index] 
print(f"당신의 띠는 {zodiac_animal}입니다.") 
13. 다음 코드의 출력 결과는 무엇인가? b 
x = 0 
if x: 
    print("True") 
else: 
    print("False") 
a) True 
b) False  
c) 0 
d) None 
14. 다음 코드에서 ?에 해당되는 값이  어떤 조건이 충족되면 "Pass"가 출력될까? b,c 
x = ? 
if x % 2 == 0: 
    print("Pass") 
else: 
    print("Fail") 
a) x가 홀수일 때 
b) x가 짝수일 때  
c) x가 0일 때 
d) x가 1일 때 
15. 다음 코드의 출력 결과는 무엇인가? d 
temperature = -5 
weather_condition = '맑음' 
if temperature > 30: 
    print("더운 날씨입니다.") 
elif 20 <= temperature <= 30: 
    print("온화한 날씨입니다.") 
else: 
    print("추운 날씨입니다.") 
    if weather_condition == '맑음': 
        print("외출 시 따뜻한 옷을 입으세요.") 
a) 더운 날씨입니다. 
b) 온화한 날씨입니다. 
c) 추운 날씨입니다. 
d) 추운 날씨입니다. 외출 시 따뜻한 옷을 입으세요.  
16. 다음 코드의 출력 결과는 무엇인가? a 
year = 2000 
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): 
    print("Leap year") 
else: 
    print("Not a leap year") 
a) Leap year    
b) Not a leap year 
17. 아래의 코드는 주어진 연도가 윤년인지 아닌지를 판별하는 코드이다.  
if (    ) 의 조건식을 완성하여라.  
윤년은 다음과 같은 규칙에 따라 결정된다. 
- 연도가 4로 나누어 떨어지면 윤년. 
- 그러나 연도가 100으로 나누어 떨어지면 윤년이 아니다. 
- 다만 연도가 400으로 나누어 떨어지면 윤년. 
year = int(input("연도를 입력하세요: ")) 
if (                            ) : 
    print(f"{year}년은 윤년입니다.") 
else: 
    print(f"{year}년은 윤년이 아닙니다.") 
''' 
풀이)
year = int(input("연도를 입력하세요: ")) 
if (year%4 == 0 and year%100 != 0) or (year % 400 == 0) : 
    print('윤년') 
else : 
    print('윤년이 아니다.') 
'Python' 카테고리의 다른 글
| 9. 반복문(while문, 중첩 while문, 무한루프 while문) (1) | 2024.10.04 | 
|---|---|
| 8. 제어문 (중첩 if문, 유효성 검사, in 과 not in 연산자) (13) | 2024.10.04 | 
| 6. 딕셔너리, 세트 (0) | 2024.10.02 | 
| 5. 리스트 , 튜플 (4) | 2024.10.02 | 
| 4. 문자열 다루기 (4) | 2024.10.02 |