【问题标题】:Python - Attempting to print an integer in reverse [duplicate]Python - 尝试反向打印整数[重复]
【发布时间】:2018-04-20 04:05:56
【问题描述】:

例如,我希望输入 234 打印出 432。我以为我已经确定了它,但无论出于何种原因,我总是遇到运行时错误。我对 Java 没问题,但 Python 对我来说是新的,任何帮助都将不胜感激。

def reverseDigits(n):
    reverse = n % 10
    str(reverse)
    n = n // 10
    while n > 0:
        temp = n % 10
        str(temp)
        reverse = str(reverse) + str(temp)
        temp = int(temp)
        n // 10
    return reverse

def main():
    n = eval(input("Enter a integer: "))
    print("The reverse of the digits of ", n, "is", reverseDigits(n))

main()

【问题讨论】:

  • 注意str(x)不会修改x;它只评估str(x) 并丢弃该值。这些行在您的代码中没有任何作用。
  • 我认为您对 Python 如何处理数据类型存在根本性的误解。 str(reverse) 不会将reverse 声明为字符串,也不会以任何方式修改reverse。它所做的只是返回reverse 的字符串表示形式。
  • @coldspeed 它看起来不像str 的问题,这是一个逻辑问题

标签: python


【解决方案1】:

你可以只使用列表切片:

n = int(input("Enter a integer: "))
new_integer = int(str(n)[::-1])

请注意,强烈建议不要使用eval,因为它会使您的系统容易受到代码注入的影响。

【讨论】:

  • 一句解释,你有 4 票……干得好;)
【解决方案2】:

更改while循环内的行[错误是因为它进入了无限循环]

 n // 10

 n = n // 10

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多