Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将输入读取为数字?_Python_Python 3.x_Python 2.7_Input_Int - Fatal编程技术网

Python 如何将输入读取为数字?

Python 如何将输入读取为数字?,python,python-3.x,python-2.7,input,int,Python,Python 3.x,Python 2.7,Input,Int,为什么在下面的代码中x和y是字符串而不是int (注意:在Python2.x中使用raw\u input()。在Python3.x中,使用input()raw\u input()在Python3.x中被重命名为input()) 解决方案 由于Python3,input返回一个字符串,您必须将其显式转换为ints,如下所示 x = int(input("Enter a number: ")) y = int(input("Enter a number: ")

为什么在下面的代码中
x
y
是字符串而不是int

(注意:在Python2.x中使用
raw\u input()
。在Python3.x中,使用
input()
raw\u input()
在Python3.x中被重命名为
input()

解决方案 由于Python3,
input
返回一个字符串,您必须将其显式转换为
int
s,如下所示

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))
>>> 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
您可以接受任意基数的数字,并使用
int
函数将其直接转换为base-10,如下所示

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))
>>> 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(输入(“输入一个数字”),2)
输入一个数字:1234
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:基为2的int()的文本无效:“1234”
对于可以包含分数分量的值,类型应为
float
,而不是
int

x = float(input("Enter a number:"))
Python2和Python3之间的差异 摘要

  • Python 2的
    input
    函数对接收到的数据进行求值,并将其隐式转换为整数(阅读下一节以了解其含义),但Python 3的
    input
    函数不再这样做
  • Python2相当于Python3的
    input
    raw\u input
    函数
python2.x

有两个函数用于获取用户输入,分别称为和。它们之间的区别是,
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, <type 'int'>)
注意:在Python2.x中使用
input
时应该小心。我解释了为什么一个人在使用它时要小心

但是,
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', <type 'str'>)
解决方案 由于Python3,
input
返回一个字符串,您必须将其显式转换为
int
s,如下所示

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))
>>> 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
您可以接受任意基数的数字,并使用
int
函数将其直接转换为base-10,如下所示

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))
>>> 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(输入(“输入一个数字”),2)
输入一个数字:1234
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:基为2的int()的文本无效:“1234”
对于可以包含分数分量的值,类型应为
float
,而不是
int

x = float(input("Enter a number:"))
Python2和Python3之间的差异 摘要

  • Python 2的
    input
    函数对接收到的数据进行求值,并将其隐式转换为整数(阅读下一节以了解其含义),但Python 3的
    input
    函数不再这样做
  • Python2相当于Python3的
    input
    raw\u input
    函数
python2.x

有两个函数用于获取用户输入,分别称为和。它们之间的区别是,
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, <type 'int'>)
注意:在Python2.x中使用
input
时应该小心。我解释了为什么一个人在使用它时要小心

但是,
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', <type 'str'>)
input()
(Python 3)和
raw\u input()
(Python 2)始终返回字符串。使用
int()
将结果显式转换为整数

input()
(Python 3)和
raw\u input()
(Python 2)始终返回字符串。使用
int()
将结果显式转换为整数


在Python3.x中,
raw_input
被重命名为
input
,Python2.x
input
被删除

这意味着,就像Python3.x中的原始输入一样,总是返回一个string对象

要解决此问题,您需要将这些输入显式转换为整数,方法是将它们放入:


在Python3.x中,
raw_input
被重命名为
input
,Python2.x
input
被删除

这意味着,就像Python3.x中的原始输入一样,总是返回一个string对象

要解决此问题,您需要将这些输入显式转换为整数,方法是将它们放入:


我在解决上的一个问题时遇到了一个获取整数输入的问题,其中两个整数(由空格分隔)应从一行中读取

虽然
int(input())
对于一个整数就足够了,但我没有找到直接输入两个整数的方法。我试过这个:

num = input()
num1 = 0
num2 = 0

for i in range(len(num)):
    if num[i] == ' ':
        break

num1 = int(num[:i])
num2 = int(num[i+1:])

现在我使用num1和num2作为整数。希望这有帮助。

我在解决上的一个问题时遇到了一个获取整数输入的问题,其中两个整数(由空格分隔)应该从一行中读取

虽然
int(input())
对于一个整数就足够了,但我没有找到直接输入两个整数的方法。我试过这个:

num = input()
num1 = 0
num2 = 0

for i in range(len(num)):
    if num[i] == ' ':
        break

num1 = int(num[:i])
num2 = int(num[i+1:])

现在我使用num1和num2作为整数。希望这有帮助。

多个问题需要在一行中输入多个整数。最好的方法是将整串数字输入一行,然后将它们拆分为整数。以下是Python 3版本:

a = []
p = input()
p = p.split()      
for i in p:
    a.append(int(i))
也可以使用列表理解

p = input().split("whatever the seperator is")
要将所有输入从string转换为int,我们需要执行以下操作

x = [int(i) for i in p]
print(x, end=' ')
应打印列表元素
n=int(input())
for i in range(n):
    n=input()
    n=int(n)
    arr1=list(map(int,input().split()))