Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 4, 2013 17:45:45

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

помогите найти ошибку

Конечно. Ведь вы выполняете для вывода в шелле

print '|'+i+'  |'+prob,
print p[int(c_)][i]
А для вывода на экран (в новое окно) передаете вего лишь
ms = ms + prob



Офлайн

#2 Янв. 4, 2013 17:47:22

Ystritsa
Зарегистрирован: 2012-12-10
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите найти ошибку

Exception in Tkinter callback
Traceback (most recent call last):
File “C:\Python27\lib\lib-tk\Tkinter.py”, line 1410, in __call__
return self.func(*args)
File “C:\Python27\Копия 1.py”, line 106, in <lambda>
but.bind(“<Button-1>”, lambda e: get_course(c, win7, ms))
File “C:\Python27\Копия 1.py”, line 79, in get_course
ms = ms + ‘|’ + i + ‘ |’ + prob + p + “\n”
TypeError: cannot concatenate ‘str’ and ‘int’ objects

Офлайн

#3 Янв. 4, 2013 18:04:47

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

помогите найти ошибку

Решение проблемы (попытка соединить целое число и строку):

ms = ms +'|' + str(i) + ' |' + str(prob) + str(p) + '\n'
Можне применить спецификаторы форматирования
ms = ms +"| %s | %s %s \n" %(i, prob, p)
Или метод format()
ms = ms +"| {0} | {1} {2} \n".format(i, prob, p)



Отредактировано 4kpt (Янв. 4, 2013 18:06:49)

Офлайн

#4 Янв. 4, 2013 18:29:33

Ystritsa
Зарегистрирован: 2012-12-10
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите найти ошибку

хорошо хоть одна проблема решена-уже выводит в окне информ.но
|visible | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|id | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|maxbytes | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|categoryid | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|showreports | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|startdate | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|defaultgroupingid | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|summaryformat | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|completionstartonenrol | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|groupmode | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
.
.
.
.
и т.д.
т.е выводится и по горизонтали и по вертикали одно и то же(

Офлайн

#5 Янв. 4, 2013 18:43:41

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

помогите найти ошибку

Дайте новый листинг…
И дайте хотя-бы одну строку полностью.



Отредактировано 4kpt (Янв. 4, 2013 18:46:07)

Офлайн

#6 Янв. 4, 2013 19:51:44

Ystritsa
Зарегистрирован: 2012-12-10
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите найти ошибку

from Tkinter import*
root = Tk()
def close(event = None):
    print "try_die"
def next_window2(ms):
    win1 = Toplevel()
    win1.title("ОНМУ")
    label2=Label(win1,text="Информация о курсе:") # метки
    label2.grid(row=1,column=1)
    label3=Label(win1,text="Инфо:")
    label3.grid(row=3,column=2)
    label3['text'] = ms
    but=Button(win1,text="Закрыть", width=50, height=2, bg="white", fg="blue") # Кнопки
    but.grid(row=2,column=2,padx=5,pady=5)
    but.bind("<Button-1>", lambda x: win1.destroy())                          
    print u'Операция завершена'
    
def get_course(c, win7, ms):
    c_ = c.get()
    mdl = MDL() 
    print mdl.conn_xmlrpc(server) 
    courses = ((c_),)
    p = mdl.get_courses(server)
    for i in p[int(c_)].keys():
        stroka = len(i)
        prob = ' '*(30 - stroka)
        print '|'+i+'  |'+prob,
        print p[int(c_)][i]
        # ms = ms +'|' + str(i) + ' |' + str(prob) + str(p) + '\n'
         #ms = ms +"| %s | %s %s \n" %(i, prob, p)
        ms = ms +"| {0} | {1} {2} \n".format(i, prob, p)
    win7.destroy()
    next_window2(ms)
    
def new6(event = None):
    ms = ''
    win7 = Toplevel()
    win7.title("Ввод данных")
    lbl1 = Label(win7, text = u"Введите номер курса")
    lbl1.grid(row=1,column=0,columnspan=2)
    c = Entry(win7, width="20")
    c.focus_force()
    c.grid(row=1,column=2,columnspan=2)
    but=Button(win7,text="Получить", width=18, height=2,)
    but.grid(row=2,column=2,ipadx=5,padx=10,pady=5)
    but.bind("<Button-1>", lambda e: get_course(c, win7, ms))
    but2=Button(win7,text="Закрыть", width=50, height=2, bg="white", fg="blue") # Кнопки
    but2.grid(row=3,column=2,ipadx=5,padx=10,pady=5)
    but2.bind("<Button-1>", lambda x: win7.destroy())
    
new6()
root.mainloop()
    
и это мы должны получить:
|visible  |                        1
|id  |                             4
|maxbytes  |                       2097152
|categoryid  |                     2
|showreports  |                    0
|startdate  |                      1351713600
|defaultgroupingid  |              0
|summaryformat  |                  1
|completionstartonenrol  |         0
|groupmode  |                      0
|numsections  |                    10
|showgrades  |                     1
|shortname  |                      ТРО
|enablecompletion  |               0
|hiddensections  |                 0
|format  |                         weeks
|completionnotify  |               0
|fullname  |                       Теория Распознавания Образов 4
|lang  |                           
|categorysortorder  |              20003
|timecreated  |                    1351700037
|groupmodeforce  |                 0
|forcetheme  |                     
|summary  |                        
|idnumber  |                       4
|newsitems  |                      5
|timemodified  |                   1355138540 

Отредактировано Ystritsa (Янв. 4, 2013 19:52:48)

Офлайн

#7 Янв. 4, 2013 22:08:05

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

помогите найти ошибку

Пробуем еще. Строку

ms = ms +"| {0} | {1} {2} \n".format(i, prob, p)
Заменить на строку
ms = ms +"| {0} | {1} {2} \n".format(i, prob, p[int(c_)][i])



Офлайн

#8 Янв. 5, 2013 02:30:36

Ystritsa
Зарегистрирован: 2012-12-10
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите найти ошибку

не,я уже пробывала такое(

 File "C:\Python27\Копия 1.py", line 81, in get_course
    ms = ms +"| {0} | {1} {2} \n".format(i, prob, p[int(c_)][i])
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

в шеле доходит до |shortname | а дальше эта ошибка.

Отредактировано Ystritsa (Янв. 5, 2013 02:59:29)

Офлайн

#9 Янв. 5, 2013 18:55:06

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

помогите найти ошибку

Попробуйте поменять строку:

 ms = ms +"| {0} | {1} {2} \n".format(i, prob, p[int(c_)][i])
На строку
 ms = ms +u"| {0} | {1} {2} \n".format(i, prob, p[int(c_)][i])



Офлайн

#10 Янв. 5, 2013 20:26:20

Ystritsa
Зарегистрирован: 2012-12-10
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите найти ошибку

да,спасибо Вам,это помогло!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version