Vincent Balmori wrote:
I'm stuck on two problems from the Absolute Beginners book. The first is simple.
I am trying to print all the words in the list in random order without repeats,
but it always shows None for some reason.
#Program prints list of words in random order with no repeats
import random
#List of words
list = ["first", "second", "third", "fourth","fifth"]
#Randomize word order
order = random.shuffle(list)
shuffle() does not return a new list, it shuffles in place, and returns
None. So order will always be assigned the value None.
What you want is to make a copy of your word list, and shuffle that.
words = ["first", "second", "third", "fourth","fifth"]
shuffled = words[:] # make a copy using slice notation [:]
random.shuffle(shuffled)
The other question is: "Improve the program by adding a choice that lets the
user enter a name and get back a grandfather. You should still only use one list
of son-father pairs. Make sure to include several generations in list so a match
can be found." The only thing I have done is adding choice 5 with its basic elif
block and adding another name in each of the three sequences in the list, but I
am completely stuck otherwise.
#User can enter name of male and name of his father will show
#Allow user to add, replace, and delete son-father pairs.
#Also have the user enter a name to get back a grandfather
#Setting values
sondad = {"Vincent": "Ramon": "Lolo","Jesus": "God": "Unknown", "Simba":
"Mufasa": "Lion"}
That can't work, you will get a syntax error. Each pair of key:value
must be separated by a comma, not a colon, and you can't have key:key:value.
Since you can't do son:father:grandfather, you need another strategy.
Fortunately there is a simple one: father is the son of grandfather. So
your dict becomes:
sondad = {
"Vincent": "Ramon",
"Ramon": "Lolo",
"Hermes": "Zeus",
"Apollo": "Zeus",
"Zeus": "Cronus",
"Cronus": "Uranus",
"Jesus": "God the Demiurge, the false God",
"God the Demiurge, the false God":
"God the Monad, the One, The Absolute, Bythos, Aion teleos",
"Simba": "Mufasa",
"Mufasa": "Lion",
"Bart Simpson": "Homer Simpson",
"Homer Simpson": "Abe Simpson",
}
Try that and see how you go.
--
Steven
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor