2017-05-23 4 views
0

예 : A 50 60 70으로 입력하고 싶습니다. A는 학생 이름이고 다음 세 숫자는 3 개의 과목에서 A의 표시입니다. 위와 같이 데이터를 저장하는 데 도움이됩니다. n 명의 학생들을 위해 그 데이터를 수집해야합니다.파이썬 2에서 같은 줄에 다른 데이터 형식의 여러 입력을받는 방법?

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 
+0

이 항상 스키마를 통과 않다면 "studnet, grade1, grade2, grade3"이 가장 빠른 방법입니다 - '일, ENG, 매트, 공상 = raw_input을() 분할()' –

+0

@Howaboutnope. : 고맙습니다 !! –

답변

1

당신은만큼 그들은 같은 들여 쓰기 수준에있어 같은 ;로 구분하여 한 줄에 여러 줄의 코드를 유지할 수 있습니다. 그리고 이후 파이썬 2, 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 

는하지만 ... 이것은 좋은 방법이 아닙니다. 서로 다른 줄로 구분해야합니다.

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 
+0

'input()'대신'raw_input()'을 사용하는 구체적인 이유는 무엇입니까? 에러 체크 이외에 – kuro

+2

@kro는 int를 n으로 변환하도록 상기시켜 주셔서 감사합니다. 'raw_input()'을 사용하는 이유에 대해 'eval()'이 [위험]하다고 들었다 (https://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html)? 음, python2의'input()'은'eval (raw_input())'과 같습니다. – abccd

+0

ooh. 해명 해줘서 고마워. – kuro