可能重复:
`==`运算符何时不等于`is`运算符?(蟒蛇)
我使用的是Python 2.x.
我比较时编辑给了我一个"警告"下划线my_var == None,但是当我使用时没有警告my_var is None.
我在Python shell中做了一个测试,并确定两者都是有效的语法,但我的编辑器似乎说这my_var is None是首选.
是这种情况,如果是这样,为什么?
学习Python并且有点卡住了.
我正在尝试将变量设置为相等,int(stringToInt)或者如果字符串为空则设置为None.
我试着这样做variable = int(stringToInt) or None但是如果字符串为空则会出错而不是仅将其设置为None.
你知道这个吗?
在我所知道的其他一些语言中,null到字符串转换的直观结果应该是一个空字符串.为什么Python被设计为使'None'成为一种特殊的字符串?在检查函数的返回值时,这可能会导致额外的工作
result = foo() # foo will return None if failure
if result is not None and len(str(result)) > 0:
# ... deal with result
pass
Run Code Online (Sandbox Code Playgroud)
如果str(None)返回空字符串,则代码可能更短:
if len(str(result)) > 0:
# ... deal with result
pass
Run Code Online (Sandbox Code Playgroud)
看起来Python试图变得冗长,使日志文件更容易理解?
使用请求库后,我在response.json()中得到了dict
{u'xyz': {u'key1': None, u'key2': u'Value2'}}
Run Code Online (Sandbox Code Playgroud)
我想删除所有unicode字符并仅打印键值对而不使用unicode字符
我尝试过以下方法删除,但它显示格式错误的字符串
>>> import json, ast
>>> c = {u'xyz': {u'key1': None,u'key2': u'Value2'}}
>>> ast.literal_eval(json.dumps(c))
Run Code Online (Sandbox Code Playgroud)
获取'ValueError:格式错误的字符串'
关于如何做的任何建议?
我正在尝试制作一个模板字符串,该字符串将打印给定字典的值。但是,字典中可能不存在密钥。如果不存在,我希望它返回一个空字符串。
为了说明我的意思,假设我有一个命令:
test_dict = { 1: "a", 2: "b"}
Run Code Online (Sandbox Code Playgroud)
和模板字符串:
'{} {} {}'.format(test_dict.get(1), test_dict.get(2), test_dict.get(3))
Run Code Online (Sandbox Code Playgroud)
我想要以下输出:
'a b '
Run Code Online (Sandbox Code Playgroud)
但是我得到了:
'a b None'
Run Code Online (Sandbox Code Playgroud) 哪个更好?
if not var:
var = get_var()
(要么)var = var或get_var()
另外,我怎么知道两者中哪一个更好?
编辑:
史蒂夫的另一个选择,
var = var if var else get_var()Run Code Online (Sandbox Code Playgroud)