Completed the about_scoring_project koan - #25
Conversation
AlejoAsd
left a comment
There was a problem hiding this comment.
Lots of comments! I went deep into some Python-specific concepts. Please address my code comments to see if my explanations made sense to you.
| repeated_nums = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] | ||
| for number in dice: | ||
| repeated_nums[number]=repeated_nums[number] + 1 |
There was a problem hiding this comment.
Dice have 6 possible values, but the repeated_nums variable in your solution has 10 total values. Was this done because you were getting list index out of range errors when the array had only 6 values, and increasing the size fixed it? If that is the case, then let me explain why.
Sequences (list, tuple, set, string, etc.) in Python and most programming languages are zero-based. This means that the elements are numbered starting at 0. The first element has index 0, the second element has index 1, and so on. When you create repeated_nums with 6 elements, you get the following:
# Index 0 1 2 3 4 5# Die Value 1 2 3 4 5 6 # repeated_nums [0, 0, 0, 0, 0, 0]The out of index errors were happening because you were iterating over the values of the dice,
fornumberindice:which set number to some value between 1 and 6, but were using this value as an index.
repeated_nums[number] [...]The problem here is that values go from 1 to 6, but indexes go from 0 to 5. This means that whenever the value of number is 6, you will get an list index out of range error, because the list does not have an index 6; its maximum index is 5.
A quick solution to this is to substract 1 from the value of the dice, so that both the indexes and dice values are in the same range.
repeated_nums= [0, 0, 0, 0, 0, 0]
fornumberindice:
repeated_nums[number-1] =repeated_nums[number] +1There was a problem hiding this comment.
I didn't even notice this error because for some reason I forgot that the dice goes only to 6 (I did not forget that it can't be 0 tho haha)
So what I was trying to do is to compare the values to the numbers from 1 to 9, when trying to make the list shorter I run with that error, so that fixes it!
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
stevendes
commented
Mar 16, 2020
All comments addressed! |
Completed and ready for review!