Can anyone tell me why 'except KeyboardInterrupt: is invalid?
Malcolm Smmith
Can anyone tell me why 'except KeyboardInterrupt: is invalid?
Malcolm Smmith
Are you 'try:'-ing? It works here.
try: print "press break"; while True: pass except KeyboardInterrupt: print "it broke!"
Jasen Typed your prog into Idle3 window and ran it in LXterm. window. It gave me invalid syntax with arrow pointing to the t of except.
Malcolm
I'll take a flying guess and assume that you're typing the text straight into the debugger and getting the indenting wrong. Don't do that unless you're testing commands longer than a line or two. (And if you must, it was probably just a case of not hitting backspace before the "except" to remove the indent.)
Start off with: file -> new file. Then cut-and-paste Jasen's example into the new window. Then save it. Then run-module. THEN look at the debugger window.
What a faff. Two ssh shells one with an editor to adjust the code, the other to run it in. B-)
How about you tell us if you are using python3 or python2 first?
I seem to have got Jasen's module working.As written I got some syntax errors but finished up with :-
#!/usr/bin/env python print ("Press break") while True: pass exceptKeyboardInterrupt; print("It broke");
This was typed in the 'edit' window of Idle3 and saved; then run using the command window of LXTerm. On running the shell window displayed Press break. the curser kept flashing until I did a Ctrl-C when the command window displayed "..... while True - Keyboard interupt" and control was restored. Prior attempts using Break key froze the system making a reboot neccesary. Looks untidy but did it work as expected.
Malcolm
Python 3.2
Yep. As for myself, after looking at various Python editors that come with Ubuntu, I settled on Spyder as having a reasonable compromise between a good selection of features and not being cluttered.
Nope. That's still not right. If it says "KeyboardInterrupt" then the exception still isn't activated correctly. It should print the message in the last line when you press ctrl-c. I see that you've got no space after the "except" which would explain that fault.
Note that you normally put "!/usr/bin/env python3" as the first line then, because most OSs still default to python 2.
I've tried updating myself to Python 3, but gave up after finding that even the IDEs that are supposed to work with Python 3 are troublesome, and some useful Python 3 libraries have yet to make their way into the Linux distros. I think I'll wait another year or two.
With a space after except I get a syntax error with an arrow pointing at the 't' of accept??
Malcolm
"except" not "accept". Ho hum. Also you appear to have missed out the "try". Also check the indenting which should be _exactly_ as shown in Jasen's example. The "try" and "except" should _not_ be indented but the other lines should. And don't type it in if you're having that much finger trouble. Start off by cutting-and-pasting it. Get it to work. Then proceed with extra code after that.
The accept was a typo I have been typing except but the 'try' I must check out.
I use the Iyonix for mail so cutting/pasting is not so strait forward.
Malcolm
Well if you are using python3.2 you should use Python3 statements not Python2 statements.
In Python3
print 'hello world'
becomes
print('hello world')
If you are following a book or tutorial it should have said that it was using Python2 or 3 at the start and if you have never programmed Python before, using the same version of Python as the guide would be a big help for you.
You can get Python2 for all the rPi Linux distros. If you are using something other than Linux on your rPi you may only have Python3.
Andy
"try:"
is part of the python source, not an instruction to the operator. cut and paste that whole block
It should run without edits and say "it broke" when you send ctrl-c
Not while he's typing Python2 source into a Python3 interpreter!
Raspbian includes both Python2 and Python3, I think. In any case, it defaults to Python2 - I know because that's how I've been using it :) .
I really wouldn't recommend that a beginner should start with anything other than Raspbian. There is an awful lot of support for that distro among the RPi community.
Yes I found out that try: was code after Google found a list of keywords.
Using idle3 I always get a syntax error using try: and except.
Hashing out the try: & expect lines the program runs without syntax errors.
Wise words. But I am learning. Yes, on page 134 I find 'we are going to use Python 2.x since that is the most likely that you will have installed. I have only reached page 98 so far.
Do I understand correctly that these codes will run OK if typed into Idle as opposed to Idle3?.
Malcolm
Have something to add? Share your thoughts — no account required.
Ask the community — no account required