python0赋值器返回none,不管值是多少
我在python中遇到了一个问题(关于VS代码的python 3.9)。我试图通过以下条件更改字典中的值:python0赋值器返回none,不管值是多少,python,python-3.x,function,return-value,Python,Python 3.x,Function,Return Value,我在python中遇到了一个问题(关于VS代码的python 3.9)。我试图通过以下条件更改字典中的值: def getset(age): age['age']+=0 if age['age']>=0 else age['age'] == 0 mammad = {'name': 'mammad', 'age': -3} mammad = getset(mammad) print(mammad) 正如您在age['age']+=0中看到的,如果age['age']>=0,则age
def getset(age):
age['age']+=0 if age['age']>=0 else age['age'] == 0
mammad = {'name': 'mammad', 'age': -3}
mammad = getset(mammad)
print(mammad)
正如您在
age['age']+=0中看到的,如果age['age']>=0,则age['age']==0
age键的值必须为0,如果它小于0。但无论如何,它会将其更改为“无”。有什么问题吗?您需要在对dict
进行更改后返回dict
(在函数调用中赋值无
,当它不返回任何内容时),或者只调用函数而不将其赋值给变量,因为它将修改dict
。您可以按如下方式更改词典:
def getset(age):
age['age'] = 0 if age['age'] < 0 else age['age']
mammad = {'name': 'mammad', 'age': -3}
# no need to 'assign' to 'mammad' again, you changed it already!
getset(mammad)
>>> print(mammad)
{'name': 'mammad', 'age': 0}
你应该返回年龄。如果不返回任何内容,则将为“无”。您的函数不返回任何内容,它会在适当的位置修改dict。如果age['age']>=0,则0究竟是什么?它似乎总是计算为0
或False
>>> def f():
... pass
...
>>> print(f())
None