Как мне пропустить любое число в диапазоне, в котором есть 5 для примера 25 или 15?

#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, потому что я не могу понять это?