[英]how to take multiple inputs in python from same line with different rules
[英]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.