def testfunction():
for i in range(10):
return('a')
print(testfunction())
我希望“ a”在一行中输出10次。如果我使用print而不是return,它会给我10个“ a”,但每个都换一行。你能帮忙吗?
答案 0 :(得分:3)
return
终止当前函数,而print是对另一个函数的调用(在Python 3中至少如此)
return语句之后的任何代码都不会运行。 Python打印10 a的方式是:
print('a' * 10)
对于您来说,它看起来像以下内容:
def testfunction ():
return 'a' * 10
print(testfunction ())
答案 1 :(得分:2)
其仅打印一次的原因是因为返回语句完成了该功能(返回功能停止了循环)。
要打印'a'10次,请执行以下操作:
def testfunction():
for i in range(10):
print('a')
testfunction()
答案 2 :(得分:1)
如果您想在一行中将“ a”打印10次,则只需进行以下操作:
def TestCode():
print("a"*10)
不需要使用for循环。 For循环只会“出现” 10次,但每次都会换行。
您还可以接受函数参数,并根据需要多次打印“ a”。 如:
def TestCode(times):
t = "a"*times
print(t)
测试:
TestCode(5)
>>> aaaaa
TestCode(7)
>>> aaaaaaa
答案 3 :(得分:0)
print
和return
在启动Python时会混淆。
一个函数可以return
进行任何操作,但这并不意味着该值将为printed
。一个函数甚至可以返回另一个函数(称为函数编程)。
下面的函数根据您的问题改编而成,它returns
是一个字符串对象。当您call
函数时,它会将returns
对象string
放入名为x
的变量中。它包含了您想要的所有信息,您可以将它们print
到控制台。
您还可以在for循环中使用yield
或print
,但这可能不在范围之内。
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"
答案 4 :(得分:0)
我希望“ a”在一行中输出10次。如果我使用打印而不是 返回,它给了我10个“ a”,但每个换行了。
如果要使用print
,则需要传递第二个参数,如下所示:
def testfunction():
for i in range(10):
print('a', end='')
但是,我认为pythonic方法是执行以下操作:
def testfunction():
print('a' * 10)
答案 5 :(得分:0)
使用return
时,将立即结束该函数的执行,并且仅返回一个值。
这里的其他答案提供了一种解决问题的简便方法(很棒),但我想建议使用yield
(而不是return
)并创建生成器的另一种方法。 strong>(尽管这可能是一个矫kill过正,但仍然是有效的替代方法):
def testfunction():
for i in range(10):
yield('a')
print(''.join(x for x in testfunction()))
答案 6 :(得分:0)
def test ():
print('a' * 10)
test()
输出将为'aaaaaaaaaa'。