打印逗号分隔的项目,不带换行符

时间:2016-09-20 09:14:14

标签: python python-3.x printing

我以为我是从previous question/answer逐字逐句复制,但是,我没有得到我想要的东西。

我试图从初学者的在线python问题列表中回答一个问题。我在名为q.py的文件中写了以下内容,然后在我的shell中用python3 q.py执行了它。

文件q.py如下:

from math import sqrt
C=50
H=30
inp = input('input values:   ')
vals = inp.split(',')
print(vals)
for x in vals:
    D=int(x)
    print(int(sqrt(2*C*D/H)),sep=',',end='')
print()

我输入100,150,180作为建议的问题,所需的答案是:

18,22,24 

但我得到的答案是:

182224

当我忽略"end"的{​​{1}}参数时,我会将print1822分隔为换行符。

1 个答案:

答案 0 :(得分:2)

如果实际提供了多个值,

sep用于分隔值 ;您为每个循环提供一个值,因此不使用分隔符。

不使用sep=',',而是使用end=','来获得所需效果:

for x in vals:
    D=int(x)
    print(int(sqrt(2*C*D/H)),end=',')
print()

使用类似输入,打印出的结果是:

['100', '150', '180']
18,22,24,

例如,如果您提供多个值,例如,通过在print电话中解压缩列表解析,sep=','就会像魅力一样:

print(*[int(sqrt(2*C*int(x)/H)) for x in vals], sep=',')

打印:

18,22,24