我正在寫一個使用Tkinter的相對簡單的程序,它是二進制,十進制和十六進制的轉換器。我沒有使用數學函數中構建的任何Python,因爲我認爲這是一種很好的方法,不僅可以使用類和對象,還可以使用Tkinter。Python中的列表成員檢查3
我有一個方法,通過檢查它是否包含任何數字2-9
,這將使其無效,檢查以確保二進制字符串是有效的。
要做到這一點,我使用嵌入for
循環
bits = '011101' #self.input_str.get()
bit_list = [i for i in bits]
ill_bits = ['2', '3', '4', '5', '6', '7', '8', '9']
for bit in bit_list:
if bit in ill_bits:
print('yes')
#self.output_disp.delete(0.0, END)
#self.output_disp.insert(0.0, "That bit string is invalid")
else:
print('no')
#self.from_binary(self.dec_bttn, self.hex_bttn)`
兩個print()
函數實際上不是計劃的一部分內的if
聲明,他們在那裏爲我保留測試不同的事情。註釋掉的部分是我想在Tkinter應用程序的測試區域運行的代碼,作爲有效性測試的結果。
這裏發生的事情是,如果在測試的最後位兩個列表中找到了
self.output_disp.delete(0.0, END)
self.output_disp.insert(0.0, "That bit string is invalid")
只運行。例如,一個位串:111019
將在文本區域中顯示That bit string is invalid
,但111911
不會。雖然當9迭代通過兩個位串會在控制檯打印yes
,僅在最後的點一個與9將運行代碼的兩行開始self.output_disp
....
我實際上並不確定你的意思,請你介意一點。一個else語句可以與for循環分開,一個人怎麼做? – Icsilk 2012-02-04 03:12:28
將它縮進與'for'塊相同的級別。在Python中,'if'不是唯一可以擁有'else'塊的語句。 – 2012-02-04 03:13:33
我試着將else塊(有和沒有其他塊)與'for'聯繫起來,它似乎沒有捕獲任何共享的成員資格。我想我沒有做到你想要完成你的評論。 – Icsilk 2012-02-04 03:37:18