我是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())