본문 바로가기
문제풀이/창의적 프로그래밍을 위한 파이썬

[창의적 프로그래밍을 위한 파이썬] 9장 연습문제

by 그적 2021. 5. 23.

1. 반복의 횟수를 미리 지정할 수 있는 경우 또는 범위를 알고 있는 경우에는 (  for문 )을, 그렇지 않고 반복의 횟수를 조건식에 의존하는 경우에는 (  while문 )을 사용한다.

 

2. 다음 프로그램 중 잘못된 부분을 찾아보자.

count = 1
while count<=10:
    sum = sum + count
    count = count + 1

: 변수 sum을 초기화해주지 않았다. sum=0을 while문 앞에 추가해준다.

 

 

3. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

sum = 0
i = 1

for i in range(11):
    sum += i

print(sum)     #55

 

 

4. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

i = 10

for i in range(i, 20):
    if i%2==1:
         print(i,'is a odd number')

 

 

5. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

i = 1

for i in range(i, 6):
    j = 1
    while(j<=i):
        print('*', end='')
        j += 1
    print()

 

 

6. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

i = 1

while(i <= 10):
    print('나무를',i,'번 찍었다.')
    i+=1
print('나무가 넘어갔다.')

 

 

7. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

num = int(input('Enter the number(1~30) : '))

for num in range(num, 31, 2):
    print(num)

#이것도 문제 이상ㅎ..ㅐ.. 
#요구사항은 30까지 모든 정수라면서 출력은 왜..? 일단 테스트 결과대로 코드 작성함

 

 

8. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

i = 1

while(i<=8):
    print('계단을',i,'칸 올라갔습니다.')
    i+=1
print('다음 층에 도착했습니다.')

 

 

9. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

num = int(input('1 이상의 정수 입력 : '))
print(num,'의 약수')

for i in range(1, num+1):
    if (num%i == 0) :
        print(i)

 

 

10. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

total = 0

while(True):
    num = int(input('더하고 싶은 양의 정수를 입력하세요. '))
    total += num
    
    if num==0:
        break
print('총 합은',total,'입니다.')

 

 

11. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

students = []

i=0
while(i<6):
    print('학생의 점수를 입력하세요(',i+1,') ')
    score = int(input())
    students.append(score)
    i += 1

print('**50점을 넘어야 합격**')
i=0
for student in students:
    if student >= 50:
        print(i,'번째 학생은 통과입니다.')
    else:
        print(i,'번째 학생은 불합격입니다.')

    i += 1;

 

 

12. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

# 책의 요구사항과 테스트 결과가 다름. 문제가 잘못됨. 

 

 

13. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

a= [(1,3), (3,5), (7,5), (13,15)]

for i in a:
    print(i[0]+i[1])

 

 

14. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

list = ['strawberry', 'apple', 'banana', 'watermelon', 'grape']

for i in list[::-1]:
    print(i,' ', end='')

 

 

15. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

while(True):
    num = int(input('Enter the number : '))
    if num == 0:
        print('EXIT')
        break

    if num%2==0:
        print(num,'is even number')
    else:
        print(num, 'is odd number')

 

 

16. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

while(True):
    num = int(input('Enter the number : '))

    if num==0:
        print('EXIT')
        break;

    for i in range(2,num):
        if num%i == 0:
            print(num,'은 소수가 아닙니다.')
            break;
    if i==num-1:
        print(num,'은 소수입니다.')

 

 

17. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

num = int(input('자연수 입력: '))
result = 0

for i in range(0, num+1, 2):
    result += i

print(result)

 

 

18. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

num = int(input('자연수 입력: '))
result = 0

for i in range(1, num+1, 2):
    result += i

print(result)

 

 

19. 2단부터 9단까지 구구단을 출력하는 프로그램을 작성해보자.

#for문
for i in range(1, 9):
    print(i,'단 : ', end='')
    for j in range(1, 9):
        print(i*j, ' ', end='')
    print()

#while문
i=1
while(i<10):
    j=1
    print(i,'단 : ', end='')
    while(j<10):
        print(i*j, ' ', end='')
        j += 1
    i += 1
    print()

 

 

20. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

k = 0
for i in range(1, 6):
    for j in range(1, i+k+1):
        print('*', end='')
    k += 1
    print('\n\n')

 

 

21. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

name = input('이름 : ')
pro = int(input('문제 개수 : '))
count = 0

print('**********************')

for i in range(pro):
    solve = input('문제를 해결했나요?(y/n) : ')

    if solve=='y':
        count += 1

print('**********************')
print(name,'학생, 총 ',count,'문제를 해결했습니다.')

 

 

22. 다음의 요구사항에 따라 프로그램을 작성해보자. (요구사항 생략)

height = float(input('높이를 입력하세요(m) : '))
count = 0

while(True):
    height = height * 0.5
    count += 1
    print(height)
    if height<0.00001:
        break

print('공이 튀긴 횟수는', count-1,'입니다.')

 

댓글