在Python中将str转换为int

时间:2016-03-30 01:21:48

标签: python type-conversion

我目前正在尝试从一本书中学习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

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

  

RESTART:C:/Users/Gillian/AppData/Local/Programs/Python/Python35-32/Collat​​z.py
  请输入一个数字
  12个
  Traceback(最近一次调用最后一次):     文件“C:/Users/Gillian/AppData/Local/Programs/Python/Python35-32/Collat​​z.py”,第6行,中
      而数字> 1:
  TypeError:unorderable类型:str()> INT()   块引用

显然,当我的变量应该是一个整数时,它被读作一个字符串。我的问题是 - 为什么?我认为第4行的部分,我将数字的数据类型更改为int应该修复它,但它没有。

我想要完成的内容的说明,如果对我的问题很重要,请在页面底部here

1 个答案:

答案 0 :(得分: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