2015-06-23 3 views
2

Так что недавно я заинтересовался изучением python, и я получил «Think python» в прошлое Рождество. К сожалению, у меня не было времени, чтобы действительно попасть в нее из-за моих экзаменов. Несмотря на то, что я написал книгу для python 2, я решил использовать python 3.4.3. Однако это создает несколько проблем. Я смог решить большинство проблем, просмотрев интернет и еще много чего, но это одна из проблем, на которые я не смог найти решение.вычитание из нескольких переменных за один раз

Там в это упражнение, где я должен практиковать питона как калькулятор, чтобы ознакомиться с ним:

«opg.3 Если я выхожу из дома в 6:52 утра и я бегу 1 милю в легком темпе (8 : 15 мин за милю), затем 3 мили в темпе (7:12 мин за милю), и я снова бегу на 1 милю в легком темпе, в какое время я возвращаюсь домой на завтрак? "

Для этого упражнения я хотел создать две переменные, одну называемую «часы», а одну - «минуты». Что должно произойти в том, что, когда переменные «минуты»> = 60, переменные «часы» должны увеличиться на 1 и «минуты» должны уменьшиться на 60.

hours = 6.0 
minutes = 52.0 
if minutes >= 60: 
    hours += 1 and minutes -= 60 



print () 
print () 
print () 
print ("opg.3---------------*") 
print ("minutes += 8.15*2 + 7.12*3") 
     minutes += 8.15*2 + 7.12*3  
print ("back home at",hours,":",minutes , "<<") 
print ("--------------------*") 
print () 
print () 
print () 
print () 

Там две проблем с моей сумой.

Первая проблема здесь происходит:

if minutes >= 60: 
    hours += 1 and minutes -= 60 
          ^
          | 

Это знак равенства в соответствии с питона «неправильного синтаксиса», и я не знаю, почему? что я могу сделать, чтобы исправить это?

+0

Короче говоря, ключевое слово 'and' ищет логическую операцию или' True'- и 'False'-s. У вас есть задание ('hours + = 1'), поэтому проблема (если вы хотите знать, _why_ код не работал) :) – Matthew

ответ

6

Просто переместите их на две отдельные линии

if minutes >= 60: 
    hours += 1 
    minutes -= 60 

From PEP 8

Составные операторы (множественные заявления на одной линии), как правило, не рекомендуется.

Для полноты картины, я расскажу вам, что вы можете добавить ; прекратить заявление, так что вы могли бы написали

if minutes >= 60: 
    hours += 1; minutes -= 60 

Но опять-таки я бы отговорить вас от этого. Просто потому, что вы можете, не означает, что вы должны:

+0

Wow спасибо за быстрый ответ: DI едва успел закончить мой профиль, прежде чем увидеть, что вы ответили. –

Смежные вопросы