2012-12-15 87 views
1

我對Python很新,我寫了一個簡單的二十一點卡計數應用程序。該應用程序運行並在用戶輸入結束後,我希望它繼續詢問用戶輸入並打印出計數。我不希望它重新啓動,我希望它繼續。我包含了源代碼。多謝你們。允許Python應用程序繼續運行直到用戶結束

count = 0 

var = int(raw_input("Enter the value of the card: ")) 

if var == 1 : 
     print count + 1 
elif var == 2 : 
     print count + 1 
elif var == 3 : 
     print count + 1 
elif var == 4 : 
     print count + 1 
elif var == 5 : 
     print count + 1 
elif var == 6 : 
     print count + 1 
elif var == 7 : 
     print count + 0 
elif var == 8 : 
     print count + 0 
elif var == 9 : 
     print count + 0 
elif var == 10 : 
     print count - 1 
elif var == 11 : 
     print count - 1 
+0

您是否瞭解過循環?搜索周圍的例子。 – JSuar

回答

1

要讓程序運行直到用戶停止提供輸入,您可能需要將代碼放入循環中。當你不知道提前知道需要循環多久時,A while循環通常是最好的。

count = 0 
while True: # runs forever 
    var = int(raw_input("Enter the value of the card: ")) 

    # if/elif block goes here 

一旦你這樣做了,你會發現你的代碼有一個邏輯錯誤。目前,您每次都在if/elif塊之一中打印count + 1或類似內容。但是,這不會修改count的值,它只是直接打印新值。我認爲你想要做的是改變你的代碼,直接修改if/else塊中的count,然後在單獨的步驟中寫出它。您也可以使用<>結合幾個你的條件,如:

if var < 7: 
     count += 1 
    elif var > 9: 
     count -= 1 

    print count 

你可以選擇添加一些額外的錯誤檢查,以確保輸入的值是合適的(例如1和11之間),但我爲了清晰起見,我們在這裏將其留下

+0

我感謝你的答案,但我不認爲你明白如何卡計數的作品。因此,你的新代碼不會遵循正確的原則,也不會提供正確的答案。不過謝謝。 –

+0

哦,我不想讓它繼續問卡,我希望它問,然後打印出來。你什麼都不知道。 –

+0

@KirmaanAboobaker:呃,你有沒有試過我的代碼?我認爲它會做你想要的。我理解黑傑克計數卡的基本原理,當你看到低卡時增加計數,當你看到高卡時減少計數,這就是我的代碼所做的。它也會一直更新計數,然後在每次輸入後打印新值。如果你想要一些不同的解決方案,你需要解釋你想要的問題。這也有助於不要侮辱那些花時間回答你的人。 – Blckknght

相關問題