num = int(input('Enter a number:'))
for i in range(0, num, 1):
for j in range(0, i):
print(num, end =" ")
for i in range(num, 0, -1):
for j in range(0, i):
print(num, end=" ")
答案 0 :(得分:9)
因为end=" "
会覆盖默认行为,即打印换行符\n
。
这样做的效果是用空格而不是换行符
\n
分隔每个数字。
答案 1 :(得分:1)
此行print(num, end=" ")
只会打印初始号码num
。您是否想要一个迭代数字(i或j)?
同样end=" "
会抑制将\n
附加到打印语句末尾的正常行为。
修改强>
根据你的评论,我认为你想要这个(假设是num=3
):
3
3 3
3 3 3
3 3
3
您可以通过添加仅提供如此新行的打印语句来获得:
def diamond(number):
for i in range(0, number, 1):
for j in range(0,i):
print(number, end=" ")
print("")
for i in range(number, 0, -1):
for j in range(0, i):
print(number, end=" ")
print("")
如果您希望每行的数字等于行大小,请将打印语句中的number
更改为i
。
编辑2
你的意思是你想要这个吗?
Enter a number:5
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
4 4 4 4
3 3 3
2 2
1
之前用户输入的原因不起作用可能是由于python文件的排序或您调用方法的方式。如果您将其写入.py
文件并通过IDLE运行,则可以获得该文件。
def diamond(number):
for i in range(0, number, 1):
for j in range(0,i):
print(i, end=" ")
print("")
for i in range(number, 0, -1):
for j in range(0, i):
print(i, end=" ")
print("")
num = int(input('Enter a number:'))
diamond(num)
如果您的意思是
1
1 2
1 2 3
1 2
1
然后你需要用j+1
替换那些i(记住,范围从0开始)。