[英]How to make a function print many times on the same line, e.g. print('test')*3
假設我有代碼(盡管它什么也沒做,只是一個例子)
def myprint():
print("foobar")
foo = random.randint(1, 6)
myprint() * foo #Obviously doesn't work
我要執行的操作是執行print()
'foo'次。 我該怎么做呢?
您可以將代碼更改為此:
def myprint(times):
print(times*"foobar")
foo = random.randint(1, 6)
myprint(foo)
“ pythonic”方式是使用for循環的:
for n in range(foo):
printfunc()
(請注意,如果您像在python 3中一樣定義打印,則將用自己的遮罩原始print
)。
for i in range(foo):
print('test')
如果您真的想將其用作返回任意內容(通常非常糟糕,或者至少極其駭人聽聞的形式)的表達式...
[print('test') for _ in range(foo)]
或者,如果您想對此一目了然,並且使閱讀代碼的人煩惱:
import random
print('\n'.join(["foo" for _ in range(random.randint(1,6))]))
這就是為什么您不應該調用自己的函數print
Python 3.2 (r32:88445, Dec 8 2011, 15:26:51)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
>>> def print():
... print("foobar")
...
>>> help(print)
Help on function print in module __main__:
print()
>>>
哎呀,現在您已經覆蓋了內置print
因此您無法再使用它來實際打印內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.