我目前停留在问题NoneType和使用功能因而isalpha()在Python。我想要做的是词法分析,我想将整个代码分成四类。这是我的代码的Python:在因而isalpha NoneType错误()函数
import sys
import keyword #keyword.iskeyword()
**strong text**def check_chars(tmp,x):
if (tmp == "" or tmp.isalpha()) and (x =="" or x.isalpha()):
if keyword.iskeyword(tmp):
print("Key: "+ tmp)
return ""
return tmp+x
if tmp.isalpha() and not x.isalpha():
print("Var: "+tmp)
return x
separators = ['(',')','[',']','{','}',',',':','.',';','@','=','->','+=','-=','*=','/=','//=','%=','@=','&=','|=','^=','>>=','<<=','**=']
operators = ['+','-','*','**','/','//','%','<<','>>','&','|','^','~','<','>','<=','>=','==','!=']
f = open(sys.argv[1],'r')
program = f.read()
tmp = ""
for x in program:
tmp = check_chars(tmp,x)
if tmp in separators:
print("Sep: "+ tmp)
tmp = ""
if tmp in operators:
print("Ope: "+ tmp)
tmp = ""
if x is " ":
tmp = ""
当我在其是这样的示例程序到达第一行的端部:
def funkce(a,b):
c=''
a**=b
if a<b:
print('ahoj\'ky',a)
else:
print(0xff,0b11101,0o777,.90e-10,123E+5,c)
print('''To je dlouhy
retezec pres mnoho
radku''')
funkce(-256+356,.85**.33)
时发生的错误:
Traceback (most recent call last):
File "HW09.py", line 24, in <module>
tmp = check_chars(tmp,x)
File "HW09.py", line 5, in check_chars
if (tmp == "" or tmp.isalpha()) and (x =="" or x.isalpha()):
AttributeError: 'NoneType' object has no attribute 'isalpha'
我不会如果错误在节目的开始时升高,会感到惊讶。但是如何在线的末端上升呢?是否有可能错误与行尾字符“\ n”有关联。谢谢你的建议:)
谢谢您的帮助,保罗:) –