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

Reply via email to