Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2017, 18:10   #1
xWeLYx
Новичок
Джуниор
 
Регистрация: 28.03.2017
Сообщений: 2
По умолчанию Помогите преобразовать(сделать как можно меньше) код

Код:
import os

files = os.listdir("my_files")
print(files)

def fun1(my1,s):
    my2=my1
    while my2 != '':
        my2=f.readline()
        b = []
        s1=""
        b.append(my2)
        for j in b:
            s1=j
        s.write(s1+"\n")
    s.close()



for i in files:
    f = open('my_files/'+i, 'r')
    my1=f.readline()
    if my1 == "0.4\n":
        s = open("ler/sek4.txt", 'a')
        fun1(my1,s)
    if my1 == "0.1\n":
        s = open("ler/sek1.txt", 'a')
        fun1(my1,s)
    if my1 == "0.2\n":
        s = open("ler/sek2.txt", 'a')
        fun1(my1,s)
    if my1 == "0.3\n":
        s = open("ler/sek3.txt", 'a')
        fun1(my1,s)
    f.close()

def section(a,lo):
    s = open("ler/"+a, 'r+')
    b = s.read()
    k=0
    p1=0
    k1=0
    x12=0
    x=b.find(lo+".")
    while x!=-1:
        x=b.find(lo+".")
        k=b[x+2:x+3]
        if k==('\n'):
            break
        b=b[x+3:]
        p1+=1
        k2=int(k)
        k1=k1+k2
    x12=k1/p1
    x12=str(x12)
    s.write('Среднее по '+lo+'- '+x12)
    s.close()
section("sek1.txt")
section("sek2.txt")

section("sek4.txt")
def section3(a12):
    s = open("ler/"+a12, 'r+')
    b = s.read()
    k=0
    p2=0
    k1=0
    x=b.find("4.")
    while x!=-1:
        x=b.find("4.")
        k=b[x+2:x+3]
        if k==('\n'):
            break
        b=b[x+3:]
        p2+=1
        k2=int(k)
        k1=k1+k2
        x13=k1/p2
    x13=str(x13)
    s.write('\nСреднее по 4- '+x13)
    s.close()
section3("sek4.txt")
section3("sek1.txt")
section3("sek2.txt")



def da1(a12):
    s = open("ler/"+a12, 'r+')
    b = s.read()
    qwer=0
    x=b.find("1.1")
    while x!=-1:
        qwer+=1
        b=b[x+3:]
        x=b.find("1.1")
    s.write("\nКол-во да в 1-ом "+str(qwer))
    qwer=0
    x=b.find("1.0")
    while x!=-1:
        qwer+=1
        b=b[x+3:]
        x=b.find("1.0")
    s.write("\nКол-во нет в 1-ом "+str(qwer))
    s.close()
def da2(a12):
    s = open("ler/"+a12, 'r+')
    b = s.read()
    qwer=0
    x=b.find("2.1")
    while x!=-1:
        qwer+=1
        b=b[x+3:]
        x=b.find("2.1")
    s.write("\nКол-во да во 2-ом "+str(qwer))
    qwer=0
    x=b.find("2.0")
    while x!=-1:
        qwer+=1
        b=b[x+3:]
        x=b.find("2.0")
    s.write("\nКол-во нет во 2-ом "+str(qwer))
    s.close()

da1("sek1.txt")
da2("sek1.txt")
da1("sek2.txt")
da2("sek2.txt")


da1("sek4.txt")
da2("sek4.txt")

Последний раз редактировалось Аватар; 02.06.2017 в 15:28.
xWeLYx вне форума Ответить с цитированием
Старый 02.06.2017, 15:24   #2
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Без отступов это даже прочитать невозможно же.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 03.06.2017, 19:10   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Пара примеров:
Код:
f = open('my_files/'+i, 'r')
    my1=f.readline()
    if my1 == "0.4\n":
        s = open("ler/sek4.txt", 'a')
        fun1(my1,s)
...
Что-то вроде такого:
Код:
if my1 <=0.4:
    s = open("ler/sek"+str(my1*10)+".txt","a")
...
По аналогии, в
Код:
def da1(a12):
    s = open("ler/"+a12, 'r+')
    b = s.read()
    qwer=0
    x=b.find("1.1")
...
Добавил бы параметр и формировал бы номер, например, тут "1.1", с применением второго параметра.
par2+".1" и так в других местах.
Сокращаем if-ы и убираем описание функции.
PS: Я не настолько опытен, что бы мое предложение прошло, но думаю, что да - должно ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 05.06.2017, 16:14   #4
nick-one
Пользователь
 
Регистрация: 28.03.2017
Сообщений: 35
По умолчанию

Не смог прочитать код, буквы вроде знакомые, а что делает код не понял. xWeLYx не плохо бы написать, что делает код, комментарии к функциям и приложить пару файлов.
nick-one вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите преобразовать код на C++ в Delphi web2k Общие вопросы Delphi 12 05.09.2014 02:49
Как преобразовать, двоичный код в текст StE111 Общие вопросы Delphi 5 27.11.2013 14:26
можно ли писать php код внутри javascript инструкции if? если можно, то как это сделать? Ubihinon JavaScript, Ajax 2 20.02.2012 08:40
можно ли писать php код внутри javascript инструкции if? если можно, то как это сделать? Ubihinon PHP 2 18.02.2012 17:45
Как преобразовать код SeRhy HTML и CSS 1 17.08.2008 15:50