Re: New User-Need-Help

2013-02-15 Thread Bob Brusa
print uses the new syntax e.g. print("example") in 3.r
Sent from my BlackBerry® wireless device

-Original Message-
From: Deborah Piotrowski 
Date: Fri, 15 Feb 2013 16:08:17 
To: Bob Brusa
Cc: Joel Goldstick; 
python-list@python.org
Subject: Re: New User-Need-Help

print "Game Over"
input("\n\nPress the Enter Key to Exit")
Syntax Error: Invalid Syntax

On Fri, Feb 15, 2013 at 3:48 PM, Bob Brusa  wrote:

>
>
> Am Freitag, 15. Februar 2013 schrieb Joel Goldstick :
>
>
>>
>>
>> On Fri, Feb 15, 2013 at 4:45 PM, Deborah Piotrowski <
>> spiceninj...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>>
>>> I am very new to Python, I am using the e-book "Python Programming for
>>> the Absolute Beginner" and am starting with a simple "Game Over" Program.
>>>  This is the code:which is extremely simple!
>>> print"Game Over" raw_input("\n\nPress Enter Key to exit")
>>>
>>
>> welcome Nicholas
>>
>>
>> One important thing about python is indentation is important.  You have
>> presented your code in a way that can't be.  Can you actually copy your
>> program and paste it into an email message.  Also, Windows, Linux, Mac?
>>
>>
>>
>>> That's it. It is supposed to bring up a window that says "Game Over" and
>>> at the bottom say "Press enter Key to exit" and when you press the enter
>>> key it is supposed to exit(big suprise).
>>> But all it does is highlight "raw_input" and says "invalid syntax" Now,
>>> if I just put "print "Game Over"" then it says Game Over UNDERNEATH the
>>> code I just printed!
>>> now I am following the book to the *pixel* and that is not what is
>>> supposed to happen!
>>> Please email me back as soon as you get this...(if you are not to busy).
>>>
>>> Thanks,Nicholas
>>>
>>> --
>>> http://mail.python.org/mailman/listinfo/python-list
>>>
>>>
>>
>>
>> --
>> Joel Goldstick
>> http://joelgoldstick.com
>>
>
> Nicholas,
> Could it be that you use a more recent version ( e. g. 3.3) of python? I
> found that raw_input is indeed no longer recognized. Use input instead and
> your code will work - at least it did so with python 3.3 on my iPad.
> Bob
>
>
> --
> Von Gmail Mobile gesendet
>



-- 
Nicholas J. Piotrowski

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


Re: New User-Need-Help

2013-02-15 Thread Bob Brusa
Am Freitag, 15. Februar 2013 schrieb Joel Goldstick :

>
>
>
> On Fri, Feb 15, 2013 at 4:45 PM, Deborah Piotrowski <
> spiceninj...@gmail.com  'spiceninj...@gmail.com');>> wrote:
>
>> Hi,
>>
>>
>> I am very new to Python, I am using the e-book "Python Programming for
>> the Absolute Beginner" and am starting with a simple "Game Over" Program.
>>  This is the code:which is extremely simple!
>> print"Game Over" raw_input("\n\nPress Enter Key to exit")
>>
>
> welcome Nicholas
>
>
> One important thing about python is indentation is important.  You have
> presented your code in a way that can't be.  Can you actually copy your
> program and paste it into an email message.  Also, Windows, Linux, Mac?
>
>
>
>> That's it. It is supposed to bring up a window that says "Game Over" and
>> at the bottom say "Press enter Key to exit" and when you press the enter
>> key it is supposed to exit(big suprise).
>> But all it does is highlight "raw_input" and says "invalid syntax" Now,
>> if I just put "print "Game Over"" then it says Game Over UNDERNEATH the
>> code I just printed!
>> now I am following the book to the *pixel* and that is not what is
>> supposed to happen!
>> Please email me back as soon as you get this...(if you are not to busy).
>>
>> Thanks,Nicholas
>>
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>>
>>
>
>
> --
> Joel Goldstick
> http://joelgoldstick.com
>

Nicholas,
Could it be that you use a more recent version ( e. g. 3.3) of python? I
found that raw_input is indeed no longer recognized. Use input instead and
your code will work - at least it did so with python 3.3 on my iPad.
Bob


-- 
Von Gmail Mobile gesendet
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: python math problem

2013-02-15 Thread Bob Brusa

Am 15.02.2013 20:39, schrieb Kene Meniru:

I am trying to calculate the coordinates at the end of a line. The length
and angle of the line are given and I am using the following formula:

x = (math.sin(math.radians(angle)) * length)
y = (math.cos(math.radians(angle)) * length)

The following are sample answers in the format (x, y) to the given
length/angle values of the line:

120/0  = (0.0, 25.0)
120/89 = (24.9961923789, 0.436310160932)
120/90 = (25.0, 1.53075794228e-15)
120/91 = (24.9961923789, -0.436310160932)

Why am I getting a string number instead of the expected answer  for 120/90
which should be (25.0, 0.0). This happens at all multiples of 90 (i.e. 180
and 270)


Kene,
are you sure your length is 120? It seems to be 25. I did these 
calculations with length = 25 and then your numbers make perfect sense.

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


Re: inheritance and how to use it

2013-02-15 Thread Bob Brusa

Am 15.02.2013 19:06, schrieb Dave Angel:

On 02/15/2013 12:50 PM, Bob Brusa wrote:

Am 15.02.2013 18:06, schrieb Thomas Rachel:

Am 15.02.2013 17:59 schrieb Bob Brusa:

Hi,
I use a module downloaded from the net. Now I want to build my own
class, based on the class SerialInstrument offered in this module - and
in my class I would like to initialize a few things, using e. g. the
method clear() offered by SerialInstrument. Hence I type:

class myClass(SerialInstrument)
 self.clear(self)
 def f1(self, str1, str2)
 ...do something etc.

I then get the message "self not know" from the statement
self.clear(self).


Which is absolutely correct. Besides, I would have expected some syntax
errors.

You try to execute the clear() method during the definition of the
class, not during the instantiation.

Instantiation happens in the __init__() method.

You'll have to do it like this:

class myClass(SerialInstrument):
 def __init__(self, *a, **k): # accept all parameters
 super(myClass, self).__init__(*a, **k)
 self.clear() # I don't think that self is to be given twice
here...
 def f1(self, str1, str2):
 pass

I have tried many other notations - none worked. What

works is however the following code - specifying myClass without the
self.clear(self) in it:

x = myClass("argument")
x.clear()


Here the clear() is called on the object which has been created, so
after calling the __init__() above (which is, roughly, equivalent to
calling it at the bottom of __init__()).


Thomas


Thomas,
This does not work either. The error comes while python analyses the
code - even prior to executing my program But what I want to achieve
is that this clear() is executed when the class is instantiatedwhich
I do with the code

x = myClass("COM7")

Of course, when scanning the class definition, the argument "COM7" is
not yet known.
Thanks for further help. Bob



Your error is on line 115, so what does it look like, and its context? I
expect you're never getting to the line x = myClass().


Hi Dave and Thomas,
yep - now its working: See also attachment q4.py

C:\Projekte\TDSsw\mypython>python q4.py
start of program q4.py
->*idn? | "SPEAG","TDS","RUID:00.00-00.00 FW:2. SID:00.00-00.00 
FW:01.00.00"

end of program

Thanks for your kind help - bob
"""/
edit history:
15-02-2013  Creation
"""

import sys
import visa
import time


class myvisa(visa.SerialInstrument):
"""provide utilities to handle the instrument
"""
def __init__(self, addr): # accept all parameters
super(myvisa, self).__init__(addr, baud_rate = 57600)
self.clear() # Thomas does not think that self is to be given twice
# he is right!

def io (self, printstr, askstr):
"""combines a print and an ask-string into a single call
"""
res = 0
try:
antw = self.ask(askstr)
except:
antw = "time-out"
res = 1
print printstr + antw
return res

strich = " | "; pfeil = "->"
print "start of program q4.py"
iodev = "COM7"
tds = myvisa(iodev)
cmd = "*idn?"; tds.io(pfeil+cmd+strich,cmd)
cmd = "status?"; tds.write(cmd) # exit with something in the visa-buffer 
and this will
# lead to a de-chronization between write 
and reads when 
# executing a next program
print "end of program"

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


Re: inheritance and how to use it

2013-02-15 Thread Bob Brusa

Am 15.02.2013 19:03, schrieb Dave Angel:

On 02/15/2013 12:23 PM, Bob Brusa wrote:

Am 15.02.2013 18:11, schrieb Dave Angel:

On 02/15/2013 11:59 AM, Bob Brusa wrote:

Hi,
I use a module downloaded from the net. Now I want to build my own
class, based
on the class SerialInstrument offered in this module - and in my class
I would
like to initialize a few things, using e. g. the method clear()
offered by
SerialInstrument. Hence I type:

class myClass(SerialInstrument)
  self.clear(self)
  def f1(self, str1, str2)
  ...do something etc.

I then get the message "self not know" from the statement
self.clear(self). I
have tried many other notations - none worked. What works is however
the
following code - specifying myClass without the self.clear(self) in it:

x = myClass("argument")
x.clear()

How can I integrate this call into the definition of myClass? Thanks
for advice.
Bob





By initialize, I'll assume you want this code to execute when your class
is instantiated.  The way to do that is with a method called __init__().
  Notice the double underscore at begin and end.

class myClass(SerialInstrument):
 def __init__(self):
 self.val1 = 42
 self.val2 = 31
 #...   also initialize the base class
 self.clear()

 def f1(self, str1, str2):
 

You should also call the __init__() method of the base class.  But I
don't know whether you're using Python2 or Python3, so I won't write
that call

This is without knowing anything about your base class, so there may be
many other adjustments to be made.





I defined (which should clear visa-buffers when instantiating the class):

class myvisa(visa.SerialInstrument):
 def __init__ (self):
 self.clear()


I still don't see the call to the superclass __init__().  Get that code
from Bob Brusa's message.



 def io (self, printstr, askstr):
...cut
when I run (python 2.7) a program using this class I get this:

C:\Projekte\TDSsw\mypython>python chk_clear_1.py
Traceback (most recent call last):
   File "chk_clear_1.py", line 8, in 
 from myvisa import *
   File "C:\Projekte\TDSsw\mypython\myvisa.py", line 15, in 
 class myvisa(visa.SerialInstrument):
   File "C:\Projekte\TDSsw\mypython\myvisa.py", line 121, in myvisa
 visa.Instrument.clear()
TypeError: unbound method clear() must be called with Instrument
instance as first argument (got nothing instead)

would it help to define instead:

class myvisa(visa.SerialInstrument):
 def __init__ (self):
 x = SerialInstrument(self)
 x.clear()#and then forget about this x?

 def io (self, printstr, askstr):
...cut



Besides being indented wrong (did you even try it ?), that code doesn't
begin to be what you want.  You're calling clear on some other instance,
then throwing that instance away, and not clearing the one you just
created.

But as I said before, you haven't said word-one about what the base
class looks like, or how it's supposed to be used, nor when clear() is
supposed to be called.

You also aren't showing us the code which got the error, so I can't see
how we could help.  What does the code around line 115 look like?  Is it
part of the same class definition?




Dave,
to make it more clear, I attach a cut-down version of my program. It 
includes comments to explain in more detail what my problem is.

Bob

"""/
edit history:
15-02-2013  Creation
"""

import sys
import visa
import time


class myvisa(visa.SerialInstrument):
"""provide utilities to handle the instrument
"""
#def __init__ ():   this doe not work
#self.clear()

def io (self, printstr, askstr):
"""combines a print and an ask-string into a single call
"""
res = 0
try:
antw = self.ask(askstr)
except:
antw = "time-out"
res = 1
print printstr + antw
return res

strich = " | "; pfeil = "->"
print "start of program q1.py"
iodev = "COM9"
tds = myvisa(iodev, baud_rate = 57600)
tds.clear() # this call I want to be called automatically when instantiating 
the class
cmd = "*idn?"; tds.io(pfeil+cmd+strich,cmd)
cmd = "status?"; tds.write(cmd) # exit with something in the visa-buffer 
and this will
# lead to a de-chronization between write 
and reads when 
# executing a next program
print "end of program"

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


Re: inheritance and how to use it

2013-02-15 Thread Bob Brusa

Am 15.02.2013 18:06, schrieb Thomas Rachel:

Am 15.02.2013 17:59 schrieb Bob Brusa:

Hi,
I use a module downloaded from the net. Now I want to build my own
class, based on the class SerialInstrument offered in this module - and
in my class I would like to initialize a few things, using e. g. the
method clear() offered by SerialInstrument. Hence I type:

class myClass(SerialInstrument)
 self.clear(self)
 def f1(self, str1, str2)
 ...do something etc.

I then get the message "self not know" from the statement
self.clear(self).


Which is absolutely correct. Besides, I would have expected some syntax
errors.

You try to execute the clear() method during the definition of the
class, not during the instantiation.

Instantiation happens in the __init__() method.

You'll have to do it like this:

class myClass(SerialInstrument):
 def __init__(self, *a, **k): # accept all parameters
 super(myClass, self).__init__(*a, **k)
 self.clear() # I don't think that self is to be given twice
here...
 def f1(self, str1, str2):
 pass

I have tried many other notations - none worked. What

works is however the following code - specifying myClass without the
self.clear(self) in it:

x = myClass("argument")
x.clear()


Here the clear() is called on the object which has been created, so
after calling the __init__() above (which is, roughly, equivalent to
calling it at the bottom of __init__()).


Thomas


Thomas,
This does not work either. The error comes while python analyses the 
code - even prior to executing my program But what I want to achieve 
is that this clear() is executed when the class is instantiatedwhich 
I do with the code


x = myClass("COM7")

Of course, when scanning the class definition, the argument "COM7" is 
not yet known.

Thanks for further help. Bob

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


Re: inheritance and how to use it

2013-02-15 Thread Bob Brusa

Am 15.02.2013 18:11, schrieb Dave Angel:

On 02/15/2013 11:59 AM, Bob Brusa wrote:

Hi,
I use a module downloaded from the net. Now I want to build my own
class, based
on the class SerialInstrument offered in this module - and in my class
I would
like to initialize a few things, using e. g. the method clear()
offered by
SerialInstrument. Hence I type:

class myClass(SerialInstrument)
  self.clear(self)
  def f1(self, str1, str2)
  ...do something etc.

I then get the message "self not know" from the statement
self.clear(self). I
have tried many other notations - none worked. What works is however the
following code - specifying myClass without the self.clear(self) in it:

x = myClass("argument")
x.clear()

How can I integrate this call into the definition of myClass? Thanks
for advice.
Bob





By initialize, I'll assume you want this code to execute when your class
is instantiated.  The way to do that is with a method called __init__().
  Notice the double underscore at begin and end.

class myClass(SerialInstrument):
 def __init__(self):
 self.val1 = 42
 self.val2 = 31
 #...   also initialize the base class
 self.clear()

 def f1(self, str1, str2):
 

You should also call the __init__() method of the base class.  But I
don't know whether you're using Python2 or Python3, so I won't write
that call

This is without knowing anything about your base class, so there may be
many other adjustments to be made.





I defined (which should clear visa-buffers when instantiating the class):

class myvisa(visa.SerialInstrument):
def __init__ (self):
self.clear()

def io (self, printstr, askstr):
...cut
when I run (python 2.7) a program using this class I get this:

C:\Projekte\TDSsw\mypython>python chk_clear_1.py
Traceback (most recent call last):
  File "chk_clear_1.py", line 8, in 
from myvisa import *
  File "C:\Projekte\TDSsw\mypython\myvisa.py", line 15, in 
class myvisa(visa.SerialInstrument):
  File "C:\Projekte\TDSsw\mypython\myvisa.py", line 121, in myvisa
visa.Instrument.clear()
TypeError: unbound method clear() must be called with Instrument 
instance as first argument (got nothing instead)


would it help to define instead:

class myvisa(visa.SerialInstrument):
def __init__ (self):
x = SerialInstrument(self)
x.clear()   #and then forget about this x?

def io (self, printstr, askstr):
...cut




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


inheritance and how to use it

2013-02-15 Thread Bob Brusa

  
  
Hi,
I use a module downloaded from the net. Now I want to build my own
class, based on the class SerialInstrument offered in this module -
and in my class I would like to initialize a few things, using e. g.
the method clear() offered by SerialInstrument. Hence I type:

class myClass(SerialInstrument)
    self.clear(self)
    def f1(self, str1, str2)
        ...do something etc.

I then get the message "self not know" from the statement
self.clear(self). I have tried many other notations - none worked.
What works is however the following code - specifying myClass
without the self.clear(self) in it:

x = myClass("argument")
x.clear()

How can I integrate this call into the definition of myClass? Thanks
for advice.
Bob
  

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