# [Tutor] CGI Calculator

Darren Williams D3IBZ at hotmail.com
Mon Jul 16 21:48:16 CEST 2007

```That's just printing Tokens: 1 Tokens: 2 ... Tokens: 6000 etc...

Can you recommend any tutorials for me?

----- Original Message -----
From: "Eric Brunson" <brunson at brunson.com>
To: "Darren Williams" <D3IBZ at hotmail.com>
Cc: <tutor at python.org>
Sent: Monday, July 16, 2007 2:48 PM
Subject: Re: [Tutor] CGI Calculator

> Darren Williams wrote:
>> Now another problem - the script is just printing the word 'Tokens'
>> over and over again, it's supposed to work like this (JavaScript
>> version made by me) - http://nazkyn.brinkster.net/1.8.html
>>
>> Thanks in advance for any help :)
>
> It's doing exactly what you've told it to do:
>
>   while usedPockets > totalJunkies - labSpace * 17:
>       Tokens = Tokens + 1
>       usedPockets = (usedPockets - totalJunkies + labSpace) * 17
>       totalJunkies = totalJunkies + 1
>       print "Tokens"
>
> The print statement is inside the while loop and you've quoted the work
> "Tokens" so it's printing the string rather than the variable.
>
> How about grabbing a short tutorial on Python and reading through it to
> better understand the differences between Python and Javascript.  If
> you're an experienced JS programmer it shouldn't take very long.
>
> This is probably closer is what I infer you're looking for:
>
>   while usedPockets > totalJunkies - labSpace * 17:
>       Tokens = Tokens + 1
>       usedPockets = (usedPockets - totalJunkies + labSpace) * 17
>       totalJunkies = totalJunkies + 1
>   print "Tokens: %s" % Tokens
>
> e.
>
>>
>> ----- Original Message ----- From: "Eric Brunson" <brunson at brunson.com>
>> To: "Darren Williams" <D3IBZ at hotmail.com>
>> Cc: <tutor at python.org>
>> Sent: Monday, July 16, 2007 2:01 PM
>> Subject: Re: [Tutor] CGI Calculator
>>
>>
>>> Darren Williams wrote:
>>>> Ok, now i've modified my script but am getting another error, i've
>>>> commented a few useless (hopefully) lines out -
>>>>
>>>> #!/usr/bin/env python
>>>>
>>>> import cgitb; cgitb.enable()
>>>> import cgi
>>>>
>>>>
>>> [snip]
>>>>         17     while usedPockets > totalJunkies - labSpace * 17:
>>>>
>>>>         18         Tokens = Tokens + 1
>>>>
>>>>         19         usedPockets = (usedPockets - totalJunkies +
>>>> labSpace) * 17
>>>>
>>>>      usedPockets = '192000', totalJunkies = '200', labSpace = '0'
>>>>
>>>> TypeError: unsupported operand type(s) for -: 'str' and 'str'
>>>>      args = ("unsupported operand type(s) for -: 'str' and 'str'",)
>>>>
>>>
>>> What does "dog" - "cat" mean?  Similarly, what does "100" - "12"
>>> mean? It's not the same in Python as 100 - 12, because those are
>>> numbers, "100" and "12" are strings which happen to represent numbers.
>>>
>>> You need to coerce those strings into integers, maybe like this:
>>>
>>> usedPockets = int(form["usedPockets"].value)
>>>
>>> When you do that, you'll probably need to catch any exception that
>>> could occur if the string can't be converted.
>>>
>>>>
>>>>
>>>> It's confused me - it says I can't subtract a string from a string
>>>> but then gives the value's of the variables (that I randomly entered
>>>> into the form) at the bottom - usedPockets = '192000', totalJunkies
>>>> = '200', labSpace = '0'
>>>>
>>>
>>>
>>
>
>
```