我對python很陌生,所以我確定我的代碼效率很低,等等,但我只是感覺我的方式和此刻正在學習,所以請原諒我一般的無知。寫一個隨機生成的測驗,需要記得隨機生成的對象
我的測驗目前需要一系列的引號,並隨機打印出他們的前20個字符(通過片),這個想法是quizee背誦其餘的。
我想添加獲取整個報價的能力,但我不知道如何告訴python回憶隨機模塊生成的最後一個對象。
這裏是我的代碼:
import random
control = True
JCIIiii34 = "Valiant men never taste of death but once"
SonnetSeventeen = "If I could write the beauty of your eyes,\nAnd in fresh numbers number all your graces,\nThe age to come would say this poet lies,\nSuch heavenly touches ne'er touched earthly faces."
SonnetEighteen = "So long as men can breath and eyes can see,\nSo long lives this, and this gives life to thee."
JCIii101 = "I had as lief not be as live to be\nIn awe of such a thing as I myself"
print "After quote type 'exit' to leave, or 'next' for next quote"
while control:
quote = random.choice([SonnetSeventeen,SonnetEighteen,JCIIiii,JCIii])
print quote[:20]
var = raw_input ("\n")
if var == "exit":
control = False
elif var == "next":
print "\n"
control = True
所以想什麼,我能夠做的就是增加一個elif的聲明說
elif var == "answer":
print #the full quote
凡print語句調用的對象最初被切片,但完整地打印它。
我已經閱讀了隨機模塊的python庫條目,但沒有找到答案。我也開放更有效的方式做到這一點(我知道我可以將報價存儲在一個單獨的文件中,但還沒有弄清楚)。
在此先感謝您的幫助!
嗯,我覺得自己像個傻瓜。我考慮過它,但認爲它會隨機生成。因此,如果我沒有弄錯,在這樣的while循環中,隨機模塊不會再次隨機化,直到循環完成,並且對象「quote」將臨時指向最後生成的對象,直到它再次循環。這是否準確?編輯:謝謝! – user679400 2011-03-27 22:29:58
是的,就是這樣。如果您需要保留更長時間,只需將該報價保存在另一個變量中(如'last_quote')。 – 2011-03-27 22:33:44
優秀,謝謝! – user679400 2011-03-27 22:37:48