python输入转化为数字_Python中如何将输入数据转换为数字?

小编典典

Python 2.x

有两个函数用于获取用户输入,分别称为input和raw_input。它们之间的区别是,raw_input不评估数据并以字符串形式原样返回。但是,input将对你输入的内容进行评估,评估结果将返回。例如,

>>> import sys

>>> sys.version

'2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]'

>>> data = input("Enter a number: ")

Enter a number: 5 + 17

>>> data, type(data)

(22, )

5 + 17评估数据,结果为22。当它对表达式求值时5 + 17,它将检测到你要添加两个数字,因此结果也将是同一int类型。因此,类型转换是免费完成的,并22作为的结果返回input并存储在data变量中。你可以将其input视为raw_input与eval呼叫组成的。

>>> data = eval(raw_input("Enter a number: "))

Enter a number: 5 + 17

>>> data, type(data)

(22, )

注意:input在Python 2.x 中使用时应小心。我在这个答案中解释了为什么在使用它时要小心。

但是,raw_input不评估输入并以字符串形式原样返回。

>>> import sys

>>> sys.version

'2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]'

>>> data = raw_input("Enter a number: ")

Enter a number: 5 + 17

>>> data, type(data)

('5 + 17', )

Python 3.x

Python 3.x input和Python 2.x raw_input类似,raw_input在Python 3.x中不可用。

>>> import sys

>>> sys.version

'3.4.0 (default, Apr 11 2014, 13:05:11) \n[GCC 4.8.2]'

>>> data = input("Enter a number: ")

Enter a number: 5 + 17

>>> data, type(data)

('5 + 17', )

要回答你的问题,由于Python 3.x不会评估和转换数据类型,因此必须使用显式转换为ints int,如下所示

x = int(input("Enter a number: "))

y = int(input("Enter a number: "))

你可以接受任意基数的数字,并使用int函数将其直接转换为10基数

>>> data = int(input("Enter a number: "), 8)

Enter a number: 777

>>> data

511

>>> data = int(input("Enter a number: "), 16)

Enter a number: FFFF

>>> data

65535

>>> data = int(input("Enter a number: "), 2)

Enter a number: 10101010101

>>> data

1365

第二个参数告诉输入数字的基础是什么,然后在内部对其进行理解和转换。如果输入的数据有误,将抛出ValueError。

>>> data = int(input("Enter a number: "), 2)

Enter a number: 1234

Traceback (most recent call last):

File "", line 1, in

ValueError: invalid literal for int() with base 2: '1234'

对于可以包含小数部分的值,类型应为float而不是int:

x = float(input("Enter a number:"))

除此之外,你的程序可以像这样进行一些更改

while True:

...

...

if input("Play again? ") == "no":

break

你可以使用break和摆脱变量while True。

2020-01-12

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值