【问题标题】:Printing multiple objects without spaces打印多个没有空格的对象
【发布时间】:2017-01-15 20:31:21
【问题描述】:

我正在编写一个基本程序来反向转换任何 4 位数字。

我知道我正在采用一种非常复杂的方法,但这正是我的教授所要求的。到目前为止,我得到了:

print("This program will display any 4-digit integer in reverse order")

userNum = eval(input("Enter any 4-digit integer: "))

num1 = userNum % 10

userNum2 = userNum // 10

num2 = userNum2 % 10

userNum3 = userNum // 100

num3 = userNum3 % 10

userNum4 = userNum // 1000

num4 = userNum4 % 10

print(num1,num2,num3,num4)

我遇到的问题是 print 语句的输出给了我

x x x x

当我希望拥有时

xxxx

有什么建议吗?

【问题讨论】:

  • print("{}{}{}{}".format(num1, num2, num3, num4))print("%s%s%s%s" % (num1, num2, num3, num4)) 或其他人。
  • 使用print('%d%d%d%d'%(num1,num2,num3,num4))print('{}{}{}{}'.format(num1,num2,num3,num4))
  • 试试这个:print(''.join([ str(k) for k in [num1,num2,num3,num4] ]))
  • 当您的意图是创建int 对象时,不要使用eval;使用int

标签: python printing reverse spaces


【解决方案1】:

如果您阅读print() 的描述,您可以看到您可以将最后一行更改为:

print(num1,num2,num3,num4, sep='')

【讨论】:

  • 效果很好,希望我的教授可以接受,因为我相信我们涵盖了格式。谢谢!
  • 如果您认为我的回答合适,您可以考虑接受这个答案吗? stackoverflow.com/help/someone-answers
【解决方案2】:

因为您只想以相反的顺序转换输入。您可以采取以下方法。

print("This program will display any 4-digit integer in reverse order")
userNum = input("Enter any 4-digit integer: ")
reverse_input = userNum[::-1]
reverse_input = int(reverse_input) # If you want to keep input as an int class
print(reverse_input)

如果您想使用自己的代码,只需更改打印语句即可。

print(str(num1) + str(num2) + str(num3) + str(num4))

字符串连接不会增加空格,所以你应该得到想要的结果。

【讨论】:

  • 谢谢!感谢您的所有帮助!
【解决方案3】:

我将此作为一种练习,让自己确定循环。您可以使用几个循环。

#if using python <3
from __future__ import print_function

x = 3456

z = x

print('While:')

while z > 0:
    print(z % 10, end="")
    z = z / 10;

print()
print('For:')

for y in xrange(4):
    z=x%10
    print(z, end="")
    x = x / 10

感谢您提出这个问题。它鼓励我自己去看看 python 语法,我认为这是一个很好的练习。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-25
    • 2011-05-28
    • 2013-11-06
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    相关资源
    最近更新 更多