0 != 9 и 0 != 10 в Python?

#python #output

#python #вывод

Вопрос:

Мне нужно написать функцию, которая вычисляет количество целых чисел от начала до конца (исключая последнее) с помощью цикла while. Я продолжаю получать выходные данные 0 ! = 9 и 0 ! = 10. Код:

 n = 0
k = 1

def div_3_5(start, end):
    global n
    return n
    while (n<k):
        print("Divisible by 3 or 5") 
        if n % 3 == 0 or n % 5 == 0:
            n  =1 
  

Я застрял на этом уже некоторое время, не мог бы кто-нибудь, пожалуйста, помочь

Комментарии:

1. На самом деле вы никогда не переходите в цикл while, поскольку возвращаетесь перед ним… Вы хотите выполнить работу, а затем, в конце выполнения функции, return n

2. Я попробовал это, и затем вывод становится возвращаемым вне функции, или он выводит, что я не должен запрашивать возврат внутри цикла. реструктуризация моего кода была небольшой проблемой..

3. Звучит так, как будто вы перемещаете его за пределы def … переместите его в нижнюю часть функции, но на тот же уровень, что и while … таким образом, он по-прежнему имеет отступ на уровень внутри def

4. Он просто выводит «Вам, вероятно, не нужен оператор return внутри цикла while»

5. Уровень, который вы получили return n — просто поместите его после всего while блока … не внутри самого while оператора … например: на том же уровне, на котором он находится сейчас, но в конце самой функции…

Ответ №1:

У вас есть оператор return n почти поверх вашей функции, в результате чего программа никогда не выполнит ваш цикл

 n = 0
k = 5

def div_3_5(start, end):
   flag = False
   number = start
   count = 0
   while flag is False:
      if number % 3 == 0 or number % 5 == 0:
         print("Divisible by 3 or 5")
         print(number)
         count  = 1  # So you can see how many times the condition is met

      if number == end:
         flag = True

      number  = 1
   print(count)
   return count

div_3_5(n, k)
  

Комментарии:

1. Я переместил его в ту же позицию, но он по-прежнему выдает ошибку 0!= 9 и 0! = 10

2. Нет, это весь код, я делаю это в формате онлайн-теста, и поэтому он проверяет, вычисляет ли он количество целых чисел от начала до конца (исключая end), кратное 3 или 5

3. Хорошо, вам нужен цикл for, потому что с этим условием цикл while будет продолжать повторяться, потому что условия никогда не будут выполнены. Также вам не нужна глобальная переменная (n), и вам следует избегать глобальных переменных в целом.

4. Я бы хотел, но этот тест требует, чтобы вы использовали цикл while, и я включил только этот глобальный n, потому что в противном случае он выводит локальную переменную ‘n’, на которую ссылаются перед назначением.

5. Хорошо, позвольте мне внести некоторые изменения