Python 连续打印5个数字

Python 连续打印5个数字,python,Python,我必须编写一个程序来打印数字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 请帮我一些提示: 量程功能的第一个参数不正确。它必须是1而不是2。包括开始索引,不包括结束索引。顺便说一句,这是避免bug的一个非常好的实践。 使用模运算符,您找到了一种每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

请帮我一些提示:

量程功能的第一个参数不正确。它必须是1而不是2。包括开始索引,不包括结束索引。顺便说一句,这是避免bug的一个非常好的实践。 使用模运算符,您找到了一种每5个值检测一次的方法;发生这种情况时,您可以使用它打印一行。然后,当您一次输出一个值时,您将不得不找到一种不输出一行的方法;查找使打印功能执行此操作的方法。注意,Python3.0在打印方面已经发生了变化,但是您似乎正在使用一个2.x版本 另一种方法是使用range函数的第三个参数,以5为增量逐步遍历序列。这样一个范围将按顺序给出1、6、11、16等,您可以使用此数字作为每行的第一个数字,并对以下数字进行简单的相加。
我从未使用过Python,但如果不正确的话,这应该很接近

for i in range(1,51):
      print i;
      print ",";
      if (i%5==0)
         { print "\n";}
另外,请记住,使用“打印”将导致新行开始。除非如上所述,否则后面将使用逗号

您可以使用字符串收集值,以便以后打印出来。

一些提示

要打印1到50,您需要在范围函数中通过n+1,例如1到51,其i=1;我

i%5和,或\n

打印我将逐行打印,打印我将在同一行中打印


只要我的2美分,你几乎可以像以前一样开始,除了你需要从1开始-2真的很奇怪!-:

但是,如果你想打印一些东西,即使我不是5的倍数,你也需要使用一个else子句,这与我是5的倍数时你已经在做的简单打印不同…:

   else:
      print i, ',',
正如其他答案所说,后面的逗号表示还没有换行符在Python3.0中更简单、更合理,但显然您正在使用Python2.0,在这些版本中,这就是您需要做的

for i in range(1,51):
    if i%5 == 0:
        print i
    else:
        print i, ",",
编辑:对不起,我不知道这是家庭作业。我真的需要在回答之前检查一下标签。下面是对需要发生什么的解释

显然,您知道要输出从1到50的连续数字,所以需要一个计数器。您已经计算出它需要一个范围呼叫,但它需要从1到51,而不是从2到50

范围调用需要从1到51的原因是:它将在1处启动变量i,然后在循环之前检查它是否已达到目标51。如果达到目标,意味着如果i==51,它将退出循环,而不执行循环的代码。所以不是从1到50,而是从1到51,这样我们就不会跳过第50次迭代

接下来,您需要将这些数字显示在屏幕上。但是使用python的print命令将每个数字打印到新行上!那显然不是你想要的。因此,您必须创建一个缓冲字符串,将每个数字附加到该字符串,直到您准备好打印该行。你可以称之为“输出”或其他任何东西

就我个人而言,我喜欢在for循环之前清除缓冲区,以确保没有剩余内存痕迹进入输出。叫我偏执狂。因此,我将output=写在循环之前的一行上

现在您有了一个缓冲区字符串,只需遵循逻辑流即可:

将i添加到缓冲区输出。 如果i是5的倍数,则打印缓冲区输出并将其重置为空字符串。我们这样做是为了能够为下一行启动缓冲区。 如果i不是5的倍数,请在输出缓冲区中添加一个逗号,以便下一个添加的数字位于逗号之后。 继续我们的循环。 这些步骤应该很容易理解。第二步你已经看过了。。。要检查一个数字是否是另一个数字的倍数,只需使用%。如果A%B==0,则A是B的倍数

对于如何解决这个问题,这应该是一个非常简单的解释。希望能有帮助


很抱歉,因为发布了答案而破坏了您的学习体验!现在,您将了解答案的工作原理。

此代码将为您提供所需的输出

for i in range(1,51):
    if i%5 != 0:
        print str(i)+',' , # trailing comma means no \n
    else:
        print i
#python
for i in range(1,51):
if i%5 == 0:
    print (i)#this will give \n at the end
else:
    print (i,end=",")#this will print the numbers with coma at the end
您可以将“end=”放在没有空格的位置进行打印
对于一条语句中的空格“end=”

,可以使用print解包生成器表达式并使用sep参数。此解决方案的好处是不需要显式的if/else条件逻辑

k, n = 5, 50

print(*(','.join(map(str, range(i, i+k))) for i in range(1, n+1, k)), sep='\n')

# 1,2,3,4,5
# 6,7,8,9,10
# 11,12,13,14,15
# 16,17,18,19,20
# 21,22,23,24,25
# 26,27,28,29,30
# 31,32,33,34,35
# 36,37,38,39,40
# 41,42,43,44,45
# 46,47,48,49,50

在打印后使用“,”将数字写在同一行上,例如打印i,事实上,不只是应该,而是应该。我认为最好不要做他/她的家庭作业-轻轻地朝正确的方向推。啊。。。我很抱歉,不知怎的,我错过了这是家庭作业的部分。哎呀,你也用了分号。。。显然从未使用过python:-。他是missi
在if语句后面加上冒号。别忘了。。。因为他不能使用列表。。。将范围更改为xrange:-.Weesa balla代码eka daapan hutto ammata hukanne netuwa
#python
for i in range(1,51):
if i%5 == 0:
    print (i)#this will give \n at the end
else:
    print (i,end=",")#this will print the numbers with coma at the end
k, n = 5, 50

print(*(','.join(map(str, range(i, i+k))) for i in range(1, n+1, k)), sep='\n')

# 1,2,3,4,5
# 6,7,8,9,10
# 11,12,13,14,15
# 16,17,18,19,20
# 21,22,23,24,25
# 26,27,28,29,30
# 31,32,33,34,35
# 36,37,38,39,40
# 41,42,43,44,45
# 46,47,48,49,50