> I am just starting to learn Python, and I like to use the editor
> instead of the interactive shell. So I wrote the following little
> program in IDLE
I don't know what editor you're using or how it works, but I'm guessing that pressing f5 runs what you've written as a script, right? In that case the interpreter doesn't automatically print the result of expressions in the same way that the interactive interpreter does; you didn't tell it to print anything, so it didn't.
> If I added print mean(data1), it gave me a invalid syntax
If you're using Python 3.x, you'll need to replace
print mean(data1)
with
print(mean(data1))
since the print statement has been replaced with the print function in Python 3.
If you're instead using Python 2.x then I don't know what the problem is, but in that case your mean() function won't work properly - the forward slash operator between a pair of ints gives you floor division by default, so you should instead have it return something like float(sum(data))/len(data).
-- I have made a thing that superficially resembles music:
> I am just starting to learn Python, and I like to use the editor
> instead of the interactive shell. So I wrote the following little
> program in IDLE
[snip]
I can't comment on IDLE as I've never used it, but you're doing yourself a big disservice if you don't use the interactive shell. Trying code snippets at the interactive prompt is one of the big benefits of using Python, ignore it at your peril :)
> On 06/08/2012 00:46, PeterSo wrote:
>> I am just starting to learn Python, and I like to use the editor
>> instead of the interactive shell. So I wrote the following little
>> program in IDLE
> I don't know what editor you're using or how it works, but I'm guessing
> that pressing f5 runs what you've written as a script, right? In that
> case the interpreter doesn't automatically print the result of
> expressions in the same way that the interactive interpreter does; you
> didn't tell it to print anything, so it didn't.
It looks like it's IDLE.
>> If I added print mean(data1), it gave me a invalid syntax
> If you're using Python 3.x, you'll need to replace
> print mean(data1)
> with
> print(mean(data1))
> since the print statement has been replaced with the print function in
> Python 3.
> If you're instead using Python 2.x then I don't know what the problem
> is, but in that case your mean() function won't work properly - the
> forward slash operator between a pair of ints gives you floor division
> by default, so you should instead have it return something like
> float(sum(data))/len(data).
> On 06/08/2012 01:09, Rotwang wrote:
>> On 06/08/2012 00:46, PeterSo wrote:
>>> I am just starting to learn Python, and I like to use the editor
>>> instead of the interactive shell. So I wrote the following little
>>> program in IDLE
>> I don't know what editor you're using or how it works, but I'm guessing
>> that pressing f5 runs what you've written as a script, right? In that
>> case the interpreter doesn't automatically print the result of
>> expressions in the same way that the interactive interpreter does; you
>> didn't tell it to print anything, so it didn't.
> It looks like it's IDLE.
Actually, he does say that it's IDLE at the start.
[snip]
> On 06/08/2012 01:58, MRAB wrote:
>> On 06/08/2012 01:09, Rotwang wrote:
>>> On 06/08/2012 00:46, PeterSo wrote:
>>>> I am just starting to learn Python, and I like to use the editor
>>>> instead of the interactive shell. So I wrote the following little
>>>> program in IDLE
>>>> [...]
>>> I don't know what editor you're using or how it works, but I'm guessing
>>> that pressing f5 runs what you've written as a script, right? In that
>>> case the interpreter doesn't automatically print the result of
>>> expressions in the same way that the interactive interpreter does; you
>>> didn't tell it to print anything, so it didn't.
>> It looks like it's IDLE.
> Actually, he does say that it's IDLE at the start.
> [snip]
Doh! Not sure how I missed that, sorry.
-- I have made a thing that superficially resembles music:
> I am just starting to learn Python, and I like to use the editor
> instead of the interactive shell. So I wrote the following little
> program in IDLE
If properly installed and working, IDLE does syntax highliting if and only if you name the file with a .py, .pyw, .pyo extension. I have a 'play around' directory with a tem.py file that is always in the recent files lists. I use it for short shippets that are two long to directly type into the shell.
> > I am just starting to learn Python, and I like to use the editor
> > instead of the interactive shell. So I wrote the following little
> > program in IDLE
> I don't know what editor you're using or how it works, but I'm guessing
> that pressing f5 runs what you've written as a script, right? In that
> case the interpreter doesn't automatically print the result of
> expressions in the same way that the interactive interpreter does; you
> didn't tell it to print anything, so it didn't.
> > If I added print mean(data1), it gave me a invalid syntax
> If you're using Python 3.x, you'll need to replace
> print mean(data1)
> with
> print(mean(data1))
> since the print statement has been replaced with the print function in
> Python 3.
> If you're instead using Python 2.x then I don't know what the problem
> is, but in that case your mean() function won't work properly - the
> forward slash operator between a pair of ints gives you floor division
> by default, so you should instead have it return something like
> float(sum(data))/len(data).
> --
> I have made a thing that superficially resembles music: