Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
Python2.7存储来自同一原始输入行的浮点和字符串_Python_String_Python 2.7_Floating Point_Raw Input - Fatal编程技术网

Python2.7存储来自同一原始输入行的浮点和字符串

Python2.7存储来自同一原始输入行的浮点和字符串,python,string,python-2.7,floating-point,raw-input,Python,String,Python 2.7,Floating Point,Raw Input,我试图让Python2.7存储一行同时包含一个字符串和三个浮点数的输入,以便执行一些平均值,等等 例输入:汤姆25 30 20 我试过: name, score1, score2, score3 = raw_input().split() score1, score2, score3 = [float(score1),float(score2),float(score3)] 但是由于字符串的原因,它抛出了一个“无效文字”错误。另外,我的代码感觉很笨重,有没有更简单的方法 谢谢你的帮助 您可以对

我试图让Python2.7存储一行同时包含一个字符串和三个浮点数的输入,以便执行一些平均值,等等

例输入:汤姆25 30 20

我试过:

name, score1, score2, score3 = raw_input().split()
score1, score2, score3 = [float(score1),float(score2),float(score3)]
但是由于字符串的原因,它抛出了一个“无效文字”错误。另外,我的代码感觉很笨重,有没有更简单的方法


谢谢你的帮助

您可以对其进行一点重构,但您所拥有的功能是有效的,并且没有那么庞大或糟糕

>>> user_input = raw_input('Enter your name and three numbers: ').strip().split()
Enter your name and three numbers: Tom 25 30 20
>>> name = user_input[0]
>>> scores = map(float, user_input[1:])
>>> name
'Tom'
>>> scores
[25.0, 30.0, 20.0]
这样做意味着使用一个列表(下标为
scores[0]
scores[1]
),而不是名为
n1
n2
的变量(我总是觉得你应该使用一个列表)

map
float
一起使用意味着您不必写
float(var)
三次


您还可以在用户输入上考虑<代码>条()/<代码>。这通常是一个好主意,尤其是因为您隐式地拆分了空格。

您可以对其进行一些重构,但您所拥有的功能是有效的,并且没有那么庞大或糟糕

>>> user_input = raw_input('Enter your name and three numbers: ').strip().split()
Enter your name and three numbers: Tom 25 30 20
>>> name = user_input[0]
>>> scores = map(float, user_input[1:])
>>> name
'Tom'
>>> scores
[25.0, 30.0, 20.0]
这样做意味着使用一个列表(下标为
scores[0]
scores[1]
),而不是名为
n1
n2
的变量(我总是觉得你应该使用一个列表)

map
float
一起使用意味着您不必写
float(var)
三次


您还可以在用户输入上考虑<代码>条()/<代码>。这通常是一个好主意,尤其是因为您隐式地拆分了空格。

您可以这样解决您的问题:

input = raw_input("Give me the input [name number number number]: ").split(" ")
name = input[0]
floats = map(float, input[1:])
print "I'm your name ", name
print "I'm your floats ", floats
print "I'm a sample average ", sum(floats)/len(floats)
您可以通过以下方式获得任何浮动:

floats[i]

您可以这样解决您的问题:

input = raw_input("Give me the input [name number number number]: ").split(" ")
name = input[0]
floats = map(float, input[1:])
print "I'm your name ", name
print "I'm your floats ", floats
print "I'm a sample average ", sum(floats)/len(floats)
您可以通过以下方式获得任何浮动:

floats[i]

您的代码函数与编写的代码函数完全相同,不会引发任何错误。您的代码函数与编写的代码函数完全相同,不会引发任何错误。此外,请对无效的文字错误进行注释。您可以检查您的字符串是否因某种原因包含任何非打印字符,并在将其转换为浮动字符之前将其删除:
print repr(用户输入)
是的,这是不同的,我们需要OP提供更多信息。问题中的任何内容都不会导致这种情况,好的。谢谢大家的帮助。我输入了一个字符串,在此之前它需要int,但我没有捕捉到它。Python是我第一次尝试编程,现在才做了几个月!另外还有一个关于无效文字错误的注释。您可以检查您的字符串是否因某种原因包含任何非打印字符,并在将其转换为浮动字符之前将其删除:
print repr(用户输入)
是的,这是不同的,我们需要OP提供更多信息。问题中的任何内容都不会导致这种情况,好的。谢谢大家的帮助。我输入了一个字符串,在此之前它需要int,但我没有捕捉到它。Python是我第一次尝试编程,现在才做了几个月!