def bdild(first,last,**user_info):
'''创建一个字典,其中包含我们知道的有关用户的一切信息'''
profile= {}
profile['姓:'] = first
profile['名'] = last#把名和姓加入字典
for key,value in user_info.items():
profile[key] = value
#遍历字典user_info中的键值对,并将每个键值对都加入到字典profile中
return profile
#将字典profile返回给函数调用行
#错误
user_profile = build_profile('周', '杰伦',
'地址'='海外',
'领域'='音乐')
#正确
user_profile = build_profile('周', '杰伦',
地址='海外',
领域='音乐')
使用错误的写法时,赋值 ‘字符串’=‘另一个字符串’
如下报错:
File ".code.tio", line 13
'地址'='海外',
^
SyntaxError: keyword can't be an expression
我的理解是:
说明 ‘字符串’=‘另一个字符串’,这种键值对的对应关系脱离字典不能独立存在。
在对一个字典操作时我们可以
dict = {}
dict['地址'] = '海外'#已经明确了对dict操作
所以python在这里规定了:函数输入键值对当脱离字典时,形式是:
build_profile('周', '杰伦',
地址='海外',
领域='音乐')
然后python通过内建空字典后将实参加入将其转换为
‘变量名’=‘字符串’的字典键值对格式来使用。
dict{'地址'='海外', '领域'='音乐'}
输入函数的键值对,先是 变量=‘字符串’ 的形式,
pyhon将会在内部转化为字典的键值对,但这个转换过程会在python内部进行,我们看不见过程罢了。
本质上前后都是键值对,都是‘字符串’=‘字符串’,仅仅是为了在逻辑上不要错误才重新规定了这种输入方式。
由此可见python的严谨!



