Возможно ли, чтобы иметь питона время цикла чисто на одной линии, я попытался это:Хотя петля один вкладыш
while n<1000:if n%3==0 or n%5==0:rn+=n
Но это выдает сообщение об ошибке: Invalid Syntax
в if
заявлении
Возможно ли, чтобы иметь питона время цикла чисто на одной линии, я попытался это:Хотя петля один вкладыш
while n<1000:if n%3==0 or n%5==0:rn+=n
Но это выдает сообщение об ошибке: Invalid Syntax
в if
заявлении
При использовании compound statement в python (операторы, которым нужен набор, отступом), и этот блок содержит только simple statements, вы можете удалить новую строку и отделить простые операторы точкой с запятой.
Однако не поддержка сложных утверждений.
Итак:
if expression: print "something"
работает, но
while expression: if expression: print "something"
делает не потому как while
и в if
заявления соединение.
Для вашего конкретного Например, вы можете заменить if expression: assignment
часть с conditional expression, поэтому, используя выражение вместо сложного суждения:
while expression: target = true_expression if test_expression else false_expression
в целом, или while n<1000: rn += n if not (n % 3 and n % 5) else 0
конкретно.
С точки зрения стиля вы, как правило, хотите оставить эту линию на своем собственном.
В вашем примере вы пытаетесь свернуть два уровня блоков/отступов в одну строку, что запрещено. Вы можете сделать это только с помощью простых утверждений, а не петлями, если заявления, определения функций и т.д. Тем не менее, для примера есть обходной путь с трехзначным оператором:
while n < 1000: rn += n if (n % 3 == 0 or n % 5 == 0) else 0
, который гласит «добавить п к гп, если условие выполнено, иначе добавьте 0 '.
Это Возможное сделать что-то подобное:
rn = 100
for n in range(10): rn += n if (n%3==0 or n%5==0) else 0
Почему бы вам не попробовать * * это? Это бесконечный цикл, но он будет работать до Python. –
@MartijnPieters У меня это не работает – user2128561
«это не работает» не является описанием проблемы. * Что * не работает? Что вы ожидали, что произошло вместо этого? Какую ошибку вы получили? –