Re: Why is w9xpopen.exe bundled with Python 2.7 on Windows?

2014-08-30 Thread ps16thypresenceisfullnessofjoy
Thanks, that's interesting. It seems odd to me that w9xpopen.exe (because of 
its name) is still used on Windows 7, so I can see why it was removed in Python 
3.4.
Since I don't use the popen function at all in my application, I think it 
should be OK to exclude w9xpopen.exe in my py2exe setup script, especially 
since it's suggested in the change log for py2exe 0.6.3 
(http://www.py2exe.org/old/).
-- 
https://mail.python.org/mailman/listinfo/python-list


Sequencing images using tkinter?

2014-08-30 Thread theteacher . info
I've started to learn to use tkinter but can't seem to rotate images.

Here is a Python 3.4 program to illustrate the problem. Anyone spot why the for 
loop doesn't seem to want to display a sucssession of images please? Thanks.

import sys
from tkinter import *
import random
from time import sleep

myGui = Tk()
myGui.geometry("1000x800+400+100")
myGui.title("The Random Machine")

monsters = ["py01.gif", "py02.gif", "py03.gif", "py04.gif", "py05.gif", 
"py06.gif", "py07.gif", "py08.gif",
"py09.gif", "py10.gif", "py11.gif", "py12.gif", "py13.gif", 
"py14.gif", "py15.gif", "py16.gif",
"py17.gif", "py18.gif", "py19.gif", "py20.gif",]


#Main canvas
canvas1 = Canvas(myGui, width=1000, height=800, bg="white")
canvas1.place(x=0,y=0)


#button
myButton1=Button(canvas1, text='OK', justify = LEFT)

for i in range(10):
   myImage = PhotoImage(file="MonsterImages/Converted/" + 
random.choice(monsters))
   myButton1.config(image=myImage, width="100", height="200")
   myButton1.place(x=500,y=300)
   sleep(0.2)

myGui.mainloop()
-- 
https://mail.python.org/mailman/listinfo/python-list


PySide 1.2.2 and Python 3.4.1 - "native Qt signal is not callable"

2014-08-30 Thread Juan Christian
Hello everyone, I have a question regarding PySide 1.2.2 and Python 3.4.1

I have this code  that I made following a Python
tutorial , mine is a bit
different because the tutorial is a bit old, and I'm trying to use Python
newest features .

As I read in the doc, PySide Signal and Slots now work differently, and I'm
trying to use this new way (lines 32 - 34).

But, as you guys can see in the pastebin link, it's not working, but I
don't have a clue why. I hope someone can explain me what I did wrong.
-- 
https://mail.python.org/mailman/listinfo/python-list


I have tried and errored a reasonable amount of times

2014-08-30 Thread Seymore4Head
I really tried to get this without asking for help.

mylist = ["The", "earth", "Revolves", "around", "Sun"]
print (mylist)
for e in mylist:

 # one of these two choices should print something.  Since neither
does, I am missing something subtle.

if e[0].isupper == False:  
print ("False")
if e[0].isupper == True:
print ("True")

I am sure in the first , third and fifth choices should be true. Right
now, I am just testing the first letter of each word.


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


Re: Why is w9xpopen.exe bundled with Python 2.7 on Windows?

2014-08-30 Thread Terry Reedy

On 8/30/2014 10:45 AM, [email protected] wrote:

Thanks, that's interesting. It seems odd to me that w9xpopen.exe
(because of its name) is still used on Windows 7,


Yes, the name is confusing. It is not about running on Windows 9X, but 
about running popen on later systems that act like Windows 9X by using 
command.com instead of cmd.com.  I am sure that such systems have to be 
customized one by one, and are only customized by people (corporations) 
with legacy scripts that depend on the peculiarities of command.com


>  so I can see why it was removed in Python 3.4.

And not before, because we are slow to break Python on old systems.


Since I don't use the popen function at
all in my application, I think it should be OK to exclude
w9xpopen.exe in my py2exe setup script, especially since it's
suggested in the change log for py2exe 0.6.3
(http://www.py2exe.org/old/).


That seems reasonable.  Depending on your target audience, it might be 
reasonable to omit it even if you do use popen.


--
Terry Jan Reedy

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


Re: I have tried and errored a reasonable amount of times

2014-08-30 Thread Tim Chase
On 2014-08-30 14:27, Seymore4Head wrote:
> I really tried to get this without asking for help.
> 
> mylist = ["The", "earth", "Revolves", "around", "Sun"]
> print (mylist)
> for e in mylist:
> 
>  # one of these two choices should print something.  Since neither
> does, I am missing something subtle.
> 
> if e[0].isupper == False:  
> print ("False")
> if e[0].isupper == True:
> print ("True")
> 
> I am sure in the first , third and fifth choices should be true.
> Right now, I am just testing the first letter of each word.

There's a difference between e[0].isupper which refers to the method
itself, and e[0].isupper() which then calls that method.  Call the
method, and you should be good to go.

-tkc


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


Re: I have tried and errored a reasonable amount of times

2014-08-30 Thread Seymore4Head
On Sat, 30 Aug 2014 13:48:09 -0500, Tim Chase
 wrote:

>On 2014-08-30 14:27, Seymore4Head wrote:
>> I really tried to get this without asking for help.
>> 
>> mylist = ["The", "earth", "Revolves", "around", "Sun"]
>> print (mylist)
>> for e in mylist:
>> 
>>  # one of these two choices should print something.  Since neither
>> does, I am missing something subtle.
>> 
>> if e[0].isupper == False:  
>> print ("False")
>> if e[0].isupper == True:
>> print ("True")
>> 
>> I am sure in the first , third and fifth choices should be true.
>> Right now, I am just testing the first letter of each word.
>
>There's a difference between e[0].isupper which refers to the method
>itself, and e[0].isupper() which then calls that method.  Call the
>method, and you should be good to go.
>
>-tkc
>
That works.
Thanks
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: PySide 1.2.2 and Python 3.4.1 - "native Qt signal is not callable"

2014-08-30 Thread MRAB

On 2014-08-30 14:35, Juan Christian wrote:

Hello everyone, I have a question regarding PySide 1.2.2 and Python 3.4.1

I have this code  that I made following a
Python tutorial , mine is a
bit different because the tutorial is a bit old, and I'm trying to use
Python newest features .

As I read in the doc, PySide Signal and Slots now work differently, and
I'm trying to use this new way (lines 32 - 34).

But, as you guys can see in the pastebin link, it's not working, but I
don't have a clue why. I hope someone can explain me what I did wrong.


Judging from the traceback, the problem is that you're trying to call a
signal, but it's not callable.

After a brief look, I found this:

https://qt-project.org/wiki/Signals_and_Slots_in_PySide

To me it looks like you should be doing this instead (untested):

self.fromComboBox.currentIndexChanged.connect(self.update_ui)

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


Re: PySide 1.2.2 and Python 3.4.1 - "native Qt signal is not callable"

2014-08-30 Thread Juan Christian
Yes, indeed, my code was a mess!

I did a clear code here (http://pastebin.com/XsVLSVky) that's fully
working, thanks!


2014-08-30 16:05 GMT-03:00 MRAB :

> On 2014-08-30 14:35, Juan Christian wrote:
>
>> Hello everyone, I have a question regarding PySide 1.2.2 and Python 3.4.1
>>
>> I have this code  that I made following a
>> Python tutorial , mine is a
>>
>> bit different because the tutorial is a bit old, and I'm trying to use
>> Python newest features .
>>
>> As I read in the doc, PySide Signal and Slots now work differently, and
>> I'm trying to use this new way (lines 32 - 34).
>>
>> But, as you guys can see in the pastebin link, it's not working, but I
>> don't have a clue why. I hope someone can explain me what I did wrong.
>>
>>  Judging from the traceback, the problem is that you're trying to call a
> signal, but it's not callable.
>
> After a brief look, I found this:
>
> https://qt-project.org/wiki/Signals_and_Slots_in_PySide
>
> To me it looks like you should be doing this instead (untested):
>
> self.fromComboBox.currentIndexChanged.connect(self.update_ui)
>
> --
> https://mail.python.org/mailman/listinfo/python-list
>
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Sequencing images using tkinter?

2014-08-30 Thread Terry Reedy

On 8/30/2014 11:54 AM, [email protected] wrote:

I've started to learn to use tkinter but can't seem to rotate images.

Here is a Python 3.4 program to illustrate the problem.

> Anyone spot why the for loop doesn't seem to want to display
> a sucssession of images please? Thanks.


import sys
from tkinter import *
import random
from time import sleep

myGui = Tk()
myGui.geometry("1000x800+400+100")
myGui.title("The Random Machine")

monsters = ["py01.gif", "py02.gif", "py03.gif", "py04.gif", "py05.gif", "py06.gif", 
"py07.gif", "py08.gif",
 "py09.gif", "py10.gif", "py11.gif", "py12.gif", "py13.gif", "py14.gif", 
"py15.gif", "py16.gif",
 "py17.gif", "py18.gif", "py19.gif", "py20.gif",]


#Main canvas
canvas1 = Canvas(myGui, width=1000, height=800, bg="white")
canvas1.place(x=0,y=0)


#button
myButton1=Button(canvas1, text='OK', justify = LEFT)

for i in range(10):
myImage = PhotoImage(file="MonsterImages/Converted/" + 
random.choice(monsters))
myButton1.config(image=myImage, width="100", height="200")
myButton1.place(x=500,y=300)
sleep(0.2)

myGui.mainloop()


I tried a simplified version of this in the Idle shell. Idle displays 
call tips if you pause after typing '('.  Unlike .pack and .grid, .place 
apparently does not automatically put the widget in its master. At least 
this is true when placing in a canvas. You need an 'in_' argument (the 
'_' is needed to not be the keyword 'in').  Try


canvas1.pack() #don't use place unless really needed.
...
myButton1.place(in_=canvas1, x=500, y=300)

--
Terry Jan Reedy

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


Re: Sequencing images using tkinter?

2014-08-30 Thread Peter Otten
[email protected] wrote:

> I've started to learn to use tkinter but can't seem to rotate images.
> 
> Here is a Python 3.4 program to illustrate the problem. Anyone spot why
> the for loop doesn't seem to want to display a sucssession of images
> please? Thanks.

GUI programs are different from simple scripts; they have to react when the 
user resizes the window, clicks on a button, etc. The usual way to do that 
is to run an event loop permanently that calls functions that do something 
for a relatively small amount of time and then give control back to the 
loop.

time.sleep() in contrast stops the whole script (I'm simplifying) and thus 
should not be used here. Instead you can use myGui.after() to trigger the 
execution of a Python function:

> import sys
> from tkinter import *
> import random
> from time import sleep
> 
> myGui = Tk()
> myGui.geometry("1000x800+400+100")
> myGui.title("The Random Machine")
> 
> monsters = ["py01.gif", "py02.gif", "py03.gif", "py04.gif", "py05.gif",
> "py06.gif", "py07.gif", "py08.gif",
> "py09.gif", "py10.gif", "py11.gif", "py12.gif", "py13.gif",
> "py14.gif", "py15.gif", "py16.gif", "py17.gif", "py18.gif",
> "py19.gif", "py20.gif",]
> 
> 
> #Main canvas
> canvas1 = Canvas(myGui, width=1000, height=800, bg="white")
> canvas1.place(x=0,y=0)

# prepare a list of `PhotoImage`s to avoid having to load an image
# more than once
monster_images = [
PhotoImage(file="MonsterImages/Converted/" + monster)
for monster in monsters]

#Main canvas
canvas1 = Canvas(myGui, width=1000, height=800, bg="white")
canvas1.place(x=0,y=0)

#button
myButton1 = Button(canvas1, text='OK', justify=LEFT)
myButton1.config(width="100", height="200")
myButton1.place(x=500, y=300)

def next_image():
myButton1.config(image=random.choice(monster_images))

# tell tkinter to invoke next_image() again after 200 miliseconds
myGui.after(200, next_image)

# invoke next_image() for the first time
next_image()

myGui.mainloop()


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


Re: Sequencing images using tkinter?

2014-08-30 Thread theteacher . info
Peter - Thanks! I've had a play around and followed your advice and have 
something that should take me on to the next step! This is what I have so far 
and it works, Thanks.

from tkinter import *
from tkinter import ttk
import random

root = Tk()
root.title("Messing about")

def next_image(): 
myLabel.config(image=random.choice(monster_images)) 
# tell tkinter to invoke next_image() again after 200 miliseconds 
root.after(200, next_image) 

mainframe = ttk.Frame(root, padding="3 3 12 12", width="800", height="600", 
borderwidth="120", relief="sunken")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)

mon1 = PhotoImage(file="MonsterImages/Converted/py01.gif")
mon2 = PhotoImage(file="MonsterImages/Converted/py02.gif")
mon3 = PhotoImage(file="MonsterImages/Converted/py03.gif")

#A list of object pictures
monster_images = [mon1, mon2, mon3]

#Set up one label
myLabel=ttk.Label(mainframe, image=mon1)
myLabel.grid(column=1, row=1, sticky=W)


next_image()

root.mainloop()
-- 
https://mail.python.org/mailman/listinfo/python-list


Error reading from 'urllib.request' and iterating over lines

2014-08-30 Thread Juan Christian
My code: http://pastebin.com/CBgVvT4n

Line 25 returns the text correctly [1], but it seems not being parsed to
line 27-28 correctly. This is just a training program that I'm doing
following some books/tutorials/docs, nothing special.

[1] Output from line 25: http://pastebin.com/HSbAtDHQ

Python 3.4.1
PySide 1.2.2
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: I have tried and errored a reasonable amount of times

2014-08-30 Thread Ned Batchelder

On 8/30/14 2:50 PM, Seymore4Head wrote:

On Sat, 30 Aug 2014 13:48:09 -0500, Tim Chase
 wrote:


On 2014-08-30 14:27, Seymore4Head wrote:

I really tried to get this without asking for help.

mylist = ["The", "earth", "Revolves", "around", "Sun"]
print (mylist)
for e in mylist:

  # one of these two choices should print something.  Since neither
does, I am missing something subtle.

 if e[0].isupper == False:
 print ("False")
 if e[0].isupper == True:
 print ("True")

I am sure in the first , third and fifth choices should be true.
Right now, I am just testing the first letter of each word.


There's a difference between e[0].isupper which refers to the method
itself, and e[0].isupper() which then calls that method.  Call the
method, and you should be good to go.

-tkc


That works.
Thanks



Also, instead of:

if e[0].isupper() == False:
if e[0].isupper() == True:

use:

if not e[0].isupper():
if e[0].isupper():

It's clearer and reads better.

--
Ned Batchelder, http://nedbatchelder.com

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


Re: Sequencing images using tkinter?

2014-08-30 Thread theteacher . info
Although getting next_image to run for e.g. 10 times in a for loop is still 
something I can't get to work. It only displays one image.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: I have tried and errored a reasonable amount of times

2014-08-30 Thread Seymore4Head
On Sat, 30 Aug 2014 16:20:56 -0400, Ned Batchelder
 wrote:

>On 8/30/14 2:50 PM, Seymore4Head wrote:
>> On Sat, 30 Aug 2014 13:48:09 -0500, Tim Chase
>>  wrote:
>>
>>> On 2014-08-30 14:27, Seymore4Head wrote:
 I really tried to get this without asking for help.

 mylist = ["The", "earth", "Revolves", "around", "Sun"]
 print (mylist)
 for e in mylist:

   # one of these two choices should print something.  Since neither
 does, I am missing something subtle.

  if e[0].isupper == False:
  print ("False")
  if e[0].isupper == True:
  print ("True")

 I am sure in the first , third and fifth choices should be true.
 Right now, I am just testing the first letter of each word.
>>>
>>> There's a difference between e[0].isupper which refers to the method
>>> itself, and e[0].isupper() which then calls that method.  Call the
>>> method, and you should be good to go.
>>>
>>> -tkc
>>>
>> That works.
>> Thanks
>>
>
>Also, instead of:
>
> if e[0].isupper() == False:
> if e[0].isupper() == True:
>
>use:
>
> if not e[0].isupper():
> if e[0].isupper():
>
>It's clearer and reads better.


Thanks
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Sequencing images using tkinter?

2014-08-30 Thread theteacher . info
How do you exit from this function?

def next_image(): 
myLabel.config(image=random.choice(monster_images)) 
# tell tkinter to invoke next_image() again after 200 miliseconds 
root.after(200, next_image)
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Sequencing images using tkinter?

2014-08-30 Thread Albert Visser

On Sat, 30 Aug 2014 22:27:01 +0200,  wrote:

Although getting next_image to run for e.g. 10 times in a for loop is  
still something I can't get to work. It only displays one image.


I think this is because you do all your processing befoe starting the  
event loop (myGui.mainloop() ).


A better way is to bind the function that displays the images to a button  
callback.

Referring to your first post, that could be something like (untested)

def rotate():
for i in range(10):
myImage = PhotoImage(file="MonsterImages/Converted/" +  
random.choice(monsters))

myButton1.config(image=myImage, width="100", height="200")
sleep(0.2)

myButton1=Button(canvas1, text='OK', justify = LEFT, command=rotate)
myButton1.place(x=500,y=300)

myGui.mainloop()

Hope this helps
--
Vriendelijke groeten / Kind regards,

Albert Visser

Using Opera's mail client: http://www.opera.com/mail/
--
https://mail.python.org/mailman/listinfo/python-list


Re: Sequencing images using tkinter?

2014-08-30 Thread Peter Otten
[email protected] wrote:

> How do you exit from this function?
> 
> def next_image():
> myLabel.config(image=random.choice(monster_images))
> # tell tkinter to invoke next_image() again after 200 miliseconds

You misunderstand. The problem with the function is not that it doesn't 
exit, it's just that with

> root.after(200, next_image)

it schedules itself to be reinvoked by tkinter after 200 seconds. If you 
want to limit that to 10 times instead of indefinitely you can introduce a 
counter:

n = 10
def next_image():
global n

myLabel.config(image=random.choice(monster_images))
n -= 1
if n > 0:
root.after(200, next_image)
  



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


Re: I have tried and errored a reasonable amount of times

2014-08-30 Thread Mark Lawrence

On 30/08/2014 19:48, Tim Chase wrote:

On 2014-08-30 14:27, Seymore4Head wrote:

I really tried to get this without asking for help.

mylist = ["The", "earth", "Revolves", "around", "Sun"]
print (mylist)
for e in mylist:

  # one of these two choices should print something.  Since neither
does, I am missing something subtle.

 if e[0].isupper == False:
 print ("False")
 if e[0].isupper == True:
 print ("True")

I am sure in the first , third and fifth choices should be true.
Right now, I am just testing the first letter of each word.


There's a difference between e[0].isupper which refers to the method
itself, and e[0].isupper() which then calls that method.  Call the
method, and you should be good to go.

-tkc



For the OP use the interactive prompt to see for yourself.  Compare:-
>>> 'no'.isupper

>>> 'no'.isupper()
False
>>>

--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

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


Re: Error reading from 'urllib.request' and iterating over lines

2014-08-30 Thread MRAB

On 2014-08-30 21:16, Juan Christian wrote:

My code: http://pastebin.com/CBgVvT4n

Line 25 returns the text correctly [1], but it seems not being parsed
to line 27-28 correctly. This is just a training program that I'm
doing following some books/tutorials/docs, nothing special.

[1] Output from line 25: http://pastebin.com/HSbAtDHQ

Python 3.4.1
PySide 1.2.2


You've called it 'fh', which suggests that it's a file. It isn't. It's
a bytestring (what the .read method return).

If you iterate over a file that's been opened as text, you'll get the
lines of the file, but you're iterating over a bytestring, which will
yield each byte (an int) in turn.

You should decoding the bytestring, split it into lines, and then
iterate over them.
--
https://mail.python.org/mailman/listinfo/python-list


Re: I have tried and errored a reasonable amount of times

2014-08-30 Thread Seymore4Head
On Sat, 30 Aug 2014 22:21:40 +0100, Mark Lawrence
 wrote:

>On 30/08/2014 19:48, Tim Chase wrote:
>> On 2014-08-30 14:27, Seymore4Head wrote:
>>> I really tried to get this without asking for help.
>>>
>>> mylist = ["The", "earth", "Revolves", "around", "Sun"]
>>> print (mylist)
>>> for e in mylist:
>>>
>>>   # one of these two choices should print something.  Since neither
>>> does, I am missing something subtle.
>>>
>>>  if e[0].isupper == False:
>>>  print ("False")
>>>  if e[0].isupper == True:
>>>  print ("True")
>>>
>>> I am sure in the first , third and fifth choices should be true.
>>> Right now, I am just testing the first letter of each word.
>>
>> There's a difference between e[0].isupper which refers to the method
>> itself, and e[0].isupper() which then calls that method.  Call the
>> method, and you should be good to go.
>>
>> -tkc
>>
>
>For the OP use the interactive prompt to see for yourself.  Compare:-
> >>> 'no'.isupper
>
> >>> 'no'.isupper()
>False
> >>>
That would work now, but I didn't even know no.isupper() was command
until 15 min ago.  :)

I have been told that one is a method and the other calls a method.  I
still have to learn exactly what that means.  I'm getting there.

Thanks
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: I have tried and errored a reasonable amount of times

2014-08-30 Thread Mark Lawrence

On 30/08/2014 22:48, Seymore4Head wrote:

On Sat, 30 Aug 2014 22:21:40 +0100, Mark Lawrence
 wrote:


On 30/08/2014 19:48, Tim Chase wrote:

On 2014-08-30 14:27, Seymore4Head wrote:

I really tried to get this without asking for help.

mylist = ["The", "earth", "Revolves", "around", "Sun"]
print (mylist)
for e in mylist:

   # one of these two choices should print something.  Since neither
does, I am missing something subtle.

  if e[0].isupper == False:
  print ("False")
  if e[0].isupper == True:
  print ("True")

I am sure in the first , third and fifth choices should be true.
Right now, I am just testing the first letter of each word.


There's a difference between e[0].isupper which refers to the method
itself, and e[0].isupper() which then calls that method.  Call the
method, and you should be good to go.

-tkc



For the OP use the interactive prompt to see for yourself.  Compare:-

'no'.isupper



'no'.isupper()

False



That would work now, but I didn't even know no.isupper() was command
until 15 min ago.  :)

I have been told that one is a method and the other calls a method.  I
still have to learn exactly what that means.  I'm getting there.

Thanks



Slow down a little :) 'no' is a string, isupper is just one of many 
methods that any string has.  Try typing help('no') into the interactive 
prompt and see what you get.


--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

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


Re: I have tried and errored a reasonable amount of times

2014-08-30 Thread Cameron Simpson

On 30Aug2014 17:48, Seymore4Head  wrote:

I have been told that one is a method and the other calls a method.  I
still have to learn exactly what that means.  I'm getting there.


A method is, essentially, a function. Observe:

  def my_func(x):
print(9)

my_func is just the name of the function, and .isupper is likewise just the 
name of the function that tests a string for uppercaseness.


Conversely, my_func() actually calls the function, and likewise .isupper() 
calls the test function, returning True or False depending on whether the 
string was uppercase or not.


A method versus a function? A method is a particular type of function. It is 
normally defined in a class, eg:


  class MyClass:

  def method_name_here(self, arg1, arg2):
... do something with self and arg1 and arg2 ...

When you have an object which is an instance of the class (let us call it "o"), 
when you call:


  o.method_name_here(1,2)

it invokes the function MyClass.method_name_here(o,1,2). So because the string 
"no" is an instance of str, the code:


  "no".isupper()

runs the function str.isupper("no"), which examines its argument for 
uppercaseness.


Cheers,
Cameron Simpson 

Why is it so hard for people to simply leave people alone? But, the answer
comes to me: they are idiots and in a perfect world, I would be permitted to
kill them all.  - Julie Rhodes 
--
https://mail.python.org/mailman/listinfo/python-list


Raspberry pi, python and robotics

2014-08-30 Thread Nicholas Cannon
I really enjoy engineering at school and we make like fighting robots and 
stuff(simple stuff of course) and i really enjoy it. I have got a raspberry pi 
and a decent understanding of python and i want to do make stuff like RC cars 
and drones and stuff. Also I like electronics. Is there any good places to 
learn all this stuff like down to the basics of electronics because I have 
looked around and all the books I have seen just throw some electronics 
together and say yep thats done. I would like to work on my own projects after 
I get a grip on the basics. Where could I find some good recourses on this 
stuff.
-- 
https://mail.python.org/mailman/listinfo/python-list