On 12 Giu, 08:49, Prasoon <prasoonthegr...@gmail.com> wrote: > On Jun 12, 11:28 am, Chris Rebert <c...@rebertia.com> wrote: > > > > > > > On Thu, Jun 11, 2009 at 11:17 PM, Prasoon<prasoonthegr...@gmail.com> wrote: > > > I am new to python.... > > > I have written the following program in python.It is the solution of > > > problem ETF in SPOJ..... > > > > #Euler Totient Function > > > > from math import sqrt > > > def etf(n): > > > i,res =2,n > > > while(i*i<=n): > > > if(n%i==0): > > > res-=res/i > > > while(n%i==0): > > > n/=i > > > i+=1 > > > if(n>1): > > > res-=res/n > > > return res > > > > def main(): > > > t=input() > > > while(t): > > > x=input() > > > print str(etf(x)) > > > t-=1 > > > > if __name__ == "__main__": > > > 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 > > > an error > > > > _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. > > > Cheers, > > Chris > > --http://blog.rebertia.com > > I am using Python 2.6 > I have modified that code > def main(): > t=int(raw_input()) > while(t): > 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 > understand something......!!!!! > > - Mostra testo citato -
You could do: while True: x = raw_input("Enter x=>") if x != "" : break # if you just press enter, raw_input returns an empty string 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): while True: x_str = raw_input("Enter x=>") if x_str != "" : # to prevent having the error message on empty imput try: 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 Ciao ----- FB -- http://mail.python.org/mailman/listinfo/python-list