[프로그래밍 언어]/python

따라하며 배우는 파이썬과 데이터 과학(개정판)_ch5 문제풀이

우당탕탕 개발 일지 2024. 5. 1. 14:22

안녕하세요. 우당탕탕 개발일지입니다.

따라 하며 배우는 파이썬과 데이터 과학(개정판)_ch5 심화문제 풀이만 적혀 있습니다. 개념을 알고 싶은 학생은 신속히 뒤로 가주세요.

2024.01.25 - [[프로그래밍 언어]/python] - 두근두근 파이썬(개정판)_ch6 반복문

 

두근두근 파이썬(개정판)_ch6 반복문

안녕하세요. 우당탕탕 개발 일지입니다. 파이썬 에디터 IDLE 3.12.1을 사용합니다. 책과 수업 내용을 바탕으로 요약한 내용과 교재 뒤 연습문제입니다. ※ 오늘 다루는 내용은 뒷부분을 학습하기

hansol2124.tistory.com

 

 

심화문제

5.1

1)

print("1에서 100까지의 수 중에서 홀수는:")
for i in range(1,100,2):
    print(i)

 

2)

print("1에서 100까지의 수 중에서 홀수는:")
i=1
while i<100:
    print(i)
    i+=2

 

3)

◎ while

print("1에서 100까지의 수 중에서 짝수는:")
i=2
while i<101:
    print(i)
    i+=2

◎ for

print("1에서 100까지의 수 중에서 짝수는:")
for i in range(2,101,2):
    print(i)

5.2

1)

◎ while

j,i=1,1
while i<100:
    j+=i
    i+=2

print(f"1에서 100까지의 수 중에서 홀수의 합:{j}")}")

◎ for

j=0
for i in range(1,100,2):
    j+=i
    
print(f"1에서 100까지의 수 중에서 홀수의 합:{j}")

 

2)

◎ while

j,i=0,0
while i<101:
    j+=i
    i+=2

print(f"1에서 100까지의 수 중에서 짝수의 합:{j}")

◎ for

j=0
for i in range(2,101,2):
    j+=i
    
print(f"1에서 100까지의 수 중에서 짝수의 합:{j}")

 

3)

x=int(input("시작 정수를 입력하시오: "))
y=int(input("끝 정수를 입력하시오: "))

j=0
for i in range(x,y+1,1):
    j+=i

print(f"{x}에서 {y}까지 정수의 합:{j}")

 


5.3

print("맛나 식당에 오신 것을 환영합니다. 메뉴는 다음과 같습니다.")
print("1)햄버거\n 2)치킨\n 3)피자")

menu=int(input("1에서3까지의 메뉴를 선택하세요.:"))
while True:
    
    if menu==1:
        print("햄버거를 선택하였습니다.")
        break
    elif menu==2:
        print("치킨을 선택하였습니다.")
        break
    elif menu==3:
        print("피자를 선택하였습니다.")
        break
    else:
        menu=int(input("메뉴를 다시 입력하시오.:"))

5.4

num=int(input("숫자를 입력하시오:"))

j="*"
for i in range(1,num+1):
    j*=i
    print(j)
    j="*"

5.5⭐

단순하게 하루에 7-5=2라고 계산하면 탈출되는 날 -5만큼의 오차가 발생됩니다. 

i=0
j=5
while j<30:
    j-=5
    i+=1
    j+=7
    print("day : {0:<2} 달팽이의 위치 : {1:<2}미터".format(i,j))

print("축하합니다. 우물에서 탈출하였습니다.")
print(f"우물애서 탈출하는 데 걸린 날은 {i}일 입니다.")

 

5.6

gas=500
while gas>50:
    x=input("충전 또는 사용한 연료를 +/- 기호와 함께 입력하시오:")
    sign=x[0]
    num=int(x[1:])

    if sign=='+':
        gas+=num
        print(f"현재 탱크양은 {gas} 입니다. ")
    elif sign=='-':
        gas-=num
        print(f"현재 탱크양은 {gas}입니다. ")
    
print("경고: 연료가 10% 미만이니 충전하세요!")

5.7⭐⭐⭐

153이라고 예시를 들었을 때 153에서 5의 세제곱인 125를 빼준다. 153-125=28이 남는다. 28에서 3의 세제곱인 27을 빼준다.  28-27=1이 남는다. 이걸 암스트롱 수로 바꿔주면은 5**3 + 3**3 + 1**3으로 구할 수 있다.

alist = []
x_list = [153,370, 371, 407]  

for x in x_list:
    while x>0:  
        for n in range(1, 10):
            if x < n ** 3 and x >= (n - 1) ** 3:  
                x -= (n - 1) ** 3
                a = (n - 1) ** 3
                alist.append(a)
                break
            
print(alist)

5.8

num=input("정수를 입력하세요:")
reverse=str(num[::-1])

while num!='-99':
    if reverse==num:
        print(f"{num}은(는) 거꾸로 정수입니다.")
        num=input("정수를 입력하세요:")
        
    else:
        print(f"{num}은(는) 거꾸로 정수가 아닙니다.")
        num=input("정수를 입력하세요:")
        

print('프로그램을 종료합니다.')

5.9

 

num=int(input("정수를 입력하세요:"))
num_list=[]

count=0
while num!=-99:
    num_list.append(num)
    num=int(input("정수를 입력하세요:"))
    count+=1
    

max=num_list.index(max(num_list))
min=num_list.index(min(num_list))
print(f"{count}개의 유효한 정수중 가장 큰 정수는 {num_list[max]}이고, 가장 작은 정수는 {num_list[min]} 입니다.")
728x90