Python 内联计算输入函数,以便将输入或占位符追加到列表中

Python 内联计算输入函数,以便将输入或占位符追加到列表中,python,Python,我对Python内联函数很感兴趣,不知道这是否可能 我正在使用click模块,我正在使用它的提示功能,我将把输入的值添加到一个列表中。但是,如果提示中未输入任何内容,我希望添加“**空**”。现在,Click有一个默认值,但我不会将该值放在那里,因为这样提示符将显示“Name[**empty**]”,而不是“Name[]” 所以我想做的就是这样。如果提示返回“”(空),则应附加“**空**”。我觉得我差不多有了它。但它只是结束了代码的运行,但在列表中追加了一个空的“”项。不是带“**空**”的我

我对Python内联函数很感兴趣,不知道这是否可能

我正在使用click模块,我正在使用它的提示功能,我将把输入的值添加到一个列表中。但是,如果提示中未输入任何内容,我希望添加“**空**”。现在,Click有一个默认值,但我不会将该值放在那里,因为这样提示符将显示“Name[**empty**]”,而不是“Name[]”

所以我想做的就是这样。如果提示返回“”(空),则应附加“**空**”。我觉得我差不多有了它。但它只是结束了代码的运行,但在列表中追加了一个空的“”项。不是带“**空**”的我的文本

代码如下所示:

item = []
    item.append(click.prompt("Name", default = '') if not '' else '** empty **')
我查看它的方式click.prompt()是一个返回值的函数。默认值=“”应该告诉它,如果未输入任何内容,则返回“”。因此,我想要实现的是,如果click.prompt()返回“”,那么它应该在列表中附加“**empty**”。它就是不起作用。如前所述,它附加了“”。

这将起作用:

item.append(click.prompt("Name", default='') or '** empty **')
你的表情是

click.prompt("Name", default = '') if not '' else '** empty **'
这与:

if not '':
    item.append(click.prompt("Name", default=''))
else:
    item.append('** empty **')

但是
not'
总是正确的,因为
'
总是错误的。因此,您总是附加用户输入的字符串,包括空字符串。

@Ned的解决方案是最好的:

item.append(click.prompt("Name", default='') or '** empty **')
或者做一些类似于你所做的事情:

c=click.prompt("Name", default = '')
item.append(c if c else '** empty **')
或者当然可以(但是运行两次
click.prompt(“Name”,default='')
,最好只运行一次):


谢谢,它确实有效。只是出于好奇,所以我学了这个!如果,我想知道提示是否返回了一个像0这样的值,并且该值的计算结果应该是空的呢?我猜应该是:item.append(单击.prompt(“Name”,default=''),如果不是0,则为'**empty**'),实际上这让我很困惑。(你的回答对我来说很有用)现在我只是想玩玩它。比如,在不调用函数两次的情况下,如何查找输入“No”并使其“**为空**”。然后我想添加item.append(单击.prompt(“Name”,默认值=”),如果!='No'else'**empty**')。。。但是,它忽略了if和!=之间的click.prompt值。但是我认为我不能将click.prompt倒进一个内联变量中,可以吗?与item.append类似(x=click.prompt(“Name”,默认值为“”),如果x!='No'else'**为空**')。。我知道它失败了,也失败了。酷,我想你刚刚回答了我对Neds解决方案的评论。@InspectorBootsector很高兴我帮了忙,@InspectorBootsector可以投票给我和Ned,当你获得15个声誉时,我会这么做。谢谢
item.append(click.prompt("Name", default = '') if click.prompt("Name", default = '') else '** empty **')