#python
#python
Вопрос:
def no_6(l,h):
for i in range(v,x):
if i != 5:
continue
else:
print(i)
if __name__ == "__main__":
v = int(input("Please input the lower limit:n"))
x = int(input("Please input the upper limit:n"))
Как мне пропустить число в диапазоне, которое находится в цикле for. Я разрешаю пользователю вводить диапазон, и я хочу пропустить любое число с номером 5 в нем, например, независимо от того, 5, 25 или 15 я хочу его пропустить. Могу ли я использовать деление по этажам или по модулю с моими операторами if, чтобы выяснить это?
Комментарии:
1. В числах нет 5. Десятичные представления чисел содержат 5 в них.
Ответ №1:
попробуйте этот код:
def no_6(l,h):
for i in range(v,x):
if str(i).find(str(5)) != -1:
continue
else:
print(i)
v = int(input("Please input the lower limit:n"))
x = int(input("Please input the upper limit:n"))
no_6(v,x)
Ответ №2:
Если вам нужны числа, кратные 5 (т.Е. 5 является фактором), тогда вы хотите проверить их значение по модулю 5 ( % 5
) . Если вы хотите проверить, является ли какая-либо цифра 5, то я думаю, что превратить ее в строку и проверить наличие этого символа — самый простой способ.
>>> a = 15
>>> b = 42
>>> a % 5 == 0, b % 5 == 0
(True, False)
>>> "5" in str(a), "5" in str(b)
(True, False)
Ответ №3:
Изменить:
if i != 5:
Чтобы быть:
if '5' in str(i):
Ответ №4:
Вы можете использовать понимание списка. Если вы хотите кратные 5, то (при условии, что v = 0 и x = 25):
[i for i in range(v,x) if i % 5 == 0]
Out[1]: [0, 5, 10, 15, 20]
Полный код:
def no_6(l,h):
print([i for i in range(v,x) if i % 5 == 0])
v = int(input("Please input the lower limit:n"))
x = int(input("Please input the upper limit:n"))
no_6(v,x)
И, если вам нужно напечатать все это в новой строке, а не в списке, используйте:
def no_6(l,h):
l = [i for i in range(v,x) if i%5 == 0]
for i in l:
print(i)
v = int(input("Please input the lower limit:n"))
x = int(input("Please input the upper limit:n"))
no_6(v,x)
Комментарии:
1. Эй, это работает отлично, но могу ли я не использовать% и //?
2. Если вы используете
//
это значение «Floor», это означает, что оно округляется до ближайшего целого числа.%
например, для остатка25 // 2
, возвращает12
при25 % 2
возврате1
3. Это способ закодировать это с использованием операторов if, потому что я не могу понять это?