【问题标题】:Converting str to int in Python [duplicate]在Python中将字符串转换为int [重复]
【发布时间】:2016-03-30 01:21:47
【问题描述】:

我目前正在尝试从一本书中学习 Python,但遇到了一个问题。基本上我应该写一个程序来做一些叫做 Collat​​z 序列的事情。代码如下:

print("Please enter a number")
number = input()

int(number)

while number > 1:
        collatz()

def collatz(number):
        if number % 2 == 0:
                number = number // 2
                print(number)
                return number
        else:
                number = 3 * number + 1
                print(number)
                return number

所以当我尝试执行上面的代码时,我得到以下输出:

重新启动:C:/Users/Gillian/AppData/Local/Programs/Python/Python35-32/Collat​​z.py
请输入号码
12
回溯(最近一次通话最后): 文件“C:/Users/Gillian/AppData/Local/Programs/Python/Python35-32/Collat​​z.py”,第 6 行,在
而数字 > 1:
TypeError:不可排序的类型:str() > int() 块引用

显然,当我的变量应该是整数时,它被读取为字符串。我的问题是——为什么?我认为第 4 行中我将 number 的数据类型更改为 int 的部分应该可以解决这个问题,但它没有。

如果这对我的问题很重要,我正在尝试完成的说明是页面底部的here

【问题讨论】:

  • 您没有将int(number) 的结果分配给任何东西。考虑number = int(number)

标签: python type-conversion


【解决方案1】:

在做int(number)之后,你必须再次将它分配给number

number = int(number)

这是因为int(number) 本身不会改变number,它只是返回一个转换为整数类型的版本。

您还可以通过将输入和强制转换合二为一来简化代码:

number = int(raw_input("Please enter a number"))

在 Python 2.7 中。在 Python 3 中,将 raw_input 替换为 input

【讨论】:

  • 啊,你秒杀我:P 告诉他如何结合他的提示和生病删除我的:P
  • 成交,完成。 :)
  • @GillianWeisgram 最好请求宽恕而不是允许。 :) 但是,是的,开火吧。
猜你喜欢
  • 1970-01-01
  • 2021-12-25
  • 2019-09-17
  • 1970-01-01
  • 2015-06-18
  • 2017-05-07
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
相关资源
最近更新 更多