2013-09-23 49 views
-3

所以我知道WxPython和Binary(我花了所有夏天學習python)。我想知道是否可以使用輸入對話框的一些示例代碼,並將其轉換爲二進制數字或二進制數字。我不需要任何東西就可以刷新我的大腦,因爲我只是很長一段時間沒有使用python並希望進行復習。任何事情都會很棒。Binary和WxPython

+0

你知道如何使用輸入對話框?你知道如何將字符串轉換爲整數嗎?你知道如何將數字格式化爲二進制嗎?你堅持哪部分? – Ryan

+0

是的,它只是自從我使用它三個月後,不記得那就是爲什麼我要求進行復習 –

回答

3
import wx 
a = wx.App(redirect=False) 
my_str = wx.GetTextFromUser("Enter A Number!") 
base = {'x':16,'b':2,'o':8}.get(my_str[1].lower(),10) 
int_val = int(my_str,base) 
hex_str = hex(int_val) 
bin_str = bin(int_val) 

msg = """ 
User Entered:%s 
Int:%s 
Hex:%s 
Bin:%s"""%(my_str,int_val,hex_str,bin_str) 
wx.MessageBox(msg) 

類似的東西

+0

而不是明確檢查'0x'前綴,爲什麼不只是使用'0'值的基地,這將自動處理(還要照顧'0X',和'0o'和'0b'前綴以及我可能已經忘記的其他事物)? – abarnert

+0

表示名稱錯誤 –

+2

另外,即使您確實使用了明確的基礎,您也不需要'[2:]'; 'int('0x1234',16)'總是會給你和int('1234',16)'相同​​的東西。 – abarnert