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



我是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

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

如何克服这一点?

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

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

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

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

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

您可以跳过整数步骤,并将结果连接到reversed:

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

你可以在你的数字打印命令中添加一个backspace:

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

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

显示a时,有一个隐式空格

从python文档:

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

所以尝试

print "Reverse of the number:",

一种方法是在准备好打印全部内容之前不打印它。下面的示例代码使用字符串:

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)

创建一个空变量,用于存储反转的数字,在循环中将每个数字追加,然后进行打印。

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

最新更新