Python-为什么我的函数不输出';a';十次?初学者问题

Python-为什么我的函数不输出';a';十次?初学者问题,python,function,for-loop,Python,Function,For Loop,我希望在一行中输出10次“a”。如果我使用打印而不是返回,它会给我10'a,但每个都在一个新的行上。您能帮忙吗?它只打印一次的原因是返回语句完成了该函数(返回函数停止循环) 要打印“a”10次,您需要执行以下操作: def testfunction(): for i in range(10): return('a') print(testfunction()) print('a' * 10) def testfunction(): for i in ran

我希望在一行中输出10次“a”。如果我使用打印而不是返回,它会给我10'a,但每个都在一个新的行上。您能帮忙吗?

它只打印一次的原因是返回语句完成了该函数(返回函数停止循环)

要打印“a”10次,您需要执行以下操作:

def testfunction():
    for i in range(10):
        return('a')


print(testfunction())
print('a' * 10)
def testfunction():
    for i in range(10):
        print('a', end='')

return
终止当前函数,而print是对另一个函数的调用(至少在python 3中是这样)

return语句之后的任何代码都不会运行。 Python打印10A的方式是:

def testfunction():
    for i in range(10):
        print('a')


testfunction()
在您的情况下,它将如下所示:

def testfunction():
    for i in range(10):
        return('a')


print(testfunction())
print('a' * 10)
def testfunction():
    for i in range(10):
        print('a', end='')

print
return
在启动Python时会混淆

函数可以
返回
任何内容,但这并不意味着该值将
打印出来
供您查看。一个函数甚至可以返回另一个函数(称为函数编程)

下面的函数是根据您的问题改编的,它
返回一个字符串对象。当您调用函数时,它将
字符串
对象返回到名为
x
的变量中。包含您想要的所有信息,您可以
将其打印到控制台

您也可以在for循环中使用
yield
print
,但这可能超出范围

def testfunction ():
    return 'a' * 10

print(testfunction ())
如果您希望在一行中打印10次“a”,则您可以选择:

def test_function(item:str="a", n:int=10):
    line = item*n # this will be a string object
    return line

ten_a_letters = test_function()
print(ten_a_letters)
"aaaaaaaaaa"

two_b_letters = test_function("b",2)
print(two_b_letters)
"bb"
没有必要使用for循环。For循环将只“a”10次,但每次都是一条新的行

您还可以接受函数参数,并根据需要多次打印“a”。 例如:

测试:

我希望在一行中输出10次“a”。如果我使用打印而不是 返回,它给我10'a的,但每个在一个新的行

如果要使用
打印
,则需要传递第二个参数,如下所示:

TestCode(5)
>>> aaaaa

TestCode(7)
>>> aaaaaaa
然而,我认为蟒蛇式的方法是做以下事情:

def testfunction():
    for i in range(10):
        return('a')


print(testfunction())
print('a' * 10)
def testfunction():
    for i in range(10):
        print('a', end='')

当您使用
return
时,您将立即结束函数的执行,并且只返回一个值。
这里的其他答案提供了一种更简单的方法来解决您的问题(这很好),但我想建议一种不同的方法,使用
yield
(而不是
return
)并创建一个生成器(这可能是一种过分的方法,但仍然是一种有效的选择):


1.


输出将为“aaaaaaaa”。

明白了。但这也将打印“无”。我想你也可以把return('a'*10)放进去。