使用函数 input()时, Python将用户输入解读为字符串。请看下面让用户输入其年龄的解释器会话:

>> age input("How old are you?")
How old are you? 21
>>>age
' 21 '

  用户输入的是数字21,但我们请求 Python提供变量age的值时,它返回的是'21′——用户输入的数值的字符串表示。我们怎么知道 Python将输入解读成了字符串呢?因为这个数字用引号括起了。如果我们只想打印输入,这一点问题都没有但如果你试图将输入作为数字使用,就会引发错误:

  age= input("How old are you?")
  How old are you? 21
❶ age>=18
  Traceback(most recent call last):
  File"<stdin>", line 1, in <module>
❷ TypeError: unorderable types: str() > int()

  你试图将输入用于数值比较时(见❶), Python会引发错误,因为它无法将字符串和整数进行比较:不能将存储在age中的字符串' 21 '与数值18进行比较(见❷)
为解决这个问题,可使用函数int(),它让 Python将输入视为数值。函数int()将数字的字符串表示转换为数值表示,如下所示:

  >> age input("How old are you?")
  How old are you? 21
❶ >>> age =int(age)
  >> age >=18
  True

  在这个示例中,我们在提示时输入21后, Python将这个数字解读为字符串,但随后int()将这个字符串转换成了数值表示(见❶)。这样 Python就能运行件测试了:将变量age(它现在包含数值21)同18进行比较,看它是否大于或等于18。测试结果为True
  如何在实际程序中使用函数int()呢?请看下面的程序,它判断一个人是否满足坐过山车的身高要求:

  `rollercoaster.py`
  height= input("How tall are you, in inches?")
  height= int(height)
  nt)
  if height >=36:
  print("\nYou're tall enough to ridel")
  else:
  print("\nYou'll be able to ride when you're a little older.")

  在这个程序中,为何可以将 height同36进行比较呢?因为在比较前, height=int(height)
将输入转换成了数值表示。如果输入的数字大于或等于36,我们就告诉用户他满足身高条件:

  How tall are you, in inches? 71
  You're tall enough to ride!

  将数值输入用于计算和比较前,务必将其转换为数值表示。

Last modification:March 9th, 2020 at 07:09 pm