我一直在尝试构建一个函数来解释命令行输入,然后使用提供的参数从脚本文件中运行适当的函数。此函数中包含一个用于关闭交互层的转义命令。仅当用户输入“退出”或“结束”时,才应激活此转义命令。但是,由于某种原因,无论输入什么都会触发。我难住了。你们有什么想法吗?verinfo ()x = Truewhile x is True: print ('Please seperate arguments with a comma.') inputstring = input('->') #format input string to a standard configuration #expected is command,arg1,arg2,arg3,arg4,arg5 procstring = inputstring.split (',') while len(procstring) < 6: procstring.append('') print (procstring) #escape clause print (procstring[0]) if procstring[0] is 'end' or 'exit': print ('Closing') x = False break elif procstring[0] is 'help' or 'Help': Help () else: print ('command invalid. List of commands can be accessed with "help"')
2 回答
MM们
TA贡献1886条经验 获得超2个赞
所以这里有两个不同的概念,一个是身份,另一个是平等。
因此,关键字is
不是测试相等性,而是测试身份。意思是……这两个对象是一样的吗?看看id()
。
我认为您可以查看很多试图解释 和 之间区别的==
页面is
。
https://dbader.org/blog/difference-between-is-and-equals-in-python
http://www.blog.pythonlibrary.org/2017/02/28/python-101-equality-vs-identity/
GCT1015
TA贡献1827条经验 获得超4个赞
您应该使用==
运算符进行此类比较,例如:
if procstring[0] == 'end' or procstring[0] == 'exit': print(...)
添加回答
举报
0/150
提交
取消