Re: [Tutor] Problem with little program

2010-03-14 Thread Andre Engels
On Sat, Mar 13, 2010 at 7:56 PM, Marco Rompré  wrote:
> Hello I have a little problem, I am trying to define a function ligneCar(n,
> ca) that would print n times the caracters ca.
> For now I have the user entering a short sentence corresponding to ca.
> Here is my code:
> def ligneCar(n,ca):
>     c=0
>     while c         print ca
>         c+=1
> ca = input ('Enter a short phrase : ')
> n = input ('Enter how many times you want  : ')
> Thats the definition of my function ligne_Car
> then in another python file
> I want to recall my function ligne_Car but it is not working.

Please give us more information - what code are you using to 'recall'
your function, what were you expecting to be the result and what is
actually the result?


-- 
André Engels, andreeng...@gmail.com
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


[Tutor] Command not issued until after escape from loop

2010-03-14 Thread David Hutto
In the following code, the portion I'm having a problem with is outlined in 
stars, but since the overall code was short, I included it, just in case 
something else might be hindering the process.

When I execute the script, it shows my main window, then if I press the CKEY 
it's *supposed* to call the cleanSlate() function, which grabs and deletes 
objects in the contents of another window.

My problem is, it doesn't execute cleanSlate() until I hit the ESCKEY, or the 
QKEY. In the original example code I'm using as a template(I put in the ev() 
portion of the main template below my current code, so maybe someone could see 
where I deviated from the original, and why the differences in implementing 
redraw) , it's setup in the same manner. 

Why would it not execute immediately(during the main loop) in mine, but in the 
original it does?

import Blender
from Blender.BGL import *
from Blender import Draw, Scene, Object, Mesh
R = G = 0
B = A = 1
title = "Basic Object Manipulation"
instructions = "Select an object to manipulate"
len1 = Draw.GetStringWidth(title)
len2 = Draw.GetStringWidth(instructions)

# Removes default objects in scene

def cleanSlate(scn):
for ob in scn.objects:
if ob.getType == 'Mesh' or 'Camera':
scn.objects.unlink(ob)

#defining the window
def show_win():
glClearColor(R,G,B,A)# define color used to 
clear buffers 
glClear(GL_COLOR_BUFFER_BIT) # use it to clear the 
color buffer
glColor3f(0.35,0.18,0.92)# define default color
glColor3f(.0,0.0,0.0)# change default color for 
next item
glRecti(10, 450, 20+len2, 113)   # sets a box border
glColor3f(0.2,0.2,0.2)   # change default color for 
next item
glRasterPos2i(14,435)# move cursor
Draw.Text(title) # draw this text there
glRasterPos2i(14,410)# move cursor again
Draw.Text(instructions)   # draw another msg
**  
# defining the event handling list
def ev(evt, val):
scn = Scene.getCurrent()
if evt == Draw.ESCKEY or evt == Draw.QKEY:
Draw.Exit()
elif not val:
return
elif evt == Draw.CKEY: 
cleanSlate(scn) 
else:
return
Draw.Redraw(1)
**

# build the window
Draw.Register(show_win, ev, None)  # start the main loop


#End code


This is the original ev()
**

def ev(evt, val):  # event callback for Draw.Register()
   global R,G,B,A   # ... it handles input events
   if evt == Draw.ESCKEY or evt == Draw.QKEY:
 Draw.Exit()# this quits the script
   elif not val: return
   elif evt == Draw.LEFTMOUSE: R = 1 - R
   elif evt == Draw.MIDDLEMOUSE: G = 1 - G
   elif evt == Draw.RIGHTMOUSE: B = 1 - B
   elif evt == Draw.WHEELUPMOUSE:
 R += 0.1
 if R > 1: R = 1
   elif evt == Draw.WHEELDOWNMOUSE:
 R -= 0.1
 if R < 0: R = 0
   else:
 return # don't redraw if nothing changed
   Draw.Redraw(1)


TIA,
David


  
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor