Python 为什么即使在使用return时,我的代码最后也没有
我最初有这个代码,对于1-99来说可以,但是对于第100个,它会说“无”: 因此,我尝试更正它,在我的代码的这一部分中,出现了一个“NameError:name'none'未定义”,因为我尝试包含return以不再获取none:Python 为什么即使在使用return时,我的代码最后也没有,python,Python,我最初有这个代码,对于1-99来说可以,但是对于第100个,它会说“无”: 因此,我尝试更正它,在我的代码的这一部分中,出现了一个“NameError:name'none'未定义”,因为我尝试包含return以不再获取none: def f(n): for i in range(1, n): if i % 3 == 0 and i % 5 == 0: return bacon and egg elif i % 5 == 0:
def f(n):
for i in range(1, n):
if i % 3 == 0 and i % 5 == 0:
return bacon and egg
elif i % 5 == 0:
return egg
elif i % 3 == 0:
return bacon
else:
return neither
print(f(100))
如何修复此问题以不再获得none?关注您的第二个示例,似乎
namererror
是因为两者都不是实际填充的变量,在这种情况下,您可以将其包装为字符串并返回:)
示例
def f(n):
for i in range(1, n):
if i % 3 == 0 and i % 5 == 0:
return 'bacon and egg'
elif i % 5 == 0:
return 'egg'
elif i % 3 == 0:
return 'bacon'
else:
return 'neither'
print(f(100))
用f(100)
替换print(f(100))
以删除None
def f(n):
for i in range(1, n):
if i % 3 == 0 and i % 5 == 0:
print("bacon and egg")
elif i % 5 == 0:
print("egg")
elif i % 3 == 0:
print("bacon")
else:
print("neither")
f(100)
使用第一个代码,只需使用:f(100)而不是print(f100))。f代码内部正在进行打印。@darryig我已经这样做了,但它仍然只执行1-99。我如何修复它以使其包含100?@user12386893--范围(1,n)将只包含从1到n-1的数字。如果你想要从1到n的数字,你应该在(1,n+1)范围内。那么f(100)将从1到100。@darryg谢谢!我刚想起这件事!
def f(n):
for i in range(1, n):
if i % 3 == 0 and i % 5 == 0:
print("bacon and egg")
elif i % 5 == 0:
print("egg")
elif i % 3 == 0:
print("bacon")
else:
print("neither")
f(100)