사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

문제 내용

input 함수를 사용하여, 계속적으로 숫자를 입력받다가 0이 입력되면 그 이전까지 입력받은 수들의 짝수 개수와 홀수의 개수를 출력하도록 코딩하시오.

문제 풀이

even = 0
odd = 0

while True:
    num = int(input("숫자를 입력하세요: "))
    
    if num == 0:
        break
    else:
        if num %2 == 0:
            even+=1
        else:
            odd+=1

print(f"지금까지의 숫자중 짝수는 {even}개 이고, 홀수는 {odd}개 입니다.")
        

코드 결과

숫자를 입력하세요: 4
숫자를 입력하세요: 3
숫자를 입력하세요: 102
숫자를 입력하세요: 7
숫자를 입력하세요: 55
숫자를 입력하세요: 10
숫자를 입력하세요: 78
숫자를 입력하세요: 0
지금까지의 숫자중 짝수는 4개 이고, 홀수는 3개 입니다.

나와 어울리는 개발자 유형 찾기

MBTI로 알아보는 개발자 유형 내 안의 개발자를 찾아서...⭐

comu.codeuniv.kr

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

지금까지는 짝수인지 홀수인지 말하는 것만 했었는데요,

이번에는 짝수이면 리스트에 추가해 봅시다.

리스트에 추가하는 것은 앞에서 [자동 리스트 만들기] 강의에서 배운 바 있습니다.

[짝수 리스트 만들기]

① 먼저 1부터 100까지를 확인하는 루프를 만듭니다.

x = 1 while x < 101: x = x+1

② 2의 배수인지 확인하는 if~ else를 씁니다. 2의 배수가 맞을 때/틀릴 때 할 일은 아직 안 정했으므로 비워둡니다.

x = 1 while x < 101: if x % 2 == 0: else: x = x+1

③ 2의 배수가 맞으면 리스트에 넣어야 합니다.

그럼 while 루프 전에 미리 리스트를 만들어야겠지요.

맞으면 a라는 리스트에 append()함수로 x를 추가해 줘야 합니다.

틀리면 그냥 넘어가면 됩니다.

a = [] x = 1 while x < 101: if x % 2 == 0: a.append(x) else: pass x = x+1

④ 위 코드를 실행하면 아무 것도 안나옵니다. print()를 안했기 때문입니다.

전체 결과만 알고 싶으면 while 루프 밖에, 맨 끝에 print(a)를 해줍니다.

a = [] x = 1 while x < 101: if x % 2 == 0: a.append(x) else: pass x = x+1 print(a)

만약 중간 결과도 알고 싶으면 while 루프 안에 print(a)를 해주면 루프가 한 번 돌 때마다 출력되겠지요.

a = [] x = 1 while x < 101: if x % 2 == 0: a.append(x) print(a) else: pass x = x+1 print(a)

[연습 문제]

① 1부터 100까지의 수 중 3의 배수의 리스트를 만들어 보세요.

② 1부터 100까지의 수 중 짝수 리스트와 홀수 리스트 둘 다 출력되게 만들어 보세요.

[답]

① 1부터 100까지의 수 중 3의 배수의 리스트를 만들어 보세요.

a = [] x = 1 while x < 101: if x % 3 == 0: a.append(x) else: pass x = x+1 print(a)

② 1부터 100까지의 수 중 짝수 리스트와 홀수 리스트 둘 다 출력되게 만들어 보세요.

a = [] b = [] x = 1 while x < 101: if x % 2 == 0: a.append(x) else: b.append(x) x = x+1 print(a) print(b)

리스트를 두 개 만들어서 각각 짝수 리스트, 홀수 리스트로 사용하면 됩니다.

else: 밑에 b.appen(x)라는 부분이 조금 이해안 될 수도 있는데...

else:로 들어왔을 때 x의 값은 2로 나눈 나머지가 0이 아닌 경우니까 홀수랍니다.

따라서 x를 그대로 b리스트에 집어넣어도 되는 거랍니다.

파이썬 찐초보

오늘의 목표

1. 조건문 사용하기

2. 반복문 안에 조건문을 사용하기

3. 약수 찾는 알고리즘 구현하기

1. 반복문 활용 연습

그럼 지난 글에서 정리했던 반복문을 복습해보자.

먼저, 1부터 사용자가 입력한 수까지의 합을 출력하는 코드를 작성해보자. 

반복문을 사용하는 방법은 for와 while 두 가지가 있는데 먼저 while을 사용해보자. 

#sum, i 변수 생성
sum = 0
i = 1

#number변수 생성
number = int(input("숫자를 입력하세요 : "))
#while문 이용
while(i <= number):
  sum = sum + i
  i += 1
#sum값 출력
print(sum)

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.
사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

2. 조건문 알기

조건문은 특정 조건을 만족할 때, 만족하지 않을 때 어떤 일을 수행하게 하는 것을 의미한다. 

아래 그림처럼 어떠한 조건을 만족한다면 True 화살표를 따라가고 조건을 만족하지 않는다면 False화살표를 따라가서 그 곳에 쓰여있는 명령문을 수행하게 된다. 

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.
출처 https://gunsystem.tistory.com/87

3. 조건문 예제 - 티켓 값 계산

티켓 값이 기본 3000원이고 20세 미만이면 20%를 할인해주는 프로그램을 만들어보자. 

입력 값 : 나이, 티켓 기본 값

출력 값 : 최종 티켓 값

수식 : 20세 미만인 경우 티켓 = 티켓 * 0.8 

age = int(input("나이를 입력하세요 : "))
ticket = 3000

if age < 20:
  ticket = ticket * 0.8

print("티켓 값은 %d원 입니다." %(ticket))

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

3-1 조건문 예제 - 홀수 짝수 판별 프로그램

이번에는 if와 else를 이용해보자.

만약 조건을 만족한다면 해당 명령어를 수행하고, 그렇지 않으면 다른 명령어를 수행한다. 

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

if number % 2 == 0:
  print("입력한 숫자 %d는 짝수입니다." %(number))
else:
  print("입력한 숫자 %d는 홀수입니다." %(number))

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

3-2. 조건문 예제 - 국어, 영어 점수의 평균과 그에 따른 평가 안내 

이번에는 if, elif, elif, else 를 활용해보자.

즉, 조건을 만족하면, 그렇지 않고 이 조건을 만족하면, 그렇지 않고 이 조건을 만족하면, 이도저도 아니면~

각각에 해당하는 명령어를 수행하는 것이다.

국어점수와 영어점수를 입력받고, 그 평균을 구한다.

평균이 90점 이상이면 매우 우수합니다. 평균이 80점 이상이면 우수합니다. 평균이 70점 이상이면 보통입니다. 

평균이 60점 이상이면 노력이 필요합니다. 그보다 낮으면 노력이 많이 필요합니다. 를 출력해보자. 

kor = eval(input("국어 점수 : "))
eng = eval(input("영어 점수 : "))

avg = (kor + eng)/2

if avg >= 90:
  result = "매우 우수합니다."
elif avg >= 80:
  result = "우수합니다"
elif avg >= 70:
  result = "보통입니다"
elif avg >= 60:
  result = "노력이 필요합니다"
else:
  result = "노력이 많이 필요합니다"

print("국어점수 %0.2f점과 영어점수 %0.2f점의 평균은 %02.f이고 평가는 %s입니다." %(kor, eng, avg, result))
사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

위의 코드를 활용하면 A, B, C, D 등급으로도 나타낼 수 있고 수학, 과학 등 다른 과목을 추가할 수도 있다!

4. 반복문 안에 조건문 예제 - 4의 배수인 자연수 개수 구하기

이번에는 어떤수를 입력받은 뒤 1부터 그 숫자까지의 자연수 중에서 4의 배수는 몇 개인지 구하는 프로그램을 작성해보자.

이 경우 반복문 안에 조건문이 들어가게 되는데 for나 while 둘 다 가능하다. 변수의 개수를 줄이기 위해

for반복문을 활용해보자! 

먼저 number변수를 만들어서 사용자에게 숫자를 입력받아야한다.

그 다음 4의 배수의 개수를 의미하는 변수 count를 만든다.

이제 for문에 i라는 변수를 생성해서 범위를 1부터 사용자가 입력한 number+1까지로 설정한다. 

range()의 경우 끝 값 -1 까지가 범위라서 사용자가 입력한 number +1 을 해줘야 사용자가 입력한 number까지 살펴볼 수 있다. 

만약에 i % 4의 값이 0이라면 i는 4의 배수일 것이고 count는 1증가시킨다. (4의 배수일때만 count값 1 증가)

for 반복문이 모두 종료되면 맨 아래 print()안에 있는 명령문을 출력한다! 

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

for i in range(1, number + 1):
  if (i % 4 == 0):
    count += 1

print("1부터 %d까지의 숫자 중 4의 배수는 총 %d 개 입니다." %(number, count))

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

같은 방법으로 5의 배수를 구할 수도 있다. 

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

4-2. 반복문 내 조건문 - 홀수만 더하기 

이제 숫자를 입력받아서 1부터 입력받은 숫자 중 홀수만 뽑아낸 뒤

그 홀수를 모둔 더한 홀수의 총 합을 계산하는 프로그램을 만들어보자. 

이 경우 number변수는 사용자가 입력한 값

odd는 홀수인 자연수의 합으로 놓고

if 문 안에 odd 변수 값에 i를 더하도록 한다. 

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

for i in range(1, number + 1):
  if (i % 2 != 0):
    odd += i

print("1부터 %d까지의 숫자 중 홀수인 자연수의 총 합은 %d입니다." %(number, odd))

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

같은 방법으로 하면 짝수인 자연수의 합도 구할 수 있다. 

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

그럼 홀수의 합과 짝수의 합을 더하는 프로그램은 어떨까?

위의 두 코드를 합쳐주기만 하면 된다!

number = int(input("숫자를 입력하세요 : "))
even = 0
odd = 0

for i in range(1, number + 1):
  if (i % 2 == 0):
    even += i
  else:
    odd += i 

print("1부터 %d까지의 숫자 중 짝수인 자연수의 총 합은 %d입니다." %(number, even))
print("1부터 %d까지의 숫자 중 홀수인 자연수의 총 합은 %d입니다." %(number, odd))

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

4-3. 반복문 내 조건문 - 어떤 수의 약수 판별하고 구하기

이번에는 어떤 수를 입력받은 뒤 그 수의 약수를 출력해보자!

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

for i in range(1, number + 1):
  if (number % i == 0):
    print("%i는 약수입니다." %(i))

  
사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

자, 이번에는 약수입니다, 약수 아닙니다!

이렇게 그 수까지의 자연수를 모두 판별하도록 해보자!

이렇게 if-else를 사용하면 사용자가 입력한 숫자까지의 모든 자연수를 약수인지, 아닌지 판별하게 된다. 

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

그럼 마지막 과제!!

어떤 수의 약수의 개수를 출력하는 프로그램을 만드세요.

오늘 글에서 배운 약수 구하는 방법과 개수구하는 방법을 서로 엮어야 해결이 가능하다~!

예시 답안은 요기↓

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

for i in range(1, number + 1):
  if (number % i == 0):
    count += 1

print("%d의 약수는 %d개 입니다."%(number, count))

사용자로부터 0이 입력될 때까지 자연수를 하나씩 입력받고 입력받은 수가 홀수라면 리스트 odd_list에 저장하고 짝수라면 리스트 even_list에 저장하세요. - sayongjalobuteo 0i iblyeogdoel ttaekkaji jayeonsuleul hanassig iblyeogbadgo iblyeogbad-eun suga holsulamyeon liseuteu odd_liste jeojanghago jjagsulamyeon liseuteu even_liste jeojanghaseyo.

오늘의 목표!

1. 조건문

2. 반복문 내 조건문

3. 약수 구하기

정리 끝~!!