Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - помогите новичку с питоном.

Ответить
Настройки темы
Теория - помогите новичку с питоном.

Старожил


Сообщения: 292
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


У меня есть файл с данными по тесту(txt). испытуемые отвечали на 14 вопросов по 5 раз. Испытуемые отделены друг от друга пустой строкой. там помечено 1 значит испытуемый правильно ответил, 0 — ошибся. Подскажите какой написать код, чтобы вычислить вероятность ошибки для каждого из испытуемых и вывести эти вероятности на экран.
Иными словами каждый испытуемый всего прорешал 70 задач.что решил правильно, то 1.
Если сложить все решенные задачи и поделишь на 70, то получишь вероятность того, что испытуемый решит правильно следующую задачу.
буду благодарен за помощь.

Отправлено: 20:26, 14-03-2013

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата kontox:
буду благодарен за помощь. »
Интересно, насколько циничным будет дать ссылки на документацию?
1 2 3 4 5 6 7 http://docs.python.org/3/
...
Цитата kontox:
У меня есть файл с данными по тесту(txt) »
PHP код: Выделить весь код

if __name__ == '__main__':
    
main()

    
os.chdir('D:\\site'
    
cwd os.getcwd()

    
tf="D:\\site\\access.log" 

Версия Windows.

PHP код: Выделить весь код

open(textfile)#textfile-- переменная с именем файла
    
f.seek(0)

    
newfile="D:\\site\\file.txt"
    
nf=open(newfile,mode='wt')
    
nf.seek(0

подробнее
Цитата kontox:
Испытуемые отделены друг от друга пустой строкой. »
PHP код: Выделить весь код

for lines in f:
        
#анализ строк файла 

Цитата kontox:
там помечено 1 значит испытуемый правильно ответил, 0 — ошибся »
Помечено не известно как, поэтому предложу использовать функцию split с дальнейшим анализом.
Цитата kontox:
Если сложить все решенные задачи и поделишь на 70, то получишь вероятность того, что испытуемый решит правильно следующую задачу. »
С арифметикой я надеюсь справитесь самостоятельно.
Для работы с файлами сделать импорт соотв. библиотек:

PHP код: Выделить весь код

import ossysfnmatchlinecache
import fileinput 

Объявление процедуры:
PHP код: Выделить весь код

def begin_parsing(textfile): 


-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Последний раз редактировалось lxa85, 14-03-2013 в 21:30.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:18, 14-03-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 292
Благодарности: 0

Профиль | Отправить PM | Цитировать


lxa85, Вы неоценимы. Уважаю профессионалов и искренне рад помощи.

касательно разделены строкой это так

0,1,0,1,0,1,1,1,0,0,1,1,1,1
1,0,1,0,1,1,1,1,1,0,1,1,1,0
1,0,1,0,1,0,0,1,1,1,0,1,1,1
1,0,0,1,1,1,1,0,0,0,1,1,1,0
1,0,0,1,1,1,1,1,1,0,1,1,1,1

0,1,1,1,0,1,0,0,1,0,1,1,1,0
1,1,1,1,0,1,1,1,1,0,1,1,0,0
1,1,1,1,1,0,1,1,1,0,0,1,1,0
1,1,1,1,0,1,1,1,1,0,1,1,1,0
1,1,1,0,1,0,1,1,1,0,1,1,1,1

Отправлено: 21:49, 14-03-2013 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


PHP код: Выделить весь код

def main():
    
pass

if __name__ == '__main__':
    
main()
    
s='0,1,1,1,0,1,0,0,1,0,1,1,1,0'
    
splts=s.split(',')
    print (
splts)
    
one=0
    
for i in s:
        if 
i=='1':
            
one=one+1
    
print (one

Остатки было роскоши. "Хождение по директориям"
Кусок скрипта с рабочими помарками.

PHP код: Выделить весь код

def walk(dir):
  for 
name in os.listdir(dir):
    
path os.path.join(dirname)
    if 
os.path.isfile(path):
        (
dirnamefilename) = os.path.split(path#get dirname and filename
        
(shortnamefextension) = os.path.splitext(path)
        
#if fextension==mask :
        #    getpart(path) #begin parsing
    
else:
        
walk(path)
        for 
names in os.listdir(dir):
           print(
names)

        (
dirnamefilename) = os.path.split(path#get dirname and filename
#        for names in os.listdir(dir):
#            print(names)
##        (shortname, fextension) = os.path.splitext(path)
        #if fextension==mask :
        #    getpart(path) #begin parsing
        #print('work done at ',path)
#        print('work done at ',filename)
        
number str.split(filename,' ')
        
#number[0]
        
lennum str.split(number[0],'.')
        if 
len(lennum)==:
            for 
names in os.listdir(dir):
                print(
names)

            print(
'work done at ',filename)

def main():
    
pass
if __name__ == '__main__':
    
main()
#    print (sys.argv)
#    work_dir = os.path.dirname(sys.argv[0])
#get work directory. Now it's a constant,
    
os.chdir('D:\\Temp')
    
cwd os.getcwd()
    
walk(cwd

Все остальное банально и не интересно:
Анализ пустой строки и арифметика.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:10, 14-03-2013 | #4


Старожил


Сообщения: 292
Благодарности: 0

Профиль | Отправить PM | Цитировать


да с арифметикой разберусь это самое простое
Вопрос только по коду
1. самое первое я сначала импортирую библиотеку, и только потом начинаю объявлять процедуру? Такова последовательность?

2. касательно разделения

сначало пишу for lines in f:
а потом уже
def main():
pass

if __name__ == '__main__':
main()
s='0,1,1,1,0,1,0,0,1,0,1,1,1,0'
splts=s.split(',')
print (splts)
one=0
for i in s:
if i=='1':
one=one+1
print (one)

3. кусок с крипта, где вы дает пояснения #
он к чему относится.

lxa85, простите ,что вопросами мучаю, но это мой первый опыт. с глазами по полтиннику смотрю.

Отправлено: 22:42, 14-03-2013 | #5


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Ну что же ты глупенький то какой. Я сам питон не знаю, осваиваю по чуть чуть . Мне самому не совсем понятен фокус с функцией main. Поэтому действовал по правилу сначала описываются функции, а только потом они вызываются (как в паскале, можно использовать то, что определено ДО, а не ПОСЛЕ).
У тебя получится что то вроде:
PHP код: Выделить весь код

#-------------------------------------------------------------------------------
# Name:
# Purpose:
#
# Author:      
#
# Created:     30.10.2012
# Copyright:   (c) lxa85 2012
# Licence:     <your licence>
#-------------------------------------------------------------------------------

import ossysfnmatchlinecache
import fileinput

mask 
'.txt'
student = [] #Массив студентов, пока глобальный и пустой

def lineparser(texfile):
  
#  os.path.abspath (texfile,"r")
    
open(texfile)
    
f.seek(0)
    
vopros #Кол-во вопросов. Получим в процессе
    
st #Счетчик студентов по порядку
    
student student.append()# Первый

    
for lines in f:
        if 
lines == '':
            
#Добавляем студента, код дополнить "по вкусу"
            
student student.append()
            
student[st] = one vopros
            
#Новый студент, новые отметки
            
one 0
            vopros 
0
            st 
st 1
            
#Пропускаем дальнейшую обработку
            
continue

        
# Разбор строки
        
splts linestr.split(',')
        
#print (splts)

        
vopros vopros len(splts)
        for 
i in s:
            if 
== '1':
                
one one 1

    f
.close()

def walk(dir):
# рекурсивный обход дирректори.
# мне был необходим, ты смотри по надобности
  
for name in os.listdir(dir):
    
path os.path.join(dirname)
    if 
os.path.isfile(path):
        (
dirnamefilename) = os.path.split(path#get dirname and filename
        
(shortnamefextension) = os.path.splitext(path)
        if 
fextension==mask :
            
#print(filename)
            
lineparser(path#begin parsing
    
else:
        
walk(path)

def main():
    
pass

if __name__ == '__main__':
    
main()
    
cwd os.getcwd() #get current dir
    #print (cwd)
    #os.listdir(cwd)
    
    #begin walk in directory
    
walk(cwd)

    
#Посмотрим, что получится?
    
for i in student:
        print (
i

Возьми какую-нибудь среду разработки. Меня например PyScripter спасает. Есть у него пара недочетов, но набросать простенькую задачу -- мне за глаза.
P.S. Разумеется первая фраза не в обиду, просто первая пришла на ум и понравилась. В хорошем смысле

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:09, 15-03-2013 | #6


Старожил


Сообщения: 292
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да ладно, все ок. Я тоже развиваюсь))

Отправлено: 10:11, 15-03-2013 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - помогите новичку с питоном.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Debian/Ubuntu - Помогите новичку lllypyn Общий по Linux 9 20-02-2013 13:20
2008 - Помогите новичку! Yara17 Windows Server 2008/2008 R2 1 01-06-2012 11:43
FreeBSD - Помогите новичку suzukialek Общий по FreeBSD 13 13-11-2010 10:46
Помогите новичку Тата Лечение систем от вредоносных программ 1 04-11-2009 14:25
Помогите новичку:) kop4enyi Вебмастеру 6 26-10-2006 22:52




 
Переход