Need help with programming in python for class (beginner level)

Discussion in 'Python' started by farhanken, Nov 30, 2013.

  1. farhanken

    farhanken Guest

    It's for a school assignment. Basically, I need to roll 5 dies with 6 sideseach. So basically, 6 random numbers. That part is easy. Then I need to add it up. Ok, done that. However, I also need to say something along the lines of "your total number was X". That's what I'm having trouble with. I added the dice rolls together and put them into a variable I called "number" but it seems to glitch out that variable is in any command other than "printnumber". Like, if I try to write:

    print "<p>your total number was:" number "</p>"

    It just doesn't work.

    Here is my code so far:

    import cgi

    form = cgi.FieldStorage()
    name = form.getvalue("name")
    value = form.getvalue("value")

    print """Content-type: text/html
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    <title>A CGI Script</title>
    import random

    die1 = random.randint(1,6)
    die2 = random.randint(1,6)
    die3 = random.randint(1,6)
    die4 = random.randint(1,6)
    die5 = random.randint(1,6)
    print die1, die2, die3, die4, die5
    number = die1 + die2 + die3 + die4 + die5
    print "<p>The total rolled was: "number" </p>"

    print "<p>Thanks for playing, " + name + ".</p>"
    print "<p>You bet the total would be at least " + value + ".</p>"
    print "</body></html>"
    farhanken, Nov 30, 2013
    1. Advertisements

  2. On Fri, 29 Nov 2013 16:31:21 -0800 (PST)
    The above line is wrong. You did it right below:
    Do this:

    print "<p>The total rolled was: " + number + " </p>"

    Johannes Findeisen, Nov 30, 2013
    1. Advertisements

  3. Sorry, that was wrong! You need to convert to a string when

    print "<p>The total rolled was: " + str(number) + " </p>"
    Johannes Findeisen, Nov 30, 2013
  4. farhanken

    Tim Chase Guest

    Thanks for the honesty--you'll get far more helpful & useful replies
    because of that. :)
    You're so close. Python doesn't let you directly combine strings and
    numbers like that, especially without any operator. However it does
    offer several ways to combine strings:

    print "convert to string and use " + str(number) + " a '+' operator"
    print "use %s classic C-style formatting" % number
    print "use new {} formatting style".format(number)

    Tim Chase, Nov 30, 2013
  5. Wrong again, or at least overengineered.

    print "<p>The total rolled was:", number, </p>"

    You don't even need the spaces as print kindly does it for you :)
    Mark Lawrence, Nov 30, 2013
  6. farhanken

    Tim Chase Guest

    but you could at least include the missing quotation mark ;-)

    Tim Chase, Nov 30, 2013
  7. Same to me... I should get more sleep before answering.

    Anyway, Thank you for the explanation of this.

    Sleep well... ;)

    Johannes Findeisen, Nov 30, 2013
  8. My two "favorites":

    print '<p>The total rolled was: %s </p>' % number
    [py 2.7+] print('<p>The total rolled was: {} </p>'.format(number))


    -- Speedbird
    Julio Schwarzbeck, Dec 2, 2013
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.