def get_student_list():
iStr = ""
stdlist = []
x = 1
while not iStr == "quit":
iStr = input(f'Please enter a new student name, ("quit" if no more student)')
if not iStr == "quit":
stdlist.append(iStr)
elif iStr == "":
print("Empty student name is not allowed.")
x = 1
print(f'The whole class list is {sum(stdList)}')
出了什么問題,我該如何解決?
我期待用戶將學生輸入串列并在他們鍵入退出時結束。或為空時,不允許列印空學生姓名
uj5u.com熱心網友回復:
您的串列是在函式中定義的,并且您的列印是全域的,因此它不起作用^^您可以將 stdlist 定義為全域(在您的函式之外)或縮進您的列印
uj5u.com熱心網友回復:
該串列stdlist
是函式的本地串列get_student_list()
。您的最后一個print
無權訪問它。
修理:
def get_student_list():
# All your code here
return stdlist
stdlist = get_student_list()
print(f'The whole class list is {sum(stdlist)}')
uj5u.com熱心網友回復:
我在你的代碼中修復了一些東西,使它更具可讀性
def get_student_list():
stdlist = []
while True:
iStr = input('Please enter a new student name, ("quit" if no more student)')
if iStr == "quit":
return stdlist
elif iStr == "":
print("Empty student name is not allowed.")
else:
stdlist.append(iStr)
stdList = get_student_list()
print(f"You have a total of {len(stdList)} students:")
for i, name in enumerate(stdList):
print(f" {i 1}) {name}")
這將回傳:
You have a total of 3 students:
1) Bob Marley
2) Michael Jackson
3) Elvis Presley
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/531197.html