我是Python新手。 我正在創建一個GPA計算器。第一部分是拿一個學號並檢查它是否有效。如果數字的總和可以被七整除(該部分起作用),那麼這是有效的。爲什麼在使用while循環後不會運行更多的代碼?
如果該號碼有效,那麼用戶必須爲他們的所有課程輸入他們的字母等級。代碼必須保持接受輸入,直到提交空白行。我爲這部分使用了一個while循環。
但是,一旦所有成績都被提交,並且他們輸入空白行,我需要採取原始輸入並用它來計算他們的GPA。我的問題是while循環結束後沒有其他代碼似乎運行。我想運行一個for循環來檢查輸入並將它們轉換成GPA分數,但無論我放入/放入的位置是什麼,代碼都會在輸入提交後結束。
這裏是我做了什麼:
student_number=raw_input("What is your 5-digit student number?")
added_digits=sum(int(x) for x in student_number)
div_7=added_digits%7
if div_7==0 and len(str(student_number))==5:
print "Your student number is valid."
grades=raw_input("To find out your average GPA, please list your letter
grades for each class.\n")
while grades!="":
grades=raw_input()
grade_value=0
for x in grades:
if x=="A":
grade_value+=4.0
print grade_value
if x=="B":
grade_value+=3.0
print grade_value
else:
print "That is not a valid student number."`enter code here`
無論我把什麼輸入,for循環後while循環似乎從來沒有運行。我似乎無法讓代碼在while循環後執行其他任何操作。
謝謝!
你能清理你的代碼,使它更容易閱讀嗎?它的方式使得真正難以幫助您進行調試。 –
感覺你的循環中的縮進是錯誤的。 – sircodesalot
除了你得到的答案之外,如果'!='「'''''''''''''''''''''''''',那麼您可能想要將成績追加到列表中,然後一旦剔除while循環就迭代該列表的內容。當您詢問'raw_input()'時,'grades'被完全重新定義,所以以前的所有值都會丟失。 – roganjosh