我尝试在 1~50 范围内打印偶数的这个函数有什么问题

  • 本文关键字:函数 问题 打印 范围内 python
  • 更新时间 :
  • 英文 :


我是python的初学者,我想制作一个python文件,其中包含一个函数,该函数在1~50的范围内打印偶数列表。这是我的代码。

def test():
for int in range(1,51):
if int%2==0:
return int
print(list(int))
test()

我通过Pycharm运行了它,但在我的控制台上没有打印任何内容。有人能帮帮我吗?

我的建议如下:

  • 不要调用变量int,因为它是python数据类型
  • 如果你想打印结果的list,你需要将数据添加到一个列表(下面称为results)
  • return表示您正在退出正在运行的功能

def test():
results = []
for i in range(1,51):
if i%2==0:
results.append(i)
print(results)
test()

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50]

你不需要一个函数。

print(list(range(2,51,2)))

您的主要问题是return语句阻止代码到达print语句,并且您从未打印返回结果以查看您返回的单个int值

同时,通过调用变量int来覆盖int()函数

您需要创建一个列表并将项目附加到其中以获得输出列表。在当前程序中,您只是返回第一个偶数。

虽然允许使用int,但是不建议使用关键字作为对象名。

试试这个:

def test():
l = []
for int in range(1,51):
if int%2==0:
l.append(int)
print(l)
test()

当找到第一个偶数时,返回语句将退出函数。下面的代码将解决这个问题。

def test():
for num in range(1,51):
if num%2==0:
print(num)

int不能作为循环控制变量,因为它是一个关键字

def test():
for num in range(1,51):
if num%2==0:
print(num) 
test()

在您的代码中,int是一个函数或类或数据类型。

def test():
for i in range(1,51):
if i%2==0:
print(i)
test()

这里我打印i,这是偶数。如果它不在for loop中,那么它将只打印2。

def test():
for i in range(1,51):
if i%2==0:
return i
print(test())

这里发生的是它只会打印2。因为,它不能返回多于一个值。所以,output : 2

这就是为什么你必须运行第一个代码。

你也可以试试。

for i in range(1, 51):
if i % 2 == 0:
print(i)

它没有任何类。

错误少

  • 不要使用任何内置的命名函数,如int作为变量a的名字

  • 函数执行在语句返回后立即完成。

  • 缩进很重要,它们定义了块范围。

    def test():
    for int in range(1,51): # use something other variable name for int
    if int%2==0:
    return int
    # the function exist after the retun statement 
    print(list(int)) #  this statement wont be executed
    

一个可能的答案

def test():
return [x for x in range(2, 51,2)]
print(test())

最新更新