rover
Март 25, 2010 12:00:06
Здравствуйте, уважаемые эксперты!
Подключаю модуль преобразующий число с 10й в 16ю систему счислений.
После компиляции выдается ошибка:
n=pole.get()
NameError: global name ‘pole’ is not defined
———————————–
Вот часть основного кода:
…
view=Menu(m)
m.add_cascade(label=u“Вид”,menu=view)
view.add_command(label=u“Шестнадцатеричный”,command=Hex)
…
…
global pole
pole=Entry(root,width=30,bd=5,font=“12”) # Поле вывода чисел
…
———————————————
#а вот модуль который подключаю
from operator import *
def Hex():
n=pole.get()
s=''
while n>16:
r=mod(n,16)
n=div(n,16)
if r<10:
buf=chr(r+48)
else:
buf=chr(r+55)
s=buf+s
if n<>0:
if n<10:
buf=chr(n+48)
else:
buf=chr(n+55)
s=buf+s
pole.insert(END,s)
o7412369815963
Март 25, 2010 16:03:06
в модуль который подключаешь нужно в начале написать: pole = ‘'
а преобразование из 10 в 16 можно так: print ’%x' % 255
igor.kaist
Март 25, 2010 18:19:18
А чем стандартная функция hex() не угодила? :)
Да и не понятно у вас как то. Вы сделали модуль pole (и похоже забыли его импортировать), далее в скрипте пытаетесь вызвать функцию get у этого модуля, которой нет, а есть лишь только функция Hex, которая к тому же ничего не возвращает. На словах у вас одно, а в коде совершенно другое…
igor.kaist
Март 25, 2010 18:28:01
держите :)
#coding:utf-8
from Tkinter import *
root=Tk()
ent=Entry(root)
ent.pack()
def get():
v=ent.get()
ent.delete(0,END)
if v.isdigit():ent.insert(0,hex(int(v))[2:])
but=Button(root,text='Получить',command=get)
but.pack()
root.mainloop()
//тренируюсь писать код на коленке, без питона под рукой :)
rover
Март 25, 2010 21:32:27
Ну я новичек, учусь только,…
А вообще я это делаю для калькулятора,…основные действия сделал, еще хочу функций различных добавить
rover
Март 28, 2010 18:45:20
igor.kaist
а вот что вы выше написали пойдет для калькулятора
rover
Март 28, 2010 19:08:15
А как с остальными системами, какие операторы использовать, может напишите или ссылку дадите на статью по системам счисления в питоне.
и еще как быть с вещественными числами и отрицательными