如何在python中打印新行上的数字

如何在python中打印新行上的数字,python,Python,一个程序接受许多输入,例如数字或整数,如何在新行上打印它们中的每一个。 我输入这个2,4,5,2,38。 程序应在新行上显示每一个,如下所示 Item = input ("Enter your number") #user enters the following numbers 5,2,6,3,2 #print out each number on a new line # output 5 2 6 3 2 所有变量都保存在一个变量中。在python中键入print(),它将移动到下

一个程序接受许多输入,例如数字或整数,如何在新行上打印它们中的每一个。 我输入这个2,4,5,2,38。 程序应在新行上显示每一个,如下所示

Item = input ("Enter your number")
 #user enters the following numbers 5,2,6,3,2
 #print out each number on a new line 

# output
5
2
6
3
2
所有变量都保存在一个变量中。

在python中键入
print()
,它将移动到下一行。如果这是一个清单,你可以做

for num in list:
    print(num)
    print()
您想用列表的名称替换“列表”


您还可以在打印函数中键入引号中的
\n
以移动到新行。

您所需要的只是一个简单的for循环,该循环迭代输入并打印它

data = raw_input('enter ints').split(',')

for n in data:
    if n.isdigit():
        print n
注意:如果您使用的是Pyhon 3.x,则需要使用
input
而不是
raw\u input

第一行将用户输入数据分配给
data
变量,并按空格分割项目。(您可以改为更改此拖距) for循环对该列表中的每个项进行迭代,并检查它是否为数字。因为列表元素是字符串,所以我们可以使用
isdigit()
string方法来测试它

>>> '5'.isdigit()
True
>>> '12398'.isdigit()
True

如果您想以另一种方式执行此操作,可以使用
'\n'.join(data)
方法,该方法将连接列表元素并使用'\n'连接它们

>>> inpu = raw_input('enter ints\n').split(',')
>>> inpu = [c.strip() for c in inpu]
>>> print '\n'.join(inpu)
1
2
3
4

这实际上是更好的方法,因为它比for循环更简单。

如果数字用逗号分隔,您可以用逗号分隔,然后用新行将它们连接起来:

>>> Item = input ("Enter your numbers: ")
Enter your numbers: 5,2,6,3,2
>>> Result = '\n'.join(Item.split(','))
>>> print(Result)
5
2
6
3
2
>>>

如果要打印逗号分隔的整数列表,每行一个整数,可以执行以下操作:

items = input('Enter a comma-separated list of integers: ')
print(items.replace(",", "\n"))
例如:

Enter a comma-separated list of integers:  1,13,5
1
13
5
Enter a comma-separated list of integers:  2, 4, 5; 2,38
2
4
5
2
38
您可以通过使用正则表达式接受“;”而不是“,”和可选空格来改进:

import re

items = input('Enter a comma-separated list of integers: ')
print(re.sub(r"[,;]\s*", "\n", items))
例如:

Enter a comma-separated list of integers:  1,13,5
1
13
5
Enter a comma-separated list of integers:  2, 4, 5; 2,38
2
4
5
2
38

看来我来不及参加印刷派对了:) 这也适用于你。。。将其包装在函数中

# assuming STDIN like: "2,4,5,2,38,42 23|26, 24| 31"

split_by = [","," ","|"]
i_n_stdin = input()
for i in split_by:
    i_n_stdin = i_n_stdin.split(i)
    i_n_stdin = " ".join(i_n_stdin)
    #print(i_n_stdin)
for i in i_n_stdin.split():
    print(i)

通过将end参数定义为“\n”(对于新行),即print(x,end='\n')

输出

  1
  2
  3
  4
您可以在python中使用帮助函数

>>> help(print)

Help on built-in function print in module builtins:

print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file:  a file-like object (stream); defaults to the current sys.stdout.
sep:   string inserted between values, default a space.
end:   string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
Python3.x

items = input('Numbers:').split(',')   # input returns a string
[print(x) for x in items]
Python2.x

items = input('Numbers:')   # input returns a tuple
# you can not use list comprehension here in python 2,
# cause of print is not a function  
for x in items: print x     

你的问题是什么?@ronakg我试着将所有的数字存储在一个变量中并打印出来,但它似乎只打印我输入的最后一个数字。用户是如何输入数字的?用逗号或空格分隔?打印按默认值打印新行OK如果整数不是字符串怎么办?每次输入完循环后,输入我想要的整数量,它应该在不同的行中显示我输入的每一个整数。您也可以使用
print(n)
如果使用Python 3.x.ok,那么没有for循环就没有办法做到这一点。或者你能不能解释一下,你只打印数字,而不是大于等于10的整数。OP需要一个逗号分隔的整数列表。@samjerrierimanuel有,使用
join()
方法。我已经更新了我的答案以包含该解决方案,并详细介绍了for循环1。@LaurentPorte它会测试字符串项是否表示数字。我已经添加了一个使用
isdigit()