Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-检查字符串是否为空的习惯用法,打印默认值_Python_Django_Idioms - Fatal编程技术网

Python-检查字符串是否为空的习惯用法,打印默认值

Python-检查字符串是否为空的习惯用法,打印默认值,python,django,idioms,Python,Django,Idioms,我只是想知道,是否有一种Python习惯用法来检查字符串是否为空,然后打印默认值(如果为空) (上下文是Django,用于UserProfile的\uuuuunicode\uuuuuuuuu(self)函数-基本上,我想打印名字和姓氏(如果存在),然后打印用户名(如果两者都不存在) 干杯, 维克多类似于: name = data.Name or "Default Name" 如果firstname和last name具有0长度的空白字符串,则该方法将起作用。好的,我假设您指的是\uuuuuuu

我只是想知道,是否有一种Python习惯用法来检查字符串是否为空,然后打印默认值(如果为空)

(上下文是Django,用于UserProfile的
\uuuuunicode\uuuuuuuuu(self)
函数-基本上,我想打印名字和姓氏(如果存在),然后打印用户名(如果两者都不存在)

干杯, 维克多

类似于:

name = data.Name or "Default Name"

如果firstname和last name具有0长度的空白字符串,则该方法将起作用。

好的,我假设您指的是
\uuuuuuuuunicode\uuuuuu()
方法。尝试类似的方法(未经测试,但非常接近正确):


我刚刚意识到您要求的是Python习语,而不是Django代码。哦,好吧。

我的模式将有
None
作为未设置的名字或姓氏,因此弗雷德里科的答案不起作用。因此:

displayname = firstname+' '+lastname if firstname and lastname else username
print ("%s %s" % (firstname, lastname)
       if not (firstname and lastname) 
       else username )

我认为在模板中使用以下内容可以更好地处理此问题:

name = data.Name or "Default Name"
{{user.get_full_name}默认值:user.username}

它使用Django包含的“默认”过滤器。如果您特别关注none值,但希望允许空白值(即“.”),则还有一个“default_if_none”过滤器。“默认”筛选器将在None值和“”值上触发

这里是Django文档的链接:

我讨厌用++连接字符串——这不够安全,特别是对于用户可编辑的字段,如名字和姓氏。
print ("%s %s" % (firstname, lastname)
       if not (firstname and lastname) 
       else username )