
if 조건식1:
명령문1
if 조건식2:
명령문2
else:
명령문3
else:
명령문4
if 조건식1:
명령문1
elif 조건식2:
명령문2
else:
명령문3
score = 85
if score >= 90:
print("A")
_____: → else
print("B")
if score >= 90:
print("A")
_____ score >= 80: → elif
print("B")
if age >= 10 _____ height >= 165: → and
print("탑승 가능")
if age 65: → or
print("할인 대상")
if num _____ 0: → >, =, 10:
if num = 90:
print("A")
elif score >= 80:
print("B")
else:
print("C")
# 자료 원소
for 변수 in 리스트:
반복할 문장
# 범위 값
for 변수 in range():
반복할 문장
# 리스트
for i in [0, 1, 2]:
print(i)
# 문자열
for char in "hello":
print(char)
while 조건식:
반복할 문장
# for문
for i in range(start, end, step):
반복할 문장
# while문으로 변환
i = start
while i < end:
반복할 문장
i = i + step
while True:
반복할 문장
flag = False
for i in range(10):
for j in range(10):
if 조건:
flag = True
break
if flag:
break
1번)
사용자로부터 두 정수를 입력받고 작은 숫자 이상 큰 숫자 이하의 수 중에서
3으로 끝나는 숫자를 제외하고 다른 숫자 모두를 출력하는 프로그램을 작성하시오.
num1 = int(input("number1 : "))
num2 = int(input("number2 : "))
if num1 > num2:
big = num1
small = num2
else:
big = num2
small = num1
for i in range(small, big + 1):
if i % 10 != 3:
print(i, end=" ")
이 부분에서 고민했던 것은 3으로 끝나는 숫자의 판별이였다. 짝수 홀수로 판별할수없고 내가 배운 부분에서는 바로 떠오르지 않았다.
그래서 1의자리만 남게 만들고 그 값이 3이면 제외하고 출력하는 방법을 사용했다.
10으로 나누면 1의자리 숫자만 남게된다. 이 방법은 쉽지만 생각하기 어려웠다고 생각한다.
2번)
사용자로부터 두 숫자를 입력받고 두 숫자 사이의 수 중에서 홀수와 짝수의 개수를 구하는 프로그램을 작성하시오.
(입력된 두 숫자 포함하여 홀수/짝수 계산)
num1 = int(input("number1 : "))
num2 = int(input("number2 : "))
even = 0
odd = 0
if num1 > num2:
big = num1
small = num2
else:
big = num2
small = num1
for i in range(small, big + 1):
if i % 2 == 0:
even += 1
else:
odd += 1
print(f"짝수의 개수: {even}, 홀수의 개수: {odd}")
이 문제는 비교적 쉽게 작성할 수 있었다. 홀수와 짝수는 명확하게 '%2' 를 통해 알아낼수 있기 때문이다.
3번)
답을 연속으로 맞출수록 점수가 커지는 OX퀴즈가 있다. O는 정답을, X는 오답을 의미한다. 정답인 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, "OOXXOXXOOO"의 점수는 총 1+2+0+0+1+0+0+1+2+3 = 10점이다. 퀴즈의 OX를 입력받은 후 점수를 계산하는 프로그램을 작성하시오. OX 문자를 입력하면 반복 진행하며, 다른 문자를 입력하면 점수 결과를 출력하고 종료한다.
score = 0
sum = 0
while True:
OX = input("영어 O or X 를 입력하세요 (종료하려면 'OX외 다른문자' 입력): ")
if OX != "O" and OX != "o" and OX != "X" and OX != "x":
break
if OX == "O" or OX == "o":
score += 1
sum += score
elif OX == "X" or OX == "x":
score = 0
print(f"종료합니다. \n퀴즈 점수는 {sum}점 입니다.")
처음에 보고 꽤 오랜시간동안 고민했다. 단순히 점수의 합이 아니라 연속되면 점수가 올라가는 방식이라 중간에 초기화가 필요했다.
그래서 앞서 배웠던 개념중에서 인터프리터 방식에선 한줄씩 읽기때문에 객체의 값이 계속 변할수있다는 점을 이용했다.
윗줄에서 'O'면 score의 점수가 쌓인다. 그리고 sum에 더해준다. 그런데 'X'가 입력되면 score가 0으로 초기화되고 다시 반복한다.
그럼 또 연속된 'O'의 갯수에 따라 score가 쌓이고 sum에 더해준다. 다른 방법도 있겠지만 좀 더 학습해야할것같다.
또한 사용자에게 입력받을때 영어 ox가 대문자나 소문자 둘다 인식하게 해줘야하는데 그 코드를 and방식으로 연결한건 비효율적으로 보인다.
다른 방법도 있겠지만 현재의 난 이 방법을 사용해야했다.