import
Verfasst: Montag 22. August 2005, 14:55
Hallo Forum,
folgendes Problem:
ich habe eine Funktion welche überprüft ob ein String nur Hexadezimalzahlen enthält (ohne 0x Suffix) zusätzlich muss man der Funktion noch die erwartete Anzahl der Bytes übergeben damit Sie überprüfen kann ob auch die empfangene Byteanzahl stimmt.
def lookinchar(y):
try: return (int(y,16) in range(0,256))
except ValueError: return None
def check(wert,anz_bytes):
list=[]
counter=0
z=""
for y in wert:
if(y!=" "): #leerzeichen werden ausgefiltert
z+=y
counter+=1
if(counter==2):
list.append(z)
z=""
counter=0
anz_bytes-=1
if(anz_bytes!=0 or z!=""):
counter=0
else:
counter=1
for y in list:
if(lookinchar(y)):
pass
else:
counter=0
print counter
print check("Eg",1)
das funktioniert soweit, auf Grund der Übersichtlichkeit möchte ich aber die Funktion lookinchar in ein anderes File schreiben, dann mache ich zusätzlich ein
#import functions
und die Zeile: if(lookinchar(y)): wird ersetzt durch
functions.lookinchar(y)):
jetzt bekomme ich aber folgendes von Python zurück:
Traceback (most recent call last):
File "C:\Python24\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 310, in RunScript
exec codeObject in __main__.__dict__
File "C:\Python24\Scripts\Script1.py", line 27, in ?
print check("Eg",1)
File "C:\Python24\Scripts\Script1.py", line 22, in check
if(script2.lookinchar(y)):
File "C:\Python24\Scripts\script2.py", line 5, in lookinchar
except ValueError: return None
ValueError: invalid literal for int(): Eg
warum? den Error sollte ich doch mit dem try abgefangen haben und warum funktioniert es wenn man es in einer Datei schreibt aber nicht wenn man die Funktion aus einer anderen Datei aufruft??
folgendes Problem:
ich habe eine Funktion welche überprüft ob ein String nur Hexadezimalzahlen enthält (ohne 0x Suffix) zusätzlich muss man der Funktion noch die erwartete Anzahl der Bytes übergeben damit Sie überprüfen kann ob auch die empfangene Byteanzahl stimmt.
def lookinchar(y):
try: return (int(y,16) in range(0,256))
except ValueError: return None
def check(wert,anz_bytes):
list=[]
counter=0
z=""
for y in wert:
if(y!=" "): #leerzeichen werden ausgefiltert
z+=y
counter+=1
if(counter==2):
list.append(z)
z=""
counter=0
anz_bytes-=1
if(anz_bytes!=0 or z!=""):
counter=0
else:
counter=1
for y in list:
if(lookinchar(y)):
pass
else:
counter=0
print counter
print check("Eg",1)
das funktioniert soweit, auf Grund der Übersichtlichkeit möchte ich aber die Funktion lookinchar in ein anderes File schreiben, dann mache ich zusätzlich ein
#import functions
und die Zeile: if(lookinchar(y)): wird ersetzt durch
functions.lookinchar(y)):
jetzt bekomme ich aber folgendes von Python zurück:
Traceback (most recent call last):
File "C:\Python24\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 310, in RunScript
exec codeObject in __main__.__dict__
File "C:\Python24\Scripts\Script1.py", line 27, in ?
print check("Eg",1)
File "C:\Python24\Scripts\Script1.py", line 22, in check
if(script2.lookinchar(y)):
File "C:\Python24\Scripts\script2.py", line 5, in lookinchar
except ValueError: return None
ValueError: invalid literal for int(): Eg
warum? den Error sollte ich doch mit dem try abgefangen haben und warum funktioniert es wenn man es in einer Datei schreibt aber nicht wenn man die Funktion aus einer anderen Datei aufruft??