[Tutor] Issue with string method: str(variable ** n)

Zachary Ware zachary.ware+pytut at gmail.com
Thu May 16 21:18:24 CEST 2013


On Thu, May 16, 2013 at 1:58 PM, Rafael Knuth <rafael.knuth at gmail.com> wrote:
> Hej,

Hi Rafael,

> I wrote a tiny little program which I was hoping would take a number as
> input, square and print it:
>
> square = input ("Enter a number. ")
> print (str(square) + " squared is " + str(square ** 2))
>
> It seems I can't work with variables within the str() string method, and I
> was wondering if anyone can help?
>
> PS. I am using Python 3.3.0

In the future, it's always very helpful to post any tracebacks you
get, everything from "Traceback (most recent call last):" to the last
thing printed.

In this case, it seems that your problem is that in Python3, input()
returns the input as a string.  Python2's input() function would
actually evaluate the input, which was incredibly insecure.

You can fix your program by calling int() on square at the end of your
print call.  If I were writing this myself, I would do this, though:

number = int(input("Enter a number. "))
print("{} squared is {}".format(number, number**2))

You might find the tutorial page on Input and Output[1] instructive,
particularly about the format method I used above.

Hope this helps,

Zach

[1] http://docs.python.org/3/tutorial/inputoutput.html

>
> Thank you in advance!
>
> Rafael
>
>
>
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>


More information about the Tutor mailing list