Форум сайта python.su
У меня есть 2 файла: main.py и data12.py. Из файла мейн я обращаюсь к дате:
import data12
print u'Начинаем';
data12.begin1();
def beg2():
print u'Продолжаем';
def begin1():
print 'Its work';
beg2();
Офлайн
перенести определение функции beg2 в модуль data12
Офлайн
Так Вам надо сделать импорт main в data12.py
Офлайн
Вообщем вот полные исходники:
main.py:
# -*- coding: utf-8 -*-
import time
import random
import data12
x=0;
def ea1():
test1 = random.choice([1,2,3,4]);
if (test1 == 1):
data12.ea1_1();
elif (test1 == 2):
data12.ea1_2();
elif (test1 == 3):
data12.ea1_3();
elif (test1 == 4):
data12.ea1_4();
def chimia1():
print '';
print u'Выберите сложность:';
print '-------------------------';
print u'(1) - Легко';
print u'(2) - Средний';
print u'(3) - Сложно';
print '-------------------------';
ch2 = input('----> ');
if (ch2 == 1):
ea1();
elif (ch2 == 2):
ea2();
elif (ch2 == 3):
ea3();
else:
print u'Ошибка!';
start1();
def start1():
print '';
print u'Выберите раздел:';
print '-------------------------';
print u'(1) - Химия';
print '-------------------------';
ch1 = input('----> ');
if (ch1 == 1):
chimia1();
else:
print u'Ошибка!';
print u'Тесты.';
start1();
# -*- coding: utf-8 -*-
import time
import random
x=0;
def ea1_1():
print '';
print u'Какая валентность у водорода?';
print '1) 1';
print '2) 2';
print '3) 3';
print '4) 4';
an1 = input('----> ');
if (an1 == 1):
print u'Верно!';
time.sleep(1);
global x;
x += 1;
ea1();
else:
print u'Неверно!';
print u'Ваш счет: ' + `x`;
time.sleep(1);
start1();
def ea1_2():
print '';
print u'Высшая степень окисления азота?';
print '1) -3';
print '2) -1';
print '3) +4';
print '4) +5';
an1 = input('----> ');
if (an1 == 4):
print u'Верно!';
time.sleep(1);
global x;
x += 1;
ea1();
else:
print u'Неверно!';
print u'Ваш счет: ' + `x`;
time.sleep(1);
start1();
def ea1_3():
print '';
print u'Какая степень окисление у серы в молекуле: H2S';
print '1) -1';
print '2) -2';
print '3) +1';
print '4) +2';
an1 = input('----> ');
if (an1 == 2):
print u'Верно!';
time.sleep(1);
global x;
x += 1;
ea1();
else:
print u'Неверно!';
print u'Ваш счет: ' + `x`;
time.sleep(1);
start1();
def ea1_4():
print '';
print u'Связь в молекуле O2:';
print u'1) Ковалентная';
print u'2) Ионая';
print u'3) Металлическая';
print u'4) Водородная';
an1 = input('----> ');
if (an1 == 1):
print u'Верно!';
time.sleep(1);
global x;
x += 1;
ea1();
else:
print u'Неверно!';
print u'Ваш счет: ' + `x`;
time.sleep(1);
start1();
Отредактировано (Янв. 7, 2011 01:11:40)
Офлайн
сори что не в тему но точку с запятой не обязательно ставить в конце строки
Офлайн
bazookaЭто издержка из других языков, уже привык). Без нее код глаза режит.
сори что не в тему но точку с запятой не обязательно ставить в конце строки
Отредактировано (Янв. 7, 2011 01:37:33)
Офлайн
Для начала уберите точку с запятой. А то глаз режет всем остальным. Теперь главное: у вас совершенно неправильный подход к задаче. Храните свои вопросы в виде, например, списка словарей в модуле data.py, что-то типа:
[
{ 'subject': u'Химия',
'levels': [
{'verbal': u'Легкий',
'questions': [
{'question': 'u'Какая валентность у водорода?', 'answers': ['1','2', '3', '4'], 'right': 1},
...
]
},
...
]
},
...
]
Офлайн
PooHМожно, пожалуйста, поподробнее на этому тему. Питон изучаю третий день. Я понять не могу что это, как к этому обратиться и как это дополнять)
Для начала уберите точку с запятой. А то глаз режет всем остальным. Теперь главное: у вас совершенно неправильный подход к задаче. Храните свои вопросы в виде, например, списка словарей в модуле data.py, что-то типа:И в основном модуле процедуру которая будет опрашивать пользователя на основе этих данных, и никаких циклических импортов не понадобится. А со временем можно будет и данные в базу перенести ;)[
{ 'subject': u'Химия',
'levels': [
{'verbal': u'Легкий',
'questions': [
{'question': 'u'Какая валентность у водорода?', 'answers': ['1','2', '3', '4'], 'right': 1},
...
]
},
...
]
},
...
]
Отредактировано (Янв. 7, 2011 15:22:30)
Офлайн
почитай че такое циклы
Офлайн
guranvirэто вредно, т.к. подключится не загруженный модуль main, а загрузиться дубль модуля
Так Вам надо сделать импорт main в data12.py
Офлайн