2016-02-01 4 views
0

[PROBLEM] Как использовать кодированный текст в инструкции if? Даже если vars (serialNumberValue + encodedValue) имеют один и тот же тип, следующий код счастливого потока не будет выполнен.Как использовать кодированный текст в инструкции if?

[CURRENT OUTPUT] Код счастливого потока не будет выполнен.

[ЖЕЛАТЕЛЬНЫЙ ВЫХОД] код счастливого потока должен быть выполнен.

[КОД]

# Initiliaze secure window 
import wx 
secureApp = wx.App(False) 
topSecure = wx.Frame(None, title=" test - Enter serial number", style=wx.MINIMIZE_BOX | wx.CAPTION | wx.CLOSE_BOX) 
topSecure.Center() 
topSecure.SetBackgroundColour('LIGHTGREY') 
topSecure.SetSize(360,150) 





def validateSerialNumber(event): 
    print "test" 
    serialNumberValue = serialNumber.GetValue() 
    print "serialNumberValue is: ", serialNumberValue 
    import platform 
    print platform.node() 
    encodedValue = platform.node().encode("base64") 
    print "encodedValue type is: " , type (encodedValue), encodedValue 
    print "serialNumberValue type is: " , type (str(serialNumberValue)), serialNumberValue 
    if (str(serialNumberValue)) == encodedValue: 
     print "ok" 
     topSecure.Destroy() 
    else: 
     print "not ok" 
     import wx 
     dial = wx.MessageDialog(None, 'Serial number invalid.', 'test - serial number', wx.OK) 
     dial.ShowModal() 


sizer = wx.GridBagSizer() 
# Add serial number label 
serialLabel = wx.StaticText(topSecure, wx.ID_ANY, "Enter serial number:", wx.DefaultPosition, wx.DefaultSize, 0,) 
sizer.Add(serialLabel,(1,2),(1,2), flag=wx.TOP|wx.BOTTOM, border=1) 
# Add serial number textbox 
serialNumber = wx.TextCtrl(topSecure, -1, "", size=(175, -1)) 
sizer.Add(serialNumber,(2,2),(2,14),wx.EXPAND) 
# Add ok button  
okButton = wx.Button(topSecure, -1, "OK", (160,100), size=(45, -1)) 
sizer.Add(okButton,(5,12),(1,1),wx.EXPAND) 
topSecure.Bind(wx.EVT_BUTTON, validateSerialNumber, okButton) 
topSecure.SetSizer(sizer) 
topSecure.SetFocus() 
topSecure.Center() 
topSecure.Show(True)  # Show the frame. 
secureApp.MainLoop() 
+0

Вы получаете сообщение об ошибке : показать результаты своей программы –

+0

привет. я не получаю ошибки, но код идет только через ветку else, даже если str (serialNumberValue)) и закодированные Varue vars имеют: одно и то же значение, тот же тип (str), я буду копать еще ... – george

ответ

0

я, возможно, не поняли проблему здесь, но вы кодирующая platform.node(), а не ввод, не следует, если заявление следующего содержания:

if (str(serialNumberValue.encode("base64"))) == encodedValue: 
    print "ok" 
    topSecure.Destroy() 
Смежные вопросы