Я новичок в питоне или кодировании в целом. И столкнулся с некоторым вопросом цикла в следующем коде.Когда python во время перерыва цикла?
a = int(input('input a number here: '))
def largest_factor(x):
factor = x - 1
while factor > 0:
if x % factor == 0:
return factor
factor -= 1
print(factor)
largest_factor(a)
Я использую Python 3.5, и в моем понимании, цикл не будет ломаться до 0> 0, так что я не поставил печать (фактор) для экзамена, который, тем не менее, это остановился на самом большом коэффициенте (например, когда x = 100, коэффициент печати от 99 до 50 и остановился), и не достиг 0. 0. Оператор return убил цикл while? Спасибо за ваше время.
Да, потому что возврат завершает функцию, вы можете «выдать коэффициент», затем либо «print (list (most_factor (a))), либо перебрать функцию генератора' for f в файле large_factor (a): print (f) 'http://stackoverflow.com/questions/231767/what-does-the-yield-keyword-do-in-python –
Оператор' return' не влияет на цикл 'while' напрямую; скорее он выходит из функции 'most_factor (x)'. Вы можете сохранить цикл живым, используя 'yield' вместо этого, если ваша цель состояла в том, чтобы многократно называть' most_factor', и цикл должен сохранять значения. – Jeff
Подозрительный вопрос. Слишком хорошо разработан, чтобы привлечь внимание многих хороших разработчиков. – jgomo3