我已经被告知在python 3.x中可以在你使用乘法重复的字符串之间添加一个分隔符,例如..
c = "rabble"
print(c * 5, sep = ' | ')
我希望打印出来" rabble"在每次重复之间使用字符串|
进行5次。
它会一直打印重复的字符串,但没有分隔符。我在查找有关在这种特定情况下使用sep的信息时遇到了麻烦。我做错了什么?
答案 0 :(得分:4)
你可以得到你想要的效果,但它与乘法本身并没有多大关系。
print()
的sep
参数在非关键字参数之间提供了一个分隔符 - 例如:
>>> print("spam", "eggs", "ham", sep=" | ")
spam | eggs | ham
您可以将c
传递给print()
5次,以获得您正在寻找的输出:
>>> c = "rabble"
>>> print(c, c, c, c, c, sep=" | ")
rabble | rabble | rabble | rabble | rabble
...但这很笨拙,如果你事先不知道你希望c
出现多少次,就没用了。
要解决此问题,您可以使用argument unpacking - 一种特殊语法将列表或其他序列传递给函数,就好像其中的项目作为单独的参数传递一样:
>>> s = ["spam", "eggs", "ham"]
>>> print(*s) # notice the *
spam eggs ham
要获得您正在寻找的结果,您可以从c
的5个副本动态构建一个列表,并使用参数解包符号传递该列表:
>>> print(*([c] * 5), sep = ' | ')
rabble | rabble | rabble | rabble | rabble
请注意,您将包含c
的列表乘以5而不是c
本身。您可能会发现查看print(*(c * 5), sep = ' | ')
实际执行的操作很有帮助,并尝试找出原因(提示:字符串也是序列)。
答案 1 :(得分:-1)
尝试这样的事情:
print(“ rabble |” * 5)