Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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中,如何在同一行上获取不同数据类型的多个输入?can';t使用map()函数作为输入,但有混合数据_Python_Python 2.7_User Input - Fatal编程技术网

在Python2中,如何在同一行上获取不同数据类型的多个输入?can';t使用map()函数作为输入,但有混合数据

在Python2中,如何在同一行上获取不同数据类型的多个输入?can';t使用map()函数作为输入,但有混合数据,python,python-2.7,user-input,Python,Python 2.7,User Input,例如:我想把输入作为50 60 70。A是学生的名字,接下来的三个数字是三门学科中A的分数。如上所述,帮助我存储数据。我必须收集n个学生的数据 n=input() for i in range(0,n): St=raw_input(), Eng,Mat,Sci=map(int,raw_input().split()) print st print Eng,Mat,Sci 错误: sh-4.3$ python main.py

例如:我想把输入作为50 60 70。A是学生的名字,接下来的三个数字是三门学科中A的分数。如上所述,帮助我存储数据。我必须收集n个学生的数据

n=input()
for i in range(0,n):
    St=raw_input(), Eng,Mat,Sci=map(int,raw_input().split())
    print st
    print Eng,Mat,Sci
错误:

sh-4.3$ python main.py                                                                                                                                                                                        
  File "main.py", line 3                                                                                                                                                                                      
    St=raw_input(), Eng,Mat,Sci=map(int,raw_input().split())                                                                                                                                                  
SyntaxError: can't assign to function call 

通过使用
分隔多行代码,可以将多行代码保留在一行中,只要它们处于相同的缩进级别。既然是Python2,难道不应该
n=int(raw_input())

但是……这不是一个好的做法,因为它会使代码更难阅读。你应该用不同的线把它们分开

n=int(raw_input())
for i in range(0,n):
    St=raw_input()
    Eng,Mat,Sci=map(int,raw_input().split())
    print st
    print Eng,Mat,Sci
在Python中,split()函数用于将多个输入作为列表数据类型。如果您需要int、char或string类型的数据,那么您需要应用Python的类型转换

n=int(raw_input())
for i in range(0,n):
     s=str(raw_input())
     St,Eng,Mat,Sci=raw_input().split()
     Eng=int(Eng)
     Mat=int(Mat)
     Sci=int(Sci)
     print St,s
     print Eng,Mat,Sci

我认为这可以在python 3中完成工作

n = int(input())
marks = {}
for i in range(n):
    name, *line = input().split()
    scores = list(map(float, line))
    marks[name] = scores

使用
raw\u input()
而不是
input()
的具体原因是什么?除了错误checking@kuro感谢您提醒我将n转换为int。为什么要使用
raw\u input()
,您听说过
eval()
is吗?是的,python2中的
input()
相当于
eval(raw_input())
如果它总是通过模式:“studnet,grade1,grade2,grade3”这是最快的方法-
st,eng,mat,sci=raw_input()。split()
@Howaboutnope:谢谢!!一个解释,一个代码做什么,以及它如何解决问题,很少不能改善答案。
n = int(input())
marks = {}
for i in range(n):
    name, *line = input().split()
    scores = list(map(float, line))
    marks[name] = scores