제어문 : if
수행할 문장은 반드시 들여쓰기 # ** (들여쓰기는 언제나 같은 깊이로 해야한다.(같이 실행 될거면))
조건문 반복문 끝에는 ' : ' 사용
숫자 | 0이 아닌 숫자 | 0 |
문자열 | 비어있지 않은 상태 | "" |
리스트, 튜플, 딕셔너리 | 비어있지 않은 상태 | 빈 상태 |
if문의 형식
if 조건문 1 :
수행할 문장
elif 조건문 2:
수행할 문장
else:
수행할 문장
score = float(input("직접입력: "))
if score >= 90:
print("합격")
elif 70 <= score < 90 :
print("재시험")
else:
print("탈락")
[문제] 정수 하나를 입력 받아, 5 의 배수인지 조사하여 그 결과를 출력하세요
i = int(input("입력: "))
if i % 5 == 0:
print("5의 배수입니다")
else:
print("5 의 배수가 아닙니다")
[문제] 화폐 단위 계산
형식 유지 태그
사용자로부터 금액을 입력받아 화폐의 개수를 출력하는 프로그램을 출력하세요.
조건) 화폐의 종류(단위): 만원, 천원, 백원, 십원 (일원 단위는 절사)
<실행 예>
금액을 입력하세요: 46530
만원: 4개
천원: 5개
백원: 6개
십원: 3개
won = int(input("금액을 입력하세요: "))
만원 = won //10000
천원 = (won % 10000) // 1000
백원 = (won % 1000) // 100
십원 = (won % 100) // 10
print(f"만원: {만원}개")
print(f"천원: {천원}개")
print(f"백원: {백원}개")
print(f"십원: {십원}개")
%를 사용하여 나머지를 사용하였다. 화폐 단위로는 몫만을 가져오는 // 를 사용.
반복문: while
조건이 만족하는 동안 명령문을 반복적으로 실행한다. (조건이 참 일때까지 진행, 반복의 횟수를 지정하지 않음)
while 조건:
명령
while ~ else 문: 조건을 만족하지 않아 while 문을 빠져나오게 되면 else 문이 실행된다.
while 문 안에 break를 넣게 되면 강제종료되어, else 문장은 나오지 않는다.
[문제] 1 에서 100 사이의 값 중 짝수의 합을 구하는 코드를 작성하세요.
sum = 0
for i in range(1,101) :
if i%2 : # if i % 2 == 0: # if not i%2:4
continue
sum += i
print(sum)
반복문 : for
range() 함수와 함께 사용하여 지정된 횟수만큼 반복하거나 문자열이나 리스트와 같은 자료형 순회할때 사용
a = [1,2,3,4] # a는 list 객체(list: 동일한 데이터 타입의 집합)
result = [ ]
for i in a:
result.append(i*3) # append()는 리스트 객체에 요소 값을 추가하는 함수
print(result)
# [3, 6, 9, 12]
# result = [] list 의 빈 방을 만들어 주는 것
# 출력문에 [ ] 같이 나오는 것 = 리스트라는 변수 타입을 알려주는 것이다
range(start, end, step)
start, end는 생략 가능하며 start를 생략하면 step은 1씩 증가하게 된다.
for 와 list를 사용할때에는 아래 코드처럼 List Comprehension을 사용하는 것이 파이썬스러운 코드에 적합하다.
# list comprehension
a = [1,2,3,4]
result = [ i*3 for i in a ]
print(result)
a에서 원소를 하나씩 빼온다. -> 만약 i가 2의 배수이면 3을 곱하고 아니면 원래 원소를 저장한다.
a = [1,2,3,4]
result = [ i*3 if i%2 == 0 else i for i in a ]
print(result) # [1, 6, 3, 12]
# 순서도
# if i%2 == 0 else i
# for i in a
# i*3
for ~ else 문
for ~ else : 반복문이 break 등으로 중간에 빠져나오지 않고 끝까지 실행됐을 경우 else 문이 실행
if not find : print("검색결과가 없습니다")
>> find = False 로 설정하여 for 문 안에서 find에 대한 조건문을 만들어 놓는다. (검색단어를 발견한 경우)
find = true 가 되어 검색단어를 찾으면 break 만약 단어를 다 찾았는데도 find가 false라면 검색결과가 없다고 출력하라고 한다.
break
반복문을 끝낸다. 조건문과 함께 반복을 끝낼 조건을 검사한 후 실행한다.
key_word = input("검색단어를 입력하세요: ")
word_list = ["java", "python", "c++","pascal"]
find = False
for w in word_list:
if key_word == w:
print("검색결과: ",w)
find = True
break
if not find : print("검색결과가 없습니다")
#else:
# print("검색결과가 없습니다") 오류적 err
[문제] for 문과 문자열 반복을 이용하여 다른 문자열이 출력되는 프로그램을 작성하세요.
---------+---------+---------+---------+---------+
a ="-"
for i in range(5):
print (a*5,end='')
print("+",end='')
print('\n')
# 틀린 답
for i in range(5):
print(a*5 ,sep='+',end='')
# sep 는 값이 두 개일 때 구분하는 용 이기 때문에
#하나만 출력하는 상황에서는 쓰이지 않음
continue
현재 반복문 실행을 중지하고 다음 반복을 수행한다.
조건문과 함께 현재 반복을 끝낼 조건을 검사한 후 실행한다.
[문제] 입력받은 단의 구구단을 출력하는 프로그램을 작성하세요.
num = int(input("단을 입력하세요: "))
for i in range(1,10):
print(f"{num} x {i} = {num*i}")
내가 만든 코드는 2중 for문을 사용하여 만들었다.
num = int(input("단을 입력하세요: "))
if num >9 or num < 2:
print("잘 못 입력 하셨습니다.")
else:
for i in range(2,10):
for j in range(1,10):
print(num,"*",j ,"=",num*j)
if j==9 : break
[문제] 정수 하나를 입력 받아 1부터 입력받은 정수까지의 합을 구하여 출력하세요 단, 반복문은 while 을 이용할 것
n = int(input("정수 입력: "))
s = 0 # 반복 횟수 지정
k = 0
sum = 0
mum = 0
# 내가 적은 코드
while s <= n:
sum += s
s += 1
print (sum)
# 교수님 코드
# = 을 적으면 다음 s 까지 합해지기 때문에 안됨
while k < n:
k += 1
mum += k
print (mum)
[문제] 연도를 입력받아 윤년인지 평년인지 판단하는 프로그램을 작성하세요.
- 프로그램은 반복적으로 수행되며 0을 입력받으면 종료 한다
- 윤년조건 : 4로 나누어 떨어지고, 100으로 나누어 떨어지지 않는 해 또는 400으로 나누어 떨어지는 해는 윤년이다.
[실행 예]
연도를 입력하세요(종료 0): 2020
2020년은 윤년입니다~!
연도를 입력하세요(종료 0): 2021
2021년은 평년입니다..
연도를 입력하세요(종료 0): 0
# 내가 적은 코드
while True :
year = int(input("연도를 입력하세요(종료: 0): "))
if year == 0: break
elif (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f"{year}년은 윤년입니다")
continue
else :
print(f"{year}년은 평년입니다")
continue
# 교수님 코드
# 삼항 연산자
while True :
year = int(input("연도를 입력하세요(종료: 0): "))
if year == 0: break
result = "윤년" if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0 else "평년"
print(f"{year}년은 {result}입니다")
[문제] BMI 측정 프로그램
- 키와 몸무게 입력받아 BMI 측정 결과를 출력하는 프로그램을 작성하세요
[실행예시]
키를 입력하세요(cm): 170
몸무게를 입력하세요(kg): 85
당신의 BMI 는 비만 1단계입니다.
[BMI 계산식]
BMI = 몸무게(Kg) / (키(m)의 제곱)
18.5 미만: 저체중 / 18.5 ~ 22.9 : 표준체중 / 23 ~ 29.9 : 비만 1단계 / 29.9 초과 : 비만 2단계
# 주석이 교수님 코드
height = float(input("키를 입력하세요(cm): "))
weight = float(input("몸무게를 입력하세요(kg): "))
result = weight / ((height/100)**2)
# re = '' # null string 으로 생성
if result < 18.5:
print("당신의 BMI 는 저체중입니다")
# re = '저체중'
elif 18.5 <= result <= 22.9:
print("당신의 BMI 는 표준체중입니다")
# re = '정상체중'
elif 23 <= result <= 29.9:
print("당신의 BMI 는 비만 1단계입니다")
# re = '비만 1 단계'
elif result > 29.9:
print("당신의 BMI 는 비만 2단계입니다")
# re = '비만 2 단계'
# print(f"당신의 BMI {re} 입니다")
'국비 교육 > 파이썬' 카테고리의 다른 글
[파이썬] List (0) | 2023.11.04 |
---|---|
[파이썬] 문자열 다루기 (0) | 2023.11.04 |
[파이썬] 주석, 연산자, 표준 입출력 (0) | 2023.11.04 |
[파이썬] 아나콘다 설치하기 (0) | 2023.11.04 |