在不带空格的python中打印列表

2024-05-16 01:18:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个程序,将基数10中的一个数字改为基数7,所以我这样做了:

num = int(raw_input(""))
mod = int(0)
list = []
while num> 0:
    mod = num%7
    num = num/7
    list.append(mod)
list.reverse()
for i in range (0,len(list)):
    print list[i],

但如果号码是210,它会打印出420,我该如何去掉空格


Tags: in程序modforinputrawrange数字
3条回答

您可以使用join和列表理解:

>>> l=range(5)
>>> print l
[0, 1, 2, 3, 4]
>>> ''.join(str(i) for i in l)
'01234'

另外,不要使用list作为变量名,因为它是一个内置函数。

在python 3中,您可以这样做:

print(*range(1,int(input())+1), sep='')

如果输入=4:

1234

看看sys.stdout。它是一个文件对象,包装标准输出。因为每个文件都有write方法,该方法接受字符串,并将其直接放入STDOUT。它本身也不会改变或添加任何字符,因此当您需要完全控制输出时,它很方便。

>>> import sys
>>> for n in range(8):
...     sys.stdout.write(str(n))
01234567>>> 

注意两件事

  • 必须将字符串传递给函数。
  • 打印后就没有换行符了。

另外,知道您使用的构造很方便:

for i in range (0,len(list)):
   print list[i],

相当于(坦率地说,效率更高一点):

for i in list:
    print i,

相关问题 更多 >