【问题标题】:0 != 9 and 0 != 10 in Python?0 != 9 和 0 != 10 在 Python 中?
【发布时间】:2019-03-22 07:49:10
【问题描述】:

我需要编写一个函数,使用 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 

我已经被这个问题困扰了一段时间了,有人可以帮忙

【问题讨论】:

  • 当你在它之前返回时,你永远不会真正进入 while 循环......你想做这项工作,然后在函数的 end 处,return n ...
  • 我试过了,然后输出变成函数外的返回,或者它输出我不应该在循环内要求返回。重组我的代码有点问题..
  • 听起来你要把它移到def之外...把它移到功能的底部,但与while...处于同一水平,所以它仍然缩进def...中的一个级别...
  • 它只是简单地输出“你可能不想在 while 循环中使用 return 语句”
  • return n 的级别 - 只需将其放在整个 while 块之后...而不是在 while 语句本身内...例如:与现在相同的级别,但在函数本身的 end...

标签: python output


【解决方案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)

【讨论】:

  • 我将它移到了相同的位置,但它仍然输出 0!= 9 和 0!= 10 错误
  • 不,这就是全部代码,我以在线测验的形式进行,因此它正在测试它是否计算从开始到结束(不包括结束)的整数个数可被 3 或 5 整除
  • 好的,你需要一个 for 循环,因为在这个条件下,while 循环将继续循环,因为条件永远不会满足。此外,您不需要全局变量(n),一般应避免使用全局变量。
  • 我会,但是这个测验要求你使用一个while循环,我只包括那个全局n,否则它会输出在赋值之前引用的局部变量'n'。
  • 好的,让我做一些修改
猜你喜欢
  • 2013-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多