I have a dictionary with numerical values assigned to elements of the periodic Table. I’d like to have a function where I can have one of the parameters as one of the elements so that a user can do calculation just with the inputting parameters.
This is what I had so far
ele={"H":3, "He":7, "O":9}
def func(x,y,z,d)
i=ele["x"]*y + ele["z"]*d
return i
func("H", 2, "O", 3)
print(i)
For i
I’d want to see 33 but it doesn’t even get that far.
I keep getting a KeyError
for x
.
Advertisement
Answer
Karim!
When you place any text between quotes it is considered a string, not a variable. Because of that, your code tells python to look for the key “x” in the elements dictionary (in the variable ele). Since there is no x key on it, python raises a KeyError exception.
All you have to do is get rid of the quotes.
JavaScript18 1ele={"H":3, "He":7, "O":9}
2
3def func(x,y,z,d)
4 i=ele[x]*y + ele[z]*d
5 return i
6
7print(func("H", 2, "O", 3))
8
Please note that you can’t print the content of the variable “i” from outside function “func” since it is a local variable. Printing function “func” directly will do what you intended to do, as long as that function returns “i”.