[Tutor] Trying to access a random value in a list

Nick W pacificmorrowind at gmail.com
Fri Jan 13 00:56:32 CET 2012


first problem: easy fix just remember that len() returns the actual
number of items in the list but that list is indexed starting at 0 so
just replace your line of
        pick = len(names)
with:
       pick = len(names) - 1
and for problem #2:
just use string formating... like for example instead of:
        print (names[win_number], " is the winner!")
try something along the lines of:
       print("{} is a winner".format(names[win_number]))
HTH
Pacific Morrowind

On 1/12/12, Claude Matherne <cmathe7 at gmail.com> wrote:
> Hello all,
> I am a beginner to python and I am trying to make a simple program that
> takes in some names as input into a list and then randomly picks a vaule
> from that list as a winner.
>
> Here is the code:
>
> import random
>
> choice = None
>
> names = [ ]
>
> while choice != "0":
>     print(
>         """
>         0 - Exit
>         1 - Enter a name
>         2 - Pick a winner
>         """)
>     choice = input("Choice: ")
>     print()
>
>     if choice == "0":
>         print ("Goodbye.")
>
>     elif choice == "1":
>         name = input("Please enter a name: ")
>         names.append(name)
>         print (names, "have been entered.")
>
>     elif choice == "2":
>         pick = len(names)
>         win_number =random.randint(0,pick)
>         print (names[win_number], " is the winner!")
>
> input("/n/nPress enter to exit.")
>
>
> First problem, sometimes I get a error where the value is out of range.
> Problem becuase of the way I set up the random value.
> Second problem, but not a big one, is when I print the lists of names as
> they are entered, I get quotations around the name.
>
> I'm sur I am over thinking this, but any help would be great.
>
> Thanks
>


More information about the Tutor mailing list