如何在python中删除'print'命令的额外空间?

时间:2011-10-05 06:20:42

标签: python

我是python的新手,我正在使用v2.7

#Filename:ReverseNumber.py
data=int(raw_input("Enter any number: "))
print "Reverse of the number: ",
while data!=0:
    a=data%10
    print a,
    data=data/10

所以输出应该是这样的:

Enter any number: 123
Reverse of the number: 321

但是在第二行中不是这样,而是在每个数字之前打印一个额外的空格。

如何克服这个问题?

4 个答案:

答案 0 :(得分:4)

您可以通过多种方式修改您的方法:

创建一个值列表,然后使用空白字符串将它们连接起来进行打印:

out = []
while data != 0:
  out.append(data % 10)
  data /= 10
print ''.join(map(str, out))

您可以跳过整个整数转换步骤,只需反转传入的字符串:

data = '123'
print data[-1::-1]

您可以跳过整数步骤并加入reverse的结果:

data = '123'
print ''.join(reversed(data))

您可以为您的号码添加backspace打印命令:

while data != 0:
  print '\b%d' % (data % 10)
  data /= 10

希望其中一个符合您的要求。

答案 1 :(得分:2)

打印a时会有隐含空格。

来自python docs:

在每个对象(转换和)写入之前写入一个空格,除非输出系统认为它位于一行的开头。这是情况(1)当没有字符时尚未写入标准输出,(2)当写入标准输出的最后一个字符是除''之外的空格字符,或者(3)当标准输出上的最后一个写操作不是打印语句时。“

所以试试

print "Reverse of the number:",

答案 2 :(得分:0)

一种方法是在你准备打印整批之前不要打印它。示例代码遵循使用字符串:

data = int (raw_input ("Enter any number: "))
if data == 0:
    str = "0"
else:
    str = ""
    while data != 0:
        str = "%s%d" % (str, data % 10)
        data = data / 10
print "Reverse of the number: %s" % (str)

答案 3 :(得分:-2)

创建一个空变量以存储反转数字,在循环中附加每个数字,然后进行打印。

a = ''
while data!=0:
    a += data%10
    data=data/10
print a