1
目標是創建一個程序,它將有效地讓用戶創建布爾邏輯語句(未啓動),存儲這些表達式,訪問它們(expression_menu),構建它們(setup_table),然後評估它們(真相),然後最終測試它們(在另一個模塊中)。如何組織代碼/何時使用類?
鑑於這一切,這是一個相當大的項目對我的技能。我被困在如何組織一切。我覺得我可能想要使用類,因爲它可能會更容易跟蹤屬性...
然而,立即我的問題是如何轉移布爾邏輯語句,顯然在第29行我'會得到一個語法錯誤,因爲X是未定義(代碼片段不僅使通過15
意義上線11我怎麼能在這裏舉辦我的代碼以更好地滿足我的目標
def setup_table(variables=2):
return (list(itertools.product(range(2), repeat = variables)))
def truth(variables=None,expression=None):
truth_table = []
for x in setup_table(variables):
if expression:
x.append(1)
else:
x.append(0)
truth_table.append(x)
return truth_table
def expression_menu():
expression = input('''
choose your expression:
1. if ((p and q) or (p or q)) and not(r or not q):
2. if (p or r) or (q and s):
3. if (p or r) and (q or (p and s))
Expression: ''')
table = None
if int(expression) == 1:
table = truth(variables = 3, expression =((x[0] and x[1]) or (x[0] or x[1])) and not (x[
print(table)
if __name__ == "__main__":
import itertools
expression_menu()
在我非常愚見,沒有更好的辦法來搪塞一個項目不是需要擔憂的組織和結構,你有什麼工作了。寫一些測試,讓他們通過,儘可能使代碼儘可能乾淨和清晰,不要擔心結構的優雅。當你看到明顯的模式時,[重構](http://en.wikipedia.org/wiki/Code_refactoring)就像地獄一樣。 – ckhan