一行打印5个数字
我需要写一个程序,打印从1到50的数字,但每行显示5个数字,像这样:
1,2,3,4,5
6,7,8,9,10
一直打印到50,而且不能使用列表。
for i in range(2,51):
if i%5==0:
print i
我现在得到的是5,10,15,20。
请帮帮我。
10 个回答
1
我从来没有用过Python,不过这个应该差不多,甚至是正确的。
for i in range(1,51):
print i;
print ",";
if (i%5==0)
{ print "\n";}
2
你可以像之前那样开始(不过要从1开始,那个2真的很奇怪!):
for i in range(1,51):
if i % 5 == 0:
print i
但是接下来你需要加一个else
部分,因为即使i
不是5的倍数,你也想打印一些东西——只是要和当i
是5的倍数时简单的print i
不一样的东西……:
else:
print i, ',',
正如其他回答所说,结尾的逗号表示“还没有换行”!-)在Python 3.x中这更简单明了,但显然你在用Python 2.x版本,在这些版本中你需要这样做。
5
这里有几个小提示:
- range() 函数的第一个参数写错了。它应该是 1 而不是 2。这个参数是从哪个数字开始的,开始的数字会包含在内,而结束的数字则不算在内。这样做是个很好的习惯,可以避免出错。
- 你用到的取模运算符可以帮助你检测每 5 个值。你可以利用这个来在每次达到 5 的时候打印一行。接下来,你需要找到一种方法,在每次只输出一个值时不打印新的一行。可以查看一下 Python 文档,看看如何让 print() 函数做到这一点。(注意,Python 3.0 在打印方面有些变化,但根据你的例子,你似乎在使用 2.x 版本)
- 另一种方法是使用 range() 函数的第三个参数,以 5 为步长来遍历序列。这样你会得到 1, 6, 11, 16 等等的数字序列,你可以把这个数字作为每行的开头,后面的数字就可以简单加上去。