在Python2中,如何在同一行上获取不同数据类型的多个输入?can';t使用map()函数作为输入,但有混合数据
例如:我想把输入作为50 60 70。A是学生的名字,接下来的三个数字是三门学科中A的分数。如上所述,帮助我存储数据。我必须收集n个学生的数据在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
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