我是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
但是在第二行中不是这样,而是在每个数字之前打印一个额外的空格。
如何克服这个问题?
答案 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