非常新的python请原谅!
问题是......使输出看起来像
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
我使用用户输入作为限制和副本数量(在本例中为5和3),所以我已经这样做了;
limit = int(input("Select upper limit"))
copies = int(input("Select number of copies"))
def output(limit):
for i in range(copies):
for x in range(limit):
print (x + 1, end=" ")
output(limit)
然而,答案显示为1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
。我知道这是因为end=" "
但不确定如何绕过它!任何帮助表示赞赏
答案 0 :(得分:3)
为每个循环显式打印新行:
def output(copies, limit):
for i in range(copies):
for x in range(limit):
print (x + 1, end=" ")
print() # <----
# print() # Add this if you want an empty line
output(copies, limit)
答案 1 :(得分:3)
你得到了正确范围的部分,但是你错过了一件事,你可以指定一个起始编号:
v0 = range(1, limit + 1)
要将数字转换为字符串,请使用str()
函数:
v1 = (str(x) for x in v0)
为了在相邻数字之间加一个空格,请使用字符串的join()
成员函数:
v2 = ' '.join(v1)
然后,您可以自己添加换行符:
v3 = (v2 + '\n') * copies
print(v3, end='')
或者以这种形式:
v3 = '\n'.join(v2 for i in range(copies))
print(v3)
或者你只是在一个普通循环中多次打印同一行:
for i in range(copies):
print(v2)
BTW:请注意v0
和v1
是生成器,因此将它们连接到字符串v2
将改变其内部状态,因此您不能简单地重复它并获得相同的内容结果
答案 2 :(得分:0)
limit = int(input("Select upper limit"))
copies = int(input("Select number of copies"))
def output(limit):
for i in range(copies):
if (i!=0):
print()
print()
for x in range(limit):
print (x + 1, end="")
output(limit)
答案 3 :(得分:0)
对您的代码稍作修改:
def output(limit):
for i in range(copies):
for x in range(limit):
print(x + 1, end=' ')
print()