- 此代码的输出非常相似,但不完全是它应该是。
-
def printMultiples(n): i = 1 while (i <= 10): print(n*i, end = ' ') i += 1 n = 1 while (i<= 3): printMultiples(n) n += 1
输出是:
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30
而应该是这样的:
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30
- 如何把这个代码进行修改?
0
A
回答
1
0
您的问题是,您没有在每个倍数列表后打印新行。你可以通过把你的printMultiples
函数结束外循环线
print()
0
要使列排队解决这个问题,你就需要彻底改变你的做法。目前,printMultiples()
无法知道在每个数字之后要放置多少个空格,因为它不知道将在外部循环中调用多少次。
什么你可能做的是:
- 创建的字符串表示每个多重的二维阵列(不打印任何东西) - 的
str()
功能将是有用的这 - 对于每一列,检查该列中最长号码的长度(它总是最后一个)并添加一个
- 打印每一行,在每个字符串之后添加适当的空格数以匹配该列所需的空格数
一个更简单的方法,如果你对只有感兴趣的柱状输出,而不是精确的间距,将是打印每个数字后足够的空间,以适应您希望输出的最大数量。所以,你可能会得到:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
(注意如何有三个空格前三列,每列数,即使你并不需要所有三个空格之后)。
更改现有的代码做会更容易。详细信息请参见Format String Syntax。
0
如果你已经知道你要垫的数字是宽度为3,那么一个合适的(和更Python)printMultiples是
def printMultiples(n):
txt = "".join(["{0: <3d}".format(n*i) for i in range(1, 11)])
print(txt)
更好的办法是,允许宽度改变。而你可以再传给你喜欢的,如你所期望的数量最大宽度的宽度
def printMultiples(n, width=3):
txt = "".join(["{0: <{1}d}".format(n*i, width) for i in range(1, 11)])
print(txt)
width = len(str(4 * 10)) + 1
for i in range(1, 4):
printMultiples(i, width)
相关问题
- 1. 任何人都可以帮我找到代码中的错误
- 2. 任何人都可以帮我理解这段代码吗?
- 3. 任何人都可以帮助解释这部分代码?
- 4. 任何人都可以帮助我理解这个strchr()C分段错误?
- 5. 任何人都可以帮助我在这个代码
- 6. 任何人都可以请帮我改正这段代码吗?
- 7. 任何人都可以用这段代码帮我吗?
- 8. 任何人都可以解释这段代码的输出吗?
- 9. 任何人都可以帮助我理解并解决这个错误吗?
- 10. 任何人都可以解释我的这段代码吗?
- 11. 任何人都可以帮我解决这个错误吗? 0x80041002
- 12. Javascript:任何人都可以解释我这段代码吗?
- 13. 任何人都可以帮助我解决这个问题吗?
- 14. 任何人都可以帮助我的代码在ATM?
- 15. 任何人都可以帮助这个Magento错误?
- 16. 任何人都可以帮助这个hasNextLine()错误?
- 17. 任何人都可以帮助我吗?
- 18. 任何人都可以引导我这段代码中的错误是什么?
- 19. 我得到NullReferenceException。任何人都可以帮助我。这个代码在C#CRM2013
- 20. 任何人都可以帮助我解决Angular JS中的注入错误
- 21. JavaScript中的循环 - 任何人都可以帮助我理解?
- 22. 任何人都可以用这个简单的代码来帮助我吗?
- 23. 任何人都可以解释这个TypeScript代码片段?
- 24. 任何人都可以解释这段代码吗?
- 25. 任何人都可以解释我这个代码的工作
- 26. 这个php代码有什么问题吗?任何人都可以帮助我
- 27. 我想使用tbxml解析以下xml,任何人都可以帮助我
- 28. 任何人都可以帮助破解这个时间格式?
- 29. 任何人都可以帮助解释这个吗?
- 30. 任何人都可以帮助我处理以下代码中的'system.nullreferenceexception'吗?
您是否担心(一)缺乏换行符,或数字之间(二)有趣的间距让他们排成一列,或(c)两者? –
实际上。 (a)刚刚解决。现在(二)仍然 – Muavia
您的代码给出不起作用...你的第二个循环应该是结束n不是我 – donkopotamus