0
Why the remainder is 3?
Here I used a dictionary x={1:2,2:3,3:4,4:6} And I printed as below >>>print(x.get(2,0)%x.get(5,4)) >>>3 Why it prints 3,as my dictionary as no 5 as Key ? https://code.sololearn.com/csYeHsPoWs22/?ref=app
5 Réponses
+ 10
Your expression is:
x={1:2,2:3,4:1,3:5}
print(x.get(2,0)%x.get(5,4))
-> x.get(2,0) -> 3
-> x.get(5,4) -> 4, as there is no key 5
-> 3 % 4 -> 3 // 4 -> 0 , and there is a remainder of 3 left.
you can check it by using divmod:
divmod(3,4)
(0, 3) division gives -> 0, remainder gives -> 3
+ 6
I have simplified the code by using more steps. When using the following link, you will get to the web site of pythontutor, and you can see the code. Then you can start and move in visual steps through the code. use the "next" button to execute the code step by step.
http://www.pythontutor.com/visualize.html#code=x%3D%7B1%3A2,2%3A3,3%3A4,4%3A6%7D%0Ares1%20%3D%20x.get%282,0%29%0Ares2%20%3D%20x.get%285,4%29%0Aprint%28res1%20%25%20res2%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false
+ 4
The second argument passed to the get() method is the default value that will be used when the first argument (key) doesn't exist.
Your print statement evaluates to:
print(3 % 4)
3 / 4 = 0 with a remainder of 3
+ 3
Samba, because you provide as second argument of the get method 4 as default value if there is no such key in your dictionary. You can find more info here:https://www.tutorialspoint.com/JUMP_LINK__&&__python__&&__JUMP_LINK/dictionary_get.htm
0
Is it append that not found key with value to dictionary..?