On 01/12/2012 06:56 PM, Nick W wrote:
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

You top-posted. On lists like this one, it's proper to add your new message after the piece you're quoting.

On 1/12/12, Claude Matherne<cmat...@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

The problem with the quotes is just the way that Python works.
           print (names, "have been entered.")

You're printing a list as a whole, and when it does that, individual items are displayed using repr(), rather than str(). If you don't like that, write a loop, with a print statement per item, and format it any way you like.

          for name in names:
                  print(name, "+whatever")

--

DaveA

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to