2016-09-27 2 views
-1

예기치 않은 결과를 얻고 있습니다. 출력은 440이어야하지만 370을 얻게되어 내 루프에서 뭔가를 놓치고 있습니다.예기치 않은 대답을 반환하는 Python 3.5

코드는 균형이 돈을 지불하지 않은 경우 (10)에 의해 각 루프를 균형 (b) 계정이자 (mir)를 고려하고 증가 지불 (mp)를 지불하는 지불을 고정 계산하는.

내 현재 코드는 내가 너무 많은 코드 수정을 찾고 있지 않다

b = 4773 
air = 0.2 


mir = air/12.0 
m = 1 
mp = 10 


while m in range(0,12): 

    ub = b - mp 
    b = ub + (mir * ub) 
    cb = b 
    m += 1 
    if cb> 0: 
     mp += 10 
     m = 0 

print(str(mp)) 

이다하지만 내가 잘못 가고 곳의 설명과 내가 그것을 해결하는 봐야한다. 나는 코드가 실행되는 것을 볼 수있다. 그리고 그것은 잘 돌아 간다. 나는 예기치 않은 대답으로 끝나기 때문에 나는 뭔가를 놓치고있다. 나는 파이썬을 배우려고 노력하고 그것은 나에게 당신은 코멘트를 쓴

+1

구문의 일부입니다. 표시된 코드 스 니펫이 적절하게 들여 쓰기 된 블록인지 확인하십시오. 'if cb> 0 :'아래의 줄은 특히 의심 스럽습니다. –

+0

뚜렷한 의미가있는 이름을 사용하면 다른 사람들이 코드를 이해하는 데 도움이됩니다. 나는 이것이 일종의 복리 계산 계산기라고 추측하고 있습니다 만, 많은 변수들이 완전히 불투명하기 때문에 당신이하는 계산을 왜하는지 잘 모릅니다. – Blckknght

+0

if 문에 들여 쓰기가 해제되어 있습니다. 적어도 다음 줄은 한 단계 더 들여 쓰기해야합니다. –

답변

0

단지 수정 :보다 더 도움이 될 것이다 :

공식 계정의 관심을 고려하여 균형을 지불하는 지불을 고정 계산하는

및 잔고가 갚지 않으면 각 루프마다 10 지불을 증가시킵니다.

다음과 같이 처리합니다. (나는 당신의 변수를 설명하는 이름을 제공하기 위해 노력했다.)

balance = 4773 
annual_interest_rate = 0.2 
monthly_interest_rate = annual_interest_rate/12 
number_of_payments = 0 
payment = 10 

while balance > 0: 
    number_of_payments += 1 
    balance -= payment 
    balance += balance * monthly_interest_rate 
    print(number_of_payments, payment, balance) 
    payment += 10 

이 출력 : 파이썬 들여 쓰기에서

1 10 4842.38333333 
2 20 4902.75638889 
3 30 4953.96899537 
4 40 4995.86847863 
5 50 5028.29961994 
6 60 5051.1046136 
7 70 5064.12302383 
8 80 5067.19174089 
9 90 5060.14493657 
10 100 5042.81401885 
11 110 5015.02758583 
12 120 4976.61137893 
13 130 4927.38823524 
14 140 4867.17803917 
15 150 4795.79767315 
16 160 4713.0609677 
17 170 4618.7786505 
18 180 4512.75829467 
19 190 4394.80426625 
20 200 4264.71767069 
21 210 4122.29629853 
22 220 3967.33457018 
23 230 3799.62347968 
24 240 3618.95053767 
25 250 3425.0997133 
26 260 3217.85137519 
27 270 2996.98223144 
28 280 2762.26526863 
29 290 2513.46968978 
30 300 2250.36085127 
31 310 1972.7001988 
32 320 1680.24520211 
33 330 1372.74928881 
34 340 1049.96177696 
35 350 711.627806573 
36 360 357.488270016 
37 370 -12.7202588168 
+0

인쇄를 추가하면 많은 도움이됩니다. 나는 다시 시작해서이 일을 다시 시도 할 것입니다. 나는 파이썬에 익숙하지 않기 때문에 지금 많은 시행 착오를 겪고있다! – answrseeker

관련 문제