Форум сайта python.su
857
frpaul1. Сначала пишешь набросок функции, и вот она работает.
Кстати, тесты мы пишем как?
Отредактировано py.user.next (Дек. 4, 2016 03:02:06)
Офлайн
857
Вот, например, я взял метод vis из твоего str.py
def vis(self, model, itr):
"""Callback for the model-filter in Viewer.
Show/hide rows that contain info for students
not present in this (or any) class
"""
av_l = model.get_value(itr, 5)
act = model.get_value(itr, 2)
# print 'act', act
if type(av_l) == types.NoneType:
# print 'av_l', av_l
return False
if av_l != '0':
av_ls = av_l.split('/')
av = float(av_ls[0])
else:
av = 0
# av = self.w_model.get(itr, 0,1,2,3,4,5,6,7,8,9)
if self.c_group == 0: # weak
# print 'group - weak'
if not act:
if av:
if av < 3.5:
return True
else:
return False
else:
return True
else:
return False
elif self.c_group == 1: # strong
# print 'group - strong'
if not act:
if av:
if av >= 3.5:
return True
else:
return False
else:
return False
else:
return False
elif self.c_group == 2: # active
# print 'group - active'
if not act:
return True
else:
return False
elif self.c_group == 3: # all
return True
Отредактировано py.user.next (Дек. 4, 2016 03:18:03)
Офлайн
186
Ну что же вы к человеку пристали? У него вполне вменяемый проект, хотя он и не без проблем.
Например:
1) Много мест в коде которые нужно переделать. Например вместо:
command = "CREATE TABLE students (s_num INTEGER PRIMARY KEY, s_name TEXT, email TEXT, phone TEXT, photo TEXT, active TEXT, comment TEXT)" command2 = "CREATE TABLE attendance (a_num TEXT, s_num INTEGER, date TEXT, absence TEXT, comment TEXT)" command3 = "CREATE TABLE grades (g_num TEXT, s_num INTEGER, e_name TEXT, e_num INT, date TEXT, mark REAL, comment TEXT)" command4 = "CREATE TABLE lectures (e_id INTEGER PRIMARY KEY, date TEXT, topic TEXT, comment TEXT)" command5 = "CREATE TABLE seminars (e_id INTEGER PRIMARY KEY, date TEXT, topic TEXT, comment TEXT)" command6 = "CREATE TABLE tests (e_id INTEGER PRIMARY KEY, date TEXT, topic TEXT, comment TEXT)" command7 = "CREATE TABLE essays (e_id INTEGER PRIMARY KEY, date TEXT, enddate TEXT, topic TEXT, comment TEXT)" command8 = 'CREATE TABLE notes (c_num TEXT, s_num INTEGER, date TEXT, comment TEXT)' # TODO: make "fulfilled" or "acted_on" column command9 = 'CREATE TABLE assignments (a_num TEXT, s_num INTEGER, e_id INTEGER, delivered TEXT, date TEXT, mark REAL, comment TEXT)' for com in [command, command2, command3, command4, command5, command6, command7, command8, command9]: cur.execute(com) # TODO: executescript()
cursor.executescript(""" /* *Создаём таблицы: *....... /* CREATE TABLE students (s_num INTEGER PRIMARY KEY, s_name TEXT, email TEXT, phone TEXT, photo TEXT, active TEXT, comment TEXT); CREATE TABLE grades (g_num TEXT, s_num INTEGER, e_name TEXT, e_num INT, date TEXT, mark REAL, comment TEXT); CREATE TABLE lectures (e_id INTEGER PRIMARY KEY, date TEXT, topic TEXT, comment TEXT); CREATE TABLE seminars (e_id INTEGER PRIMARY KEY, date TEXT, topic TEXT, comment TEXT); CREATE TABLE tests (e_id INTEGER PRIMARY KEY, date TEXT, topic TEXT, comment TEXT); CREATE TABLE essays (e_id INTEGER PRIMARY KEY, date TEXT, enddate TEXT, topic TEXT, comment TEXT); CREATE TABLE notes (c_num TEXT, s_num INTEGER, date TEXT, comment TEXT); CREATE TABLE assignments (a_num TEXT, s_num INTEGER, e_id INTEGER, delivered TEXT, date TEXT, mark REAL, comment TEXT); """)
Отредактировано Rodegast (Дек. 4, 2016 14:08:00)
Офлайн
0
py.user.next
Вот, например, я взял метод vis из твоего str.py
Офлайн
0
Rodegast
Ну что же вы к человеку пристали? У него вполне вменяемый проект, хотя он и не без проблем.Например:1) Много мест в коде которые нужно переделать. Например вместо:
Офлайн
0
py.user.next
#!/usr/bin/env python2 # -*- coding: utf-8 -*- import sys from pylint import epylint as lint argv = sys.argv modname = argv[1] #(pylint_stdout, pylint_stderr) = lint.py_run(modname, return_std=True) #lint.py_run(modname) lint.py_run()
Fatal Python error: Py_Initialize: Unable to get the locale encoding File "/usr/lib/python2.7/encodings/__init__.py", line 123 raise CodecRegistryError,\ ^ SyntaxError: invalid syntax Current thread 0x00007f13dc640400 (most recent call first):
Офлайн
857
frpaulДля каждой версии питона свой линтер. Для второго - pylint, для третьего - python3-pylint. И так со всеми пакетами, потому что python3 не совместим с python2.
По поводу pylinter. Установил версию для python2, но по умолчанию в Arch Linux 3й питон.
frpaulВот книжка по питону
С примером будет проще разобраться.
Отредактировано py.user.next (Дек. 5, 2016 02:08:12)
Офлайн
0
Да, спасибо. Dive into python есть, кое-что читал, но учился по Линцу, или как там его. А в Дайве есть что-то про тесты?
За примеры спасибо.
Насчёт второго и третьего питона я понял. Просто не пойму, почему линтер для второго питона в обертке не работает. Может я вывод не туда направляю?
Офлайн