KDT_4기 파이썬 기초 0925(1)
2024.09.25 수업 내용 복습일기 첫번째
오늘은 제어문 중 조건문에 대해 알아보자
1. 조건문
조건문은 코드의 실행 흐름을 제어하기 위해 사용하는 구문입니다. 이 조건문은 주어진 조건이 참인지 거짓인지에 따라 다른 코드를 실행하게 합니다.
2. if 문
가장 기본적인 조건문입니다. 특정 조건이 참(True)일 경우에만 해당 블록 내의 코드가 실행됩니다.
if 조건:
실행할 코드
여기에서 조건은 True 또는 False로 평가될 수 있는 표현식이어야 합니다. 조건이 True로 평가되면 if 문 바로 아래의 코드 블록이 실행됩니다. 그렇지 않으면 그 코드 블록은 건너뜁니다.
if True:
print('결과는 참입니다')
print('프로그램을 종료함')
if False:
print('결과는 참입니다')
print('프로그램을 종료함')
if '안녕':
print('결과는 참입니다')
print('프로그램을 종료함')
값이 없으면 파이썬은 False값을 가지기 때문에 if문 안의 문장을 실행하지 않음
if '': #콜론의 역할 :다음 문장을 실행할지 말지 결정해주는 키워드
print('결과는 참입니다')
print('프로그램을 종료함')
age = int(input('나이를 입력하세요'))
if age > 19:
print('성인입니다')
print('입력한 나이:',age)
age = int(input('나이를 입력하세요'))
if age > 19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있어요')
print('입력한 나이:',age)
3. else 문
else는 파이썬의 조건문 구조에서 if와 elif 조건들이 모두 거짓으로 평가될 경우 실행되는 부분을 정의하는 데 사용됩니다. else는 선택적으로 사용될 수 있으며, 그 자체로는 어떤 조건을 갖지 않습니다. 다시 말해, else 블록은 위의 if와 elif 조건들이 모두 만족되지 않는 경우에만 실행됩니다.
if 조건1:
코드 블록1
elif 조건2:
코드 블록2
else:
코드 블록3
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있어요')
else:
print('미성년입니다')
print('디즈니플러스를 보세요')
print('입력한 나이: ', age)
4. elif 문
elif는 if-else 구조에서 추가적인 조건을 검사하기 위해 사용되는 키워드입니다. elif는 "else if"의 줄임말이며, 주어진 여러 조건 중에서 하나만 참일 때 실행되는 코드 블록을 정의합니다.
if 조건1:
코드 블록1
elif 조건2:
코드 블록2
elif 조건3:
코드 블록3
else:
코드 블록4
- elif는 if 없이 단독으로 사용될 수 없습니다.
- elif는 필요에 따라 여러 번 사용될 수 있습니다.
- else는 선택적입니다. 사용될 경우, 항상 if나 elif 뒤에 나타나야 합니다.
elif를 사용함으로써 여러 조건을 순차적으로 검사하고, 해당 조건에 따라 다른 행동을 취할 수 있습니다. 이는 코드의 가독성을 높이고, 조건의 우선순위를 명확하게 만들어 줍니다.
age = (int(input('나이를 입력:')))
if age > 19:
print('성인입니다')
elif age > 14:
print('청소년입니다')
elif age > 6:
print('어린이입니다')
elif age > 0:
print('유아입니다')
print('입력한 나이: ', age)
age = (int(input('나이를 입력:')))
if age > 19:
print('성인입니다')
elif age > 14:
print('청소년입니다')
elif age > 6:
print('어린이입니다')
elif age > 0:
print('유아입니다')
else:
print('다시 입력해 주세요')
print('입력한 나이: ', age)
문제1
아래와 같은 조건을 만족하는 로그인 프로그램을 만들어보자
- 아이디를 입력하세요: 아이디입력
- 비밀번호를 입력하세요: 비밀번호 입력
- 결과는 "로그인 되었습니다" or "아이디 또는 비밀번호를 확인하세요" 출력
- 단 아이디: apple, 비밀번호: 1234 인 경우 "로그인 성공!"
id = (input('아이디를 입력하세요:'))
pw = (input('비밀번호를 입력하세요:'))
if id == 'apple' and pw == '1234':
print('로그인 되었습니다')
else:
print('아이디 또는 비밀번호를 확인하세요')
elif를 사용하여 아이디와 비밀번호중 무엇이 틀렸는지 알려줄 수 있도록 만들어 보았다
id = (input('아이디를 입력하세요:'))
pw = (input('비밀번호를 입력하세요:'))
if id == 'apple' and pw == '1234':
print('로그인 되었습니다')
elif id != 'apple':
print('아이디를 확인하세요')
elif pw != '1234':
print('비밀번호를 확인하세요')
else:
print('회원가입 여부를 확인하세요')
문제2.
주민등록 번호를 입력받아 성별을 판별하는 프로그램을 만들어보자
- 주민등록번호를 입력하세요: 주민등록번호 입력
- 결과는 "남자" or "여자"라고 출력
- 1,3,5,7,9는 남자 2,4,6,8,0은 여자라고 함
- 예) 주민번호가 다음 0010113068518과 같다면 7번째 숫자가 성별임
id = input('주민등록번호 13자리를 -없이 입력하세요:')
print(id)
if int(id[6]) % 2 == 1:
print('남자')
else:
print('여자')
문제 3
- 국어점수,영어점수,수학점수를 입력받아 총점,평균,학점을 구하는 프로그램을 작성
- 단 입력방식은 국어/영어/수학 형태로 입력 (예: 100/70/85)하며 학점을 평균을 기준으로 90점이상 A 80점 이상 B 70점이상 C 60점이상 D 나머지는 F라고함
kor,eng,math = input('국어/영어/수학 점수를 입력하세요:').split('/')
print('국어점수 :',kor)
print('영어점수 :',eng)
print('수학점수 :',math)
print('총점:',int(kor)+int(eng)+int(math))
ave = (int(kor)+int(eng)+int(math))/3
print('평균:',ave)
if ave >= 90:
print('학점 A')
elif ave >= 80:
print('학점 B')
elif ave >= 70:
print('학점 C')
elif ave >= 60:
print('학점 D')
else:
print('학점 F')
변수와 f - string을 사용하여 좀 더 간결하게 코드를 작성해 보았다
kor,eng,math = input('국어/영어/수학 점수를 입력하세요:').split('/')
print('국어점수 :',kor)
print('영어점수 :',eng)
print('수학점수 :',math)
tot = int(kor)+int(eng)+int(math)
ave = tot/3
hak = 'F'
if ave >= 90:
hak = 'A'
elif ave >= 80:
hak = 'B'
elif ave >= 70:
hak = 'C'
elif ave >= 60:
hak = 'D'
print(f'총점:{ave}')
print('평균{:.2f}'.format(ave))
print(f'학점:{hak}')
성격 유형 테스트 예제
print('성격 유형 테스트에 오신걸 환영합니다')
answer1 = input('1.다른 사람과 함께 있는것을 좋아하나요? (y/n):').strip().lower()
#첫번째 질문 : 외향적, 내향적
if answer1 == 'y':
#두번재 질문
answer2 = input('새로운 사람을 만나는 것이 즐거운가요? (y/n):').strip().lower()
if answer2 == 'y':
answer3 = input('많은 사람과 함께 하는것을 선호하나요? (y/n):').strip().lower()
if answer3 == 'y':
personality_type = '외향적이고 사교적인 성격입니다'
else:
personality_type = '외향적이고 신중한 성격입니다'
else:
personality_type = '외향적이고 안정을 추구하는 성격입니다'
#내향적
else:
answer4 = input('혼자 있는 것이 즐거운가요? (y/n):').strip().lower()
if answer4 == 'y':
personality_type = '내향적이고 우울한 성격입니다'
else:
personality_type = '내향적이고 밝은 성격입니다'
print(f'당신의 성격 유형: {personality_type}')
과제
중복 if문을 사용하여 위 예제와 비슷한 프로그램을 자유롭게 작성
print('MBTI 성격 유형 테스트에 오신걸 환영합니다')
print('당신은 P 일까요 J 일까요?')
print('테스트 시작')
answer1 = input('여행 갈때 즉흥적인 편인가요? (y/n):').strip().lower()
# 질문 : P스타일
if answer1 == 'y':
#두번재 질문
answer2 = input('과제가 있을 시 최대한 미루는 편인가요? (y/n):').strip().lower()
if answer2 == 'y':
answer3 = input('청소를 하는 중간에 자꾸 다른 일에 빠지나요? (y/n):').strip().lower()
if answer3 == 'y':
answer4 = input('과제를 할 때에 과정을 중시하는 편인가요? (y/n):').strip().lower()
if answer4 == 'y':
MBTI_type = '당신의 성격은 P입니다'
else:
MBTI_type = '당신의 성격은 J입니다'
else:
MBTI_type = '당신의 성격은 J입니다'
else:
MBTI_type = '당신의 성격은 J입니다'
else:
MBTI_type = '당신의 성격은 J입니다'
print(f'당신의 성격 유형: {MBTI_type}')
5. 조건부 표현식(Conditional Expression)
조건부 표현식은 파이썬에서 삼항연산자라고도 불립니다. 간단한 if-else 구문을 더 간결하게 표현할 수 있는 방법을 제공합니다.
조건이 참인 경우 값 if condition else 조건이 거짓인 경우 값
- 삼항 연산자는 코드를 간결하게 만들어주지만, 너무 복잡한 조건이나 연산을 포함하면 코드의 가독성이 떨어질 수 있습니다. 따라서 적절한 상황에서만 사용하는 것이 좋습니다.
- 여러 삼항 연산자를 중첩하여 사용할 수 있지만, 코드의 가독성이 떨어지므로 권장하지 않습니다.
num = int(input('정수를 입력하세요: '))
if num % 2 == 0:
print('짝수')
else:
print('짝수')
num = int(input('정수를 입력하세요: '))
print('짝수') if num % 2 == 0 else print('홀수')
age = (int(input('나이를 입력:')))
if age > 19:
print('성인입니다')
elif age > 14:
print('청소년입니다')
elif age > 6:
print('어린이입니다')
elif age > 0:
print('유아입니다')
else:
print('다시 입력해 주세요')
print('입력한 나이: ', age)
위의 예제를 조건부 표현식을 이용하여 코드를 만들어 보았다
age = (int(input('나이를 입력:')))
print('성인입니다') if age > 19 else print('청소년입니다') if age > 14 else print('어린이입니다') if age > 6 else print('유아입니다') if age > 0 else print ('다시 입력해 주세요')
print(f'입력한 나이:{age}')
'인공지능 > 파이썬 기초' 카테고리의 다른 글
컬렉션과 반복문 컴프리헨션 (0) | 2024.09.29 |
---|---|
제어문-반복문 (0) | 2024.09.29 |
연산자 (0) | 2024.09.29 |
컬렉션 타입- 딕셔너리 (2) | 2024.09.26 |
파이썬 컬렉션 타입 - 세트 (0) | 2024.09.26 |