On 12 Giu, 08:49, Prasoon wrote:
On Jun 12, 11:28?am, Chris Rebert wrote:
On Thu, Jun 11, 2009 at 11:17 PM, Prasoonwrote:
I am new to python....
I have written the following program in python.It is the solution of
problem ETF in SPOJ.....
from math import sqrt
? i,res =2,n
? ? ?if(n%i==0):
? ? ? ? ? ?res-=res/i
? ? ?while(n%i==0):
? ? ? ? ? ?n/=i
? ? ?i+=1
? ? ? ?res-=res/n
? return res
? ?print str(etf(x))
if __name__ == "__main__":
The problem with my code is that whenever I press an extra "Enter"
button instead of getting the cursor moved to the next line.....I get
_SyntaxError- EOF while parsing and the program terminates.........._
How should ?the code be modified so that even after ?pressing an extra
"Enter" button the cursor get moved to the next line instead to
throwing an exception......
Use raw_input() instead of input() [at least until you switch to Python 3.x].
input() does an implicit eval() of the keyboard input, which is (in
part) causing your problem.
Note that you'll need to explicitly convert the string raw_input()
reads in using either int() or float() as appropriate.
Still, you can't just enter extra lines and expect the program to
automatically ignore them. You'll have to write the extra code
yourself to handle empty input from the user.
I am using Python 2.6
I have modified that code
? ? x=int(raw_input())
? ? print str(etf(x))
? ? t-=1
what should i do to handle new line and space......
We used to get spaces and newline in C using their ASCII values ...can
similar things be done here???
Please write the code snippet(by modifying my code) from which i can
- Mostra testo citato -
You could do:
x = raw_input("Enter x=>")
if x != "" : break # if you just press enter, raw_input returns an
Note that this still leaves out the case when you type something which
is not a number.
To cover this case, supposing that you need a float, you could do like
this (NOT TESTED):
x_str = raw_input("Enter x=>")
if x_str != "" : # to prevent having the error message on empty
x = float(x_str)
break # if it gets here the conversion in float was succesful
except ValueError :
print "The input '%s' cannot be converted in float" % x_str
This code exits from the loop only when you supply a string that
represents a floating number