請問你的代碼通常編譯自行(您通過cx_Freeze運行之前)? 「re」是python正則表達式庫。
如果你是爲客戶做這件事,你確定你的合同允許你公開發布整個源代碼嗎?
沒有冒犯,但你的編碼風格非常糟糕。你重複了很多代碼:你可以通過編寫泛化函數來簡化這個程序。舉例來說,線條16-60可以簡化爲這樣:
def get_user_response(text, err_text="Please enter a number"):
derp=False
while derp == False:
try:
val = str(input(text))
derp = True
except ValueError:
win32api.MessageBox(None,err_text, "Error!")
derp = False
derp = False
return val
room_price.write(get_user_response("What is the room price?"))
night_price.write(get_user_response("What is the laundry price?"))
Laundry_price.write(get_user_response("What is the internet price per hour?"))
Telephone_price.write(get_user_response("What is the telephone price per hour?"))
關於這一點:考慮最後4行:你用小寫前兩個變量名和大小寫混合第二兩個變量。爲什麼?這隻會讓你的生活變得艱難。你應該選擇一個命名約定並堅持下去。
你的PassworD()
功能只是一個真正的壞主意。不要以明文形式存儲密碼。一個常見的解決方案是將密碼存儲爲哈希值,但我不會假裝在加密或安全性方面很棒。但我知道你在做什麼是一個壞主意,你應該研究用明文存儲密碼的替代解決方案。
無論如何:我沒有看到您的特定錯誤的來源。對不起,你必須自己弄清楚。但是你可以通過各種方式大大簡化你的代碼(其中最重要的是將頻繁重複的代碼和命名約定劃分出來),簡單的代碼更容易調試。
感謝您的回覆。我知道我的代碼很糟糕,但這是針對一個學校項目(中學),說實話是我第一次做了50多行。我確定我可以做很多事情來大大改善它,但由於有一個截止日期,我沒有太多時間。更不用提我寫新的代碼,我知道我有很多東西要學。至於密碼功能,這不是真正用於現實生活中的使用,所以只要它能存儲密碼就可以了。我對如何使其實際安全有一些基本的想法。無論如何,即時通訊使用可移植的Python,所以它dosnt得到編譯。 「編譯」 – user1956027 2013-02-26 15:29:59
我的意思是你可以在解釋器中正常運行代碼而不會收到錯誤。 – 2013-02-26 20:49:15
然後是的,我可以。 – user1956027 2013-02-27 16:15:02