命令行交互的字符串比较失败

我一直在尝试构建一个函数来解释命令行输入,然后使用提供的参数从脚本文件中运行适当的函数。此函数中包含一个用于关闭交互层的转义命令。仅当用户输入“退出”或“结束”时,才应激活此转义命令。但是,由于某种原因,无论输入什么都会触发。我难住了。你们有什么想法吗?


verinfo ()

x = True

while 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"')


四季花海
浏览 81回答 2
2回答

MM们

所以这里有两个不同的概念,一个是身份,另一个是平等。因此,关键字is不是测试相等性,而是测试身份。意思是……这两个对象是一样的吗?看看id()。我认为您可以查看很多试图解释 和 之间区别的==页面is。https://www.geeksforgeeks.org/difference-operator-python/https://dbader.org/blog/difference-between-is-and-equals-in-pythonhttp://www.blog.pythonlibrary.org/2017/02/28/python-101-equality-vs-identity/Python中无的身份与平等

GCT1015

您应该使用==运算符进行此类比较,例如:if&nbsp;procstring[0]&nbsp;==&nbsp;'end'&nbsp;or&nbsp;procstring[0]&nbsp;==&nbsp;'exit': &nbsp;&nbsp;&nbsp;&nbsp;print(...)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python