def common(num):
#returns true if num is divisible by all the 'i' integers
if all(num%divisor==0 for divisor in (1,10)):
return True
else:
return False
print(common(2520)) --> True
print(common(10)) --> True
print(common(17)) --> False
Привет всем, эта функция должна определить, является ли «число» общим кратным всех чисел «i». Я не могу понять, почему 10 возвращает True? Разве «all()» не означает, что каждый тест должен быть истинным, чтобы все было истинным? Я использую это неправильно? Любые лучшие функции, которые я должен использовать? Спасибо за любые идеи.
-wT
divisor
, являются 1 и 10. Только эти два. Непонятно, что вы намеревались сделать. Может быть, вы хотели, например,range(1, 10)
? Не могу угадать. - person Tim Peters   schedule 21.07.2016range(1, 11)
- person chapelo   schedule 21.07.2016if condition: return True; else: return False
, вы можете просто сделатьreturn condition
. (В некоторых ситуациях Python будет преобразовывать вещи в логические значения для оператораif
, поэтому, если вы хотите быть очень усердным, сделайтеreturn bool(condition)
.) - person detly   schedule 21.07.2016if
/else
не обязательно. Просто верните результат вызоваall()
. - person Klaus D.   schedule 21.07.2016