我正在尝试设置一个记录到2个变量和字典的函数,dictionar可以工作,但是这两个变量返回错误的东西
mydict{}
fname = 0
lname = 0
def enterdetails(fname, lname):
fname = input ("First Name: ");
fnamedict = fname
mydict['FirstName'] = fnamedict;
lname = input ("Last Name: ");
lnamedict = lname
mydict['LastName'] = lnamedict;
print(fname)
print(lname)
return mydict
return (fname, lname)
fname, lname = enterdetails(fname, lname)
print(fname, lname)
print(mydict)
然而,fname和lname的变量分别表示为FirstName和LastName。我该如何解决这个问题?
答案 0 :(得分:3)
您有两个return
语句,但只返回第一个语句。相反,将所有三个变量一起作为元组返回:
def enterdetails(fname, lname):
...
return mydict, fname, lname
mydict, fname, lname = enterdetails(fname, lname)
print(fname, lname)
print(mydict)
答案 1 :(得分:1)
字典有效,因为您将其设置为global variable
。
但是,该函数实际上正在返回"字典"首先,所以你的拆包都搞砸了。
删除return mydict
或使用return mydict, (fname, lname)
,这样您最终会得到:
mydict, (fname, lname) = enterdetails(fname, lname)
但正如我上面提到的,mydict
是一个全局变量,所以没有必要返回该值。
答案 2 :(得分:0)
您不能将return
置于return
之下
return mydict
return (fname, lname) #this won't return any thing
您可以采取的方法之一是:
....
return [mydict, fname, lname]
data = enterdetails(fname, lname)
mydict = data[0]
fname = data[1]
lname = data[2]