Python 为什么即使在使用return时,我的代码最后也没有

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:

我最初有这个代码,对于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:
            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)