Python有没有隐藏程序的方法

Python有没有隐藏程序的方法,python,Python,在本例中,输入被拆分 例如 输出: search youtube.com 但现在我也想管理,你只能输入1个字,它仍然有效 比如 youtube.com 这意味着我只需要输入hello,它也可以工作 那么输出应该是: elif program == 'hello': 但目前只有一个词不起作用,我如何才能得到它?在分配变量之前,只需检查输入的大小: do 您可以在info变量中添加星号: 程序,*info=input(“->”).split() 如果程序==“搜索”: 打印(信息[0]) e

在本例中,输入被拆分

例如

输出:

search youtube.com
但现在我也想管理,你只能输入1个字,它仍然有效

比如

youtube.com
这意味着我只需要输入hello,它也可以工作

那么输出应该是:

elif program == 'hello':

但目前只有一个词不起作用,我如何才能得到它?

在分配变量之前,只需检查输入的大小:

do

您可以在info变量中添加星号:

程序,*info=input(“->”).split()
如果程序==“搜索”:
打印(信息[0])
elif程序==“你好”:
打印(“做”)
其他:
打印(“错误”)
这将导致info成为拆分输入的第一个元素之后的所有内容的列表。如果输入
search youtube.com
,变量信息将包含
['youtube.com']
。如果输入
hello
,变量信息将不包含任何内容,即
[]

请注意,我还在第4行中添加了对info变量的列表访问,该变量在第4行中打印

更多关于如何解决这个问题和/或为什么这样做的信息可以找到,其中讨论了解包中的默认值

Edit:正如@Steve指出的,如果只输入
search
,这将成为问题,因为您将尝试访问空列表的第一个元素。要防止出现这种情况,可以在代码中添加额外的检查:

程序,*info=input(“->”).split()
如果程序==“搜索”:
如果没有信息:
打印(“错误,无需搜索”)
其他:
打印(信息[0])
elif程序==“你好”:
打印(“做”)
其他:
打印(“错误”)

当然不行,因为您假设
输入(“->”).split()
的长度总是>=2。我不理解标题。“隐藏程序(m)”是什么意思?选民:想解释一下吗?这个答案有什么问题,你将如何改进它?如果输入三个或更多的单词,这将毫无作用。我不知道什么是正确的行为。也许就是这样。我只是想指出,该案例没有明确处理。@Steve问题没有明确提及,但无论如何,我会为该案例添加一条错误消息。如果用户只输入“搜索”,该事件就会爆发。@Steve为什么不应该?从语义上讲,什么也不搜索是无效的。@Steve这是正确的,但我仍然觉得它解决了将一个值解压成两个变量的问题。我现在仍然要编辑我的答案来添加它。为什么要这样做呢?我的信念是,除非另有说明,否则一个程序应该正确处理任何可能的用户输入,而不会抛出一个异常,至少看起来像是程序员错过的一个案例。你是说那是你自己设计的吗?是的,它应该,不,它不是。谢谢你指出这一点。
do
data = input("->").split()
if len(data) == 2:
    program = data[0]
    info = data[1]
elif len(data) == 1:
    program = data[0]
else:
    print("invalid number of arguments")