2017-04-18 41 views
0

我有3個數組的大小5,一個包含名稱的字符串,另一個是與他們的年齡相關,而另一個與工資相關。Python 3 - 如何在一行上打印來自不同數組的多個元素?

這是使用Python,所以我已經習慣了Java的語法,我不知道,如果我處理這個正確的我的第一次。

我有以下2行:

for i in range(5): 
    name = raw_input("Enter a person's name: ") 
    nameArray.append(str(name)) 
    age = raw_input("What is their age: ") 
    ageArray.append(int(age)) 
    salary = raw_input("How much do they make: ") 
    salaryArray.append(int(salary)) 

for j in range(5): 
    print(nameArray + ' is ' + ageArray + ' years old and makes $' + salary) 
+0

你需要使用'index','nameArray [J]'等等...你正在使用python2或python3。我對'raw_input()'方法有疑問。 – bhansa

+0

你幾乎肯定使用*列表*而不是數組。在Python,「陣列」應被用於具體指要麼'array.array'或'numpy.array'類型,而不是列表。雖然你當然看到這個術語的草率使用,但最好是精確的。 Python列表與Java數組非常不同,它們更像Java中的ArrayList 。 –

回答

2

你需要關心的陣列約lists幾乎相同,並且你需要同你在陣列中確實提供索引,如果你在任何特定的訪問列表元素java的。

更新的代碼

nameArray = [] 
ageArray = [] 
salaryArray = [] 
for i in range(5): 
    name = input("Enter a person's name: ") 
    nameArray.append(str(name)) 
    age = input("What is their age: ") 
    ageArray.append(int(age)) 
    salary = input("How much do they make: ") 
    salaryArray.append(int(salary)) 

for j in range(5): 
    print(nameArray[j] + ' is ' + str(ageArray[j]) + ' years old and makes $' + str(salaryArray[j])) 

The Byte of Python尼斯本書一個新的開始。

如果您正在使用python2,只是想打印結果,而不存儲:-)

for i in range(5): 
    print "{} is {} years old and makes {}".format(raw_input("Enter a person's name: "),raw_input("What is their age: "),raw_input("How much do they make: ")) 
+0

我得到了我在哪裏設置的名稱,並要求爲名稱的輸入線回溯和名稱錯誤。這是由於我改變raw_input輸入?我在線閱讀raw_input返回一個字符串和輸入返回一個「表達式?」 – zerrisk

+0

如果您正在使用python3你應該使用'input'它將返回海峽。閱讀文檔以獲得更好的說明。或閱讀[這](http://stackoverflow.com/questions/4915361/whats-the-difference-between-raw-input-and-input-in-python3x) – bhansa

0

歡迎蟒蛇。這是一個完美的事情RABIT孔:)

你正在嘗試做的工作(有一些調整),但不是最Python的辦法 首先你嘗試:用輸入,而不是和的raw_input其次,您需要定義您的陣列(稱爲Python列表),你可以追加

如前

nameArray = [] 
ageArray = [] 
salaryArray = [] 

for i in range(5): 
    name = input("Enter a person's name: ") 
    nameArray.append(str(name)) 
    age = input("What is their age: ") 
    ageArray.append(int(age)) 
    salary = input("How much do they make: ") 
    salaryArray.append(int(salary)) 

for j in range(5): 
    print(nameArray[j] + ' is ' + ageArray[j] + ' years old and makes $' + salaryArray[j]) 

但是,使用字典更好(又名pythonic)。見下面的例子:

persons = [] 
for i in range(5): 
    name = input("Enter a person's name: ") 
    age = input("What is their age: ") 
    salary = input("How much do they make: ") 
    person = {'name' : name, 'age' : int(age), 'salary' : int(salary)} 
    persons.append(person) 

for person in persons: 
    print(person['name'], 'is', str(person['age']), 'years old and makes $', str(person['salary'])) 
+1

但是,對於這種情況下,我會建議字典。例如person = {'name':n,'age':a,'salary':s}然後將其附加到人員列表中。這確保了數據保持在一起。使用3個獨立的數組可能會添加或刪除數組中的一個或多個條目,而不更新其他任何條目。 –

+0

請更新答案,檢查最後一行中的錯誤。還添加字典的執行或解釋給你的答案,將有所幫助。 – bhansa

2

用詞典,以反映您在僱員的利益是姓名,年齡和薪水,而不是被隱式相關的名單。

employees = [] 
for i in range(5): 
    name = raw_input("Enter a person's name: ") 
    age = raw_input("What is their age: ") 
    salary = raw_input("How much do they make: ") 
    employees.append({"name": name, "age": age, "salary": salary}) 

for emp in employees: 
    print('{name} is {age} years old and makes ${salary}'.format(**emp)) 
0
根據我這個代碼解決您的問題將有所幫助

: -

nameArray=[] 
ageArray=[] 
salaryArray=[] 
for i in range(2): 
    name = raw_input("Enter a person's name: ") 
    nameArray.append(name) 
    age = raw_input("What is their age: ") 
    ageArray.append(age) 
    salary =raw_input("How much do they make: ") 
    salaryArray.append(salary) 

for j in range(2): 
    print(nameArray[j] + ' is ' + ageArray[j] + ' years old and makes $' + salaryArray[j]) 
相關問題