Форум сайта python.su
Доброго времени суток!
Есть у меня такой простенький код, пытаюсь написать свою простейшую командную строку, по типу, как в линуксе.
# All commands.
def help ():
print "help"
# Call commands.
def call_command (command):
if command[0] == "help":
help ()
else:
print "Error: unknown command!"
def commands_input ():
while 1:
command = raw_input ('> ').split ()
call_command (command)
def start ():
commands_input ()
# ...
start ()
Отредактировано (Май 30, 2010 16:36:54)
Офлайн
везде где хочешь обратиться к command тебе нужно проверить существование этого элемента под номерном X, например так: if len(command)>X: doCheck()…
Офлайн
from Tkinter import *
from math import *
def fx(x0,y0):
h=(xk-x0)/n
return 1/(2*x-y**2)
for i in range (0,n):
y1=y0+(h/2)*(fx(x0,y0)+fx(x0+h,y0+h*fx(x0,y0)))
x1=x0+h
x0=x1
y0=y1
return y1
def calculate_y1():
x0 = float(x0_entry.get())
y0 = float(y0_entry.get())
xk = float(xk_entry.get())
n = float(n_entry.get())
try:
y1 = “%11.3f” % fx(x0,y0)
except:
y1 = “?”
y1_label.configure(text=y1)
root = Tk()
root.title(“du”)
frame = Frame(root)
frame.pack()
x0_entry = Entry(frame, width=10)
x0_entry.grid(row=1, column=0)
x0_lebel = Label(frame, text=“x0”)
x0_lebel.grid(row=0, column=0)
y0_entry = Entry(frame, width=10)
y0_entry.grid(row=1, column=1)
y0_lebel = Label(frame, text=“y0”)
y0_lebel.grid(row=0, column=1)
xk_entry = Entry(frame, width=10)
xk_entry.grid(row=1, column=2)
xk_lebel = Label(frame, text=“xk”)
xk_lebel.grid(row=0, column=2)
n_entry = Entry(frame, width=10)
n_entry.grid(row=1, column=3)
n_lebel = Label(frame, text=“n”)
n_lebel.grid(row=0, column=3)
y1_label = Label(frame, text=“?”)
y1_label.grid(row=1, column=5)
eval_button = Button(frame, text=“Calculate”, width=10,
command=calculate_y1)
eval_button.grid(row=2, column=0)
exit_button = Button(frame, text=“Exit”, width=10,
command=root.destroy)
exit_button.grid(row=2, column=1)
root.mainloop()
уже весь перемучился не знаю почему результат не выводится (
тут требуется дифур решитьпо методу эйлера
Отредактировано (Июнь 5, 2010 02:43:44)
Офлайн
те нужно y1_label сделать глобальной, её из ф-ии не видно ( global y1_label )
Офлайн