Invalid Login Error Pending DENT

Following this tutorial , I got the following error: y = 1; I am using Netbeans 6.5 for Python. thanks

y=1 ^ 

Syntax Error: line 8: 3 inconsistent input 'waiting DEDENT (temperature converter.py, line 8)

following python code, format it for me thanks.

 __author__="n" __date__ ="$Jan 9, 2011 3:03:39 AM$" def temp(): print "Welcome to the NetBeans Temperature Converter." y=1 n=0 z=input("Press 1 to convert Fahrenheit to Celsius, 2 to convert Celsius to Fahrenheit, or 3 to quit:") if z!=1 and z!=2 and z!=3: e=input("Invalid input, try again?(y or n)") if e==1: t='' temp() if e==0: t="Thank you for using the NetBeans Temperature Converter." print "Celsius Fahrenheit" # This is the table header. for celsius in range(0,101,10): # Range of temperatures from 0-101 in increments of 10 fahrenheit = (9.0/5.0) * celsius +32 # The conversion print celsius, " ", fahrenheit # a table row temp() 
+6
python
source share
5 answers

In the print statement, you used 2 spaces to indent the line, and in the next, 3 spaces.

Whitespace is significant for Python. In particular, if you have a certain level of indentation on one line, you cannot just use the other for the next line.

+12
source share

For interest - an extended version of the example. I have included a certain amount of magic that can lead you to a deeper understanding of Python!

And - as I am always happy to continue to study - does anyone else have any suggestions on how this should be expanded and improved in the correct pythonic manner?

 class MenuItem(object): def __init__(self, fn, descr=None, shortcuts=None): """ @param fn: callable, callback for the menu item. Menu quits if fn returns False @param descr: str, one-line description of the function @param shortcuts: list of str, alternative identifiers for the menu item """ if hasattr(fn, '__call__'): self.fn = fn else: raise TypeError('fn must be callable') if descr is not None: self.descr = descr elif hasattr(fn, '__doc__'): self.descr = fn.__doc__ else: self.descr = '<no description>' if shortcuts is None: shortcuts = [] self.shortcuts = set(str(s).lower() for s in shortcuts) def __str__(self): return self.descr def hasShortcut(self,s): "Option has a matching shortcut string?" return str(s).lower() in self.shortcuts def __call__(self, *args, **kwargs): return self.fn(*args, **kwargs) class Menu(object): def __init__(self): self._opts = [] def add(self, od, *args, **kwargs): """ Add menu item can be called as either .add(MenuItem) .add(args, to, pass, to, MenuItem.__init__) """ if isinstance(od, MenuItem): self._opts.append(od) else: self._opts.append(MenuItem(od, *args, **kwargs)) def __str__(self, fmt="{0:>4}: {1}", jn='\n'): res = [] for n,d in enumerate(self._opts): res.append(fmt.format(n+1, d)) return jn.join(res) def match(self, s): try: num = int(s) if 1 <= num <= len(self._opts): return self._opts[num-1] except ValueError: pass for opt in self._opts: if opt.hasShortcut(s): return opt return None def __call__(self, s=None): if s is None: s = getStr(self) return self.match(s) def fahr_cels(f): """ @param f: float, temperature in degrees Fahrenheit Return temperature in degrees Celsius """ return (f-32.0)/1.8 def cels_fahr(c): """ @param c: float, temperature in degrees Celsius Return temperature in degrees Fahrenheit """ return (c*1.8)+32.0 def getFloat(msg=''): return float(raw_input(msg)) def getStr(msg=''): print(msg) return raw_input().strip() def doFahrCels(): "Convert Fahrenheit to Celsius" f = getFloat('Please enter degrees Fahrenheit: ') print('That is {0:0.1f} degrees Celsius'.format(fahr_cels(f))) return True def doCelsFahr(): "Convert Celsius to Fahrenheit" c = getFloat('Please enter degrees Celsius: ') print('That is {0:0.1f} degrees Fahrenheit'.format(cels_fahr(c))) return True def doQuit(): "Quit" return False def makeMenu(): menu = Menu() menu.add(doFahrCels, None, ['f']) menu.add(doCelsFahr, None, ['c']) menu.add(doQuit, None, ['q','e','x','quit','exit','bye','done']) return menu def main(): print("Welcome to the NetBeans Temperature Converter.") menu = makeMenu() while True: opt = menu() if opt is None: # invalid option selected print('I am not as think as you confused I am!') else: if opt() == False: break print("Thank you for using the NetBeans Temperature Converter.") if __name__=="__main__": main() 
+1
source share

Do not forget that the problem disappeared with the full code. sorry

 def temp(): print "Welcome to the NetBeans Temperature Converter." y=1 n=0 z=input("Press 1 to convert Fahrenheit to Celsius, 2 to convert Celsius to Fahrenheit, or 3 to quit:") if z!=1 and z!=2 and z!=3: e=input("Invalid input, try again?(y or n)") if e==1: t='' temp() if e==0: t="Thank you for using the NetBeans Temperature Converter." if z==1: # The user wishes to convert a temperature from Fahrenheit to Celsius x=input("Input temperature in Fahrenheit:") t=(x-32)/1.8 print "The temperature in Celsius is:" if z==2: # The user wishes to convert a temperature from Celsius to Fahrenheit x=input("Input temperature in Celsius:") t=(x*1.8)+32 print "The temperature in Fahrenheit is:" if z==3: # The user wishes to quit the application t="Thank you for using the NetBeans Temperature Converter." print t if z==1 or z==2: a=input("Do you want to perform another conversion?(y or n)") if a==0: t="Thank you for using the NetBeans Temperature Converter." if a==1: t= '' temp() print t temp() 
0
source share

Use Preferences-> Pydev-> Editor and uncheck the boxes to replace the tabs with spaces. Tables can be 4 places, despite the widespread belief that it needs to be changed to 8 spaces. It removes all commit errors.

0
source share

Yes, that was for me. I played Notepad ++ with a .py file created in Eclipse, Eclipse used spaces, and I used tabs. It looked just like 4 spaces = 1 tab, so I just used spaces instead of tabs and everything was fine.

0
source share

All Articles