簡體   English   中英

如何在python 2的同一行上獲取不同數據類型的多個輸入? 不能使用 map() 函數,因為輸入有混合數據

[英]How to take multiple inputs of different data types on same line in python 2? can't use map() function as input has mixed data

例如:我想輸入 A 50 60 70。A 是學生姓名,接下來的三個數字是 3 個科目的 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 

您可以將多行代碼保留在一行中,方法是用;分隔它們; ,只要它們處於相同的縮進級別。 而且因為它是 python 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

在 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM