Re: [Q] ipython: Multiple commands on the same line and newlines

2011-04-18 Thread harrismh777

Terry Reedy wrote:

You can write multiple *simple* statements using ';'.



All compound statements, like while, must start on own line.



E.g. I want:
x = 0;ctrl-enter


This is one statement



while x  10:ctrl-enter
 x = x + 1;ctrl-enter



Lutz has a very nice write-up entitled Why Indentation Syntax?

Lutz, Mark, Learning Python: Powerful Object Oriented Programming,
4th ed, (Sebastopol: O'Reilly, 2009), 266 -271.

He makes the point clear that only simple statements may be chained 
together on a single line with  ;  and that compound statements (like 
while) must still appear on lines of their own (Lutz, 269).


It might be nice (as an option) to be able to disengage the forced 
indentation syntax rules of Python. In other words, provide indentation 
syntax by default and allow an option via environment variable to engage 
an alternate (more C-like) blocking syntax.


The forced indentation syntax is great for readability (and 
frankly, I like the appearance /low clutter) but it is inconvenient in 
some situations, like the one at the top of the thread.


Just an idea (probably already been beaten to death long before my 
time)   :)


kind regards,
m harris


--
http://mail.python.org/mailman/listinfo/python-list


Re: [Q] ipython: Multiple commands on the same line and newlines

2011-04-18 Thread Chris Angelico
On Mon, Apr 18, 2011 at 4:01 PM, harrismh777 harrismh...@charter.net wrote:
    It might be nice (as an option) to be able to disengage the forced
 indentation syntax rules of Python. In other words, provide indentation
 syntax by default and allow an option via environment variable to engage an
 alternate (more C-like) blocking syntax.


You can do that with a future directive.

from __future__ import braces

That's two underscores before and after the word future.
http://docs.python.org/reference/simple_stmts.html#future-statements

Chris Angelico
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: ipython: Multiple commands on the same line and newlines

2011-04-17 Thread Andrea Crotti
Phil Winder philipwin...@gmail.com writes:

 Yes, that does not produce an error, but it does not work. Please
 refer to my first post. Try the first code, you will get a syntax
 error. Placing things on one line makes for easy history scrollback.
 In your version you will have 2 lines of history for the x = 0 term
 and the while ... term. I don't want to have to press up twice,
 especially when the code was in the distant past! Also cpaste might be
 ok for scripting, but it looks too clumsy to use at the command line.

 Cheers,
 Phil

Well I guess that's the way it is with the interpreter..
But I don't see the sense in doing everything from there, just write the
code to a file and use %edit from ipython to change and run it, it's
quite nice and easy too.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: ipython: Multiple commands on the same line and newlines

2011-04-17 Thread Phil Winder
On Apr 17, 1:11 pm, Andrea Crotti andrea.crott...@gmail.com wrote:
 Phil Winder philipwin...@gmail.com writes:
  Yes, that does not produce an error, but it does not work. Please
  refer to my first post. Try the first code, you will get a syntax
  error. Placing things on one line makes for easy history scrollback.
  In your version you will have 2 lines of history for the x = 0 term
  and the while ... term. I don't want to have to press up twice,
  especially when the code was in the distant past! Also cpaste might be
  ok for scripting, but it looks too clumsy to use at the command line.

  Cheers,
  Phil

 Well I guess that's the way it is with the interpreter..
 But I don't see the sense in doing everything from there, just write the
 code to a file and use %edit from ipython to change and run it, it's
 quite nice and easy too.

Ok, thanks all. It's a little disappointing, but I guess that you
always have to work in a different way when you move to a new
language. Andrea's %edit method is probably the best compromise, but
this now means that I will have to learn all the (obscure) shortcuts
for vi!

Cheers,
Phil
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: ipython: Multiple commands on the same line and newlines

2011-04-17 Thread Alexander Kapps

On 17.04.2011 20:40, Phil Winder wrote:

Ok, thanks all. It's a little disappointing, but I guess that you
always have to work in a different way when you move to a new
language. Andrea's %edit method is probably the best compromise, but
this now means that I will have to learn all the (obscure) shortcuts
for vi!


As you can read in Python IDE/text-editor thread. Learning either 
Vim or Emacs will pay off in the long run,


Anyway, IPython honors the $EDITOR environment variable. Just set it 
to whatever editor you prefer.


--
http://mail.python.org/mailman/listinfo/python-list


Re: ipython: Multiple commands on the same line and newlines

2011-04-17 Thread Rajendra prasad Gottipati
Phil,

there is one more way you can run all commands as in linux shell..

 import commands
 s, o = commands.getstatusoutput('x=10;for i in $(seq $x); do echo $i ;
done')
 print o
1
2
3
4
5
6
7
8
9
10


On Sun, Apr 17, 2011 at 11:40 AM, Phil Winder philipwin...@gmail.comwrote:

 On Apr 17, 1:11 pm, Andrea Crotti andrea.crott...@gmail.com wrote:
  Phil Winder philipwin...@gmail.com writes:
   Yes, that does not produce an error, but it does not work. Please
   refer to my first post. Try the first code, you will get a syntax
   error. Placing things on one line makes for easy history scrollback.
   In your version you will have 2 lines of history for the x = 0 term
   and the while ... term. I don't want to have to press up twice,
   especially when the code was in the distant past! Also cpaste might be
   ok for scripting, but it looks too clumsy to use at the command line.
 
   Cheers,
   Phil
 
  Well I guess that's the way it is with the interpreter..
  But I don't see the sense in doing everything from there, just write the
  code to a file and use %edit from ipython to change and run it, it's
  quite nice and easy too.

 Ok, thanks all. It's a little disappointing, but I guess that you
 always have to work in a different way when you move to a new
 language. Andrea's %edit method is probably the best compromise, but
 this now means that I will have to learn all the (obscure) shortcuts
 for vi!

 Cheers,
 Phil
 --
 http://mail.python.org/mailman/listinfo/python-list

-- 
http://mail.python.org/mailman/listinfo/python-list


[Q] ipython: Multiple commands on the same line and newlines

2011-04-16 Thread Phil Winder
Hi,
I'm having a go at using ipython as a command prompt for data
analysis. Coming from Matlab, I'm used to typing multiple commands on
the same line then using the up arrow to go through my history.
How can I write multiple python commands on the same line?
E.g. x = 0; while x  10: x = x + 1; returns an invalid syntax
error on the 'e' in while.

Also, how can I produce a new line, without it running the command? I
would have expected a ctrl-enter or shift-enter to produce the
expected results.
E.g. I want:
x = 0; ctrl-enter
while x  10: ctrl-enter
x = x + 1; ctrl-enter
 enter to run
It seems to work automatically for the while xxx:, but combinations
of keys+enter do not work for normal lines.

Cheers,
Phil
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [Q] ipython: Multiple commands on the same line and newlines

2011-04-16 Thread Andrea Crotti
Phil Winder philipwin...@gmail.com writes:

 Hi,
 I'm having a go at using ipython as a command prompt for data
 analysis. Coming from Matlab, I'm used to typing multiple commands on
 the same line then using the up arrow to go through my history.
 How can I write multiple python commands on the same line?
 E.g. x = 0; while x  10: x = x + 1; returns an invalid syntax
 error on the 'e' in while.

 Also, how can I produce a new line, without it running the command? I
 would have expected a ctrl-enter or shift-enter to produce the
 expected results.
 E.g. I want:
 x = 0; ctrl-enter
 while x  10: ctrl-enter
 x = x + 1; ctrl-enter
  enter to run
 It seems to work automatically for the while xxx:, but combinations
 of keys+enter do not work for normal lines.

 Cheers,
 Phil

Well when you do something like

while x  10:

it doesn't execute anything, but goes to newline and waits for the rest.

for
x = 10

what's the difference for you if it gets evaluated before or after?
Anyway you can you also %cpaste if you want to write more code

Anyway to me this works perfectly:
In [1]: x = 0

In [2]: while x  10: print x; x += 1
   ...: 
0
1
2
3
4
5
6
7
8
9

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [Q] ipython: Multiple commands on the same line and newlines

2011-04-16 Thread Chris Angelico
On Sun, Apr 17, 2011 at 2:29 AM, Andrea Crotti
andrea.crott...@gmail.com wrote:
 for
 x = 10

 what's the difference for you if it gets evaluated before or after?

I have the same issue in IDLE sometimes, and the reason it's annoying
relates to the up-arrow key (Alt-P in IDLE). I can retrieve one entire
command, but if that command requires a prefix statement to set
things up (like initializing a dictionary to empty), that has to be
separate.

Chris Angelico
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: ipython: Multiple commands on the same line and newlines

2011-04-16 Thread Phil Winder
On Apr 16, 5:29 pm, Andrea Crotti andrea.crott...@gmail.com wrote:
 Phil Winder philipwin...@gmail.com writes:
  Hi,
  I'm having a go at using ipython as a command prompt for data
  analysis. Coming from Matlab, I'm used to typing multiple commands on
  the same line then using the up arrow to go through my history.
  How can I write multiple python commands on the same line?
  E.g. x = 0; while x  10: x = x + 1; returns an invalid syntax
  error on the 'e' in while.

  Also, how can I produce a new line, without it running the command? I
  would have expected a ctrl-enter or shift-enter to produce the
  expected results.
  E.g. I want:
  x = 0; ctrl-enter
  while x  10: ctrl-enter
      x = x + 1; ctrl-enter
   enter to run
  It seems to work automatically for the while xxx:, but combinations
  of keys+enter do not work for normal lines.

  Cheers,
  Phil

 Well when you do something like

 while x  10:

 it doesn't execute anything, but goes to newline and waits for the rest.

 for
 x = 10

 what's the difference for you if it gets evaluated before or after?
 Anyway you can you also %cpaste if you want to write more code

 Anyway to me this works perfectly:
 In [1]: x = 0

 In [2]: while x  10: print x; x += 1
    ...:
 0
 1
 2
 3
 4
 5
 6
 7
 8
 9

Yes, that does not produce an error, but it does not work. Please
refer to my first post. Try the first code, you will get a syntax
error. Placing things on one line makes for easy history scrollback.
In your version you will have 2 lines of history for the x = 0 term
and the while ... term. I don't want to have to press up twice,
especially when the code was in the distant past! Also cpaste might be
ok for scripting, but it looks too clumsy to use at the command line.

Cheers,
Phil
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [Q] ipython: Multiple commands on the same line and newlines

2011-04-16 Thread Terry Reedy

On 4/16/2011 9:55 AM, Phil Winder wrote:

Hi,
I'm having a go at using ipython as a command prompt for data
analysis. Coming from Matlab, I'm used to typing multiple commands on
the same line then using the up arrow to go through my history.
How can I write multiple python commands on the same line?


You can write multiple *simple* statements using ';'.


E.g. x = 0; while x  10: x = x + 1; returns an invalid syntax
error on the 'e' in while.


All compound statements, like while, must start on own line.


Also, how can I produce a new line, without it running the command?


Use an editor, as with IDLE, rather than a shell. Interactive mode runs 
*1* statement (including simple;simple) at a time.



would have expected a ctrl-enter or shift-enter to produce the
expected results.
E.g. I want:
x = 0;ctrl-enter


This is one statement


while x  10:ctrl-enter
 x = x + 1;ctrl-enter


This is another.

I can understanding wanting to rerun initialized loops with one enter, 
but you cannot. Sorry.


--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list


Re: [Q] ipython: Multiple commands on the same line and newlines

2011-04-16 Thread wisecracker
Hi Phil...

 How can I write multiple python commands on the same line?
 E.g. x = 0; while x  10: x = x + 1; returns an invalid syntax
 error on the 'e' in while.

I don`t think this is possible under any Python version.

There will always be some kind of user intervention required other than
just the single 1, (one), RETURN/ENTER

E.G...

 x = 0RETURN/ENTER
 while x  10: print x; x = x + 1RETURN/ENTER
...RETURN/ENTER
0
1
2
3
4
5
6
7
8
9
 FLASHING_CURSOR

Ending up with two, (2), lines and three, (3), RETURN/ENTER

I hope some one can prove me wrong because I would love single line ability 
sometimes.



--
73...

Bazza, G0LCU...

Team AMIGA...

http://homepages.tesco.net/wisecracker/

http://main.aminet.net/search?readme=wisecracker

http://mikeos.berlios.de/

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [Q] ipython: Multiple commands on the same line and newlines

2011-04-16 Thread OKB (not okblacke)
Phil Winder wrote:

 Hi,
 I'm having a go at using ipython as a command prompt for data
 analysis. Coming from Matlab, I'm used to typing multiple commands on
 the same line then using the up arrow to go through my history.
 How can I write multiple python commands on the same line?
 E.g. x = 0; while x  10: x = x + 1; returns an invalid syntax
 error on the 'e' in while.
 
 Also, how can I produce a new line, without it running the command? I
 would have expected a ctrl-enter or shift-enter to produce the
 expected results.
 E.g. I want:
 x = 0; ctrl-enter
 while x  10: ctrl-enter
 x = x + 1; ctrl-enter
  enter to run
 It seems to work automatically for the while xxx:, but combinations
 of keys+enter do not work for normal lines.

You might want to take a look at DreamPie ( 
http://dreampie.sourceforge.net/ ), which provides the second option you 
indicate (and thus makesthe first unnecessary).  I've found it quite 
convenient for interactive use.


-- 
--OKB (not okblacke)
Brendan Barnwell
Do not follow where the path may lead.  Go, instead, where there is
no path, and leave a trail.
--author unknown
-- 
http://mail.python.org/mailman/listinfo/python-list