Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 8

Объясните, пожалуйста, код Python

08.06.2017, 15:16. Показов 1614. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разбирающиеся в python люди, пожалуйста, объясните код девушке, которая ничего в этом не смыслит, но очень хочет понять.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env python
# -*- coding: cp1251 -*- # для работы с русским языком
import sys #вводим библиотеку сис для работы с параметрами
 
clause_error = 0 # проверка ввода верного названия документа
punct = [".", "!", "?"] # список, где содержится вся пунктуация
new_list = [] # новый список, где будет сохранён обработанный текст
wword = 0 # что это значит?
word_count = 0 #подсчёт количества слов в строке
try: #вводим конструкцию для обработки исключений
    text = open(sys.argv[1], "r")# открываем документ
    text_from_doc = text.readlines()# считываем все строки документа
    text.close() # закрываем документ
except IOError: # при ошибке ввода названия документа, выдает ошибку и пишет следующее
    print "В данной папке, где расположен скрипт, нет документа с таким названием, пожалуйста проверьте правильность ввода названия документа" .decode ("cp1251")# зачем нужен decode ("cp1251")
    clause_error = 1 # что имеется в виду?
 
if clause_error == 0: #проверка отсутствия ошибки ввода
    for string in text_from_doc: # цикл, проверяющий каждую строку документа
        split_string = string.split()# разделяем каждую строку на слова
        for word in split_string: # цикл, проверяющий каждое слово строки
            new_list.append(word) #добавляем каждое проверенное слово в новый список
            word_count += 1 #подсчёт количества слов в строке
            for punc in punct: # цикл, перебирающий каждый знак пунктуации из списка
                if word[-1] == punc: # что это за условие?
                    try: # проверка на конец абзаца, если это конец абзаца, то при попытки задать переменной right значение, выйдет ошибка индекса, так как там ничего нет, следовательно это конец абзаца
                        right = split_string [word_count] # сама переменная, что это означает split_string [word_count] ? 
                        
                        if word[-2] >= "А" and word[-2] <= "Я": # проверка на инициалы, word[-2]  - ?
                            pass
                        if right[0] >= "А" and right[0] <= "Я": # условия конца предложения, это условие того, что после найденного знака пунктуации идёт заглавная буква
                            if (word[-2] >= "а" and word[-2] <= "я") or (word[-3] >= "а" and word[-3] <= "я") or (word[-4] >= "а" and word[-4] <= "я"): #условие того, что до точки идёт строчная буква, также идёт условие на найденное многоточие
                                new_list.append("END_OF_SEN!") # если условия удовлетворены, то подписывает после точки слеующую фразу
                        
                    except IndexError: # при ошибке задачи значения переменной right подписывает следующую фразу как к кнцу абзаца
                        for i in word: # перебирает каждый элемент слова
                            wword += 1 # делается подсчёт элементов
                        if wword > 2: # если в строке больше двух букв, тогда это конец абзаца
                            new_list.append ("-END!")
                        wword = 0 # обнуляем количество букв
        if new_list[-1] != "-END!": # если не найдено такое слово, то добавь это слово в новый список для тех случаев, когда в конце абзаца нет знака пунктуации
            new_list.append ("-END!")
        word_count = 0 # обнуение количества слов в строке, для проверки новой строки
    output_document = open(sys.argv[2], "w") # открытие документа с названием второго параметра
    for w in new_list: # проверка каждого объекта в новом списке
        w_sp = str(w) # перевод объекта в тип строка 
        w_sp1 = w_sp + " " # добавление к слову пробела
        if w_sp == "-END!": # если объект равен следующей строке, то это конец абзаца и добваляет к нему перевод на следующую строку
            output_document.write(w_sp1 + "\r\n") # написание в открытй документ, что здесь значит r\n
        else: # в другом случае, это не является концом абзаца, а следовательно просто пиши в строку
            output_document.write(w_sp1) # написание в открытый документ
    output_document.close()
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.06.2017, 15:16
Ответы с готовыми решениями:

Объясните, пожалуйста, код python
fileName = raw_input('Enter fileName: ') n = input('Enter N: ') if n == 1: freq1(fileName) elif n == 2: ...

Объясните код, пожалуйста
def makechange(money, coin_values): #base cases if money &lt;= 0: # No change needed return 0 #base case (only...

Объясните, пожалуйста, код
Объясните, пожалуйста, код: while D: min = D D - это заданный массив Не понимаю какое условие в while

3
2 / 2 / 7
Регистрация: 08.05.2013
Сообщений: 139
08.06.2017, 18:36
Лучший ответ Сообщение было отмечено irinamiass2212 как решение

Решение

16 строка:
Python
1
clause_error = 1
- если будет ошибка при открытии файла, то дальше код не пойдёт, условие
Python
1
if clause_error == 0
25 строка:
Python
1
if word[-1] == punc
- если последний символ один из знаков препинания

29 строка: word[-2] - предпоследний символ


...Вроде на всё ответил
1
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 8
08.06.2017, 19:13  [ТС]
Скажите, а что означает .decode ("cp1251") 15 строка
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
08.06.2017, 19:48
irinamiass2212, это значит декорование текста из кодировки cp1251 в utf8.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.06.2017, 19:48
Помогаю со студенческими работами здесь

Объясните пожалуйста
Здравствуйте! Недавно начал изучать Python и появился вопрос. it1= iter() print Почему перед print пишется...

Объясните, пожалуйста, данный код на python
n = int(input()) if n % 2 == 0: n -= 1 for i in range(n, 1, -2): print(i)

Объясните пожалуйста код
n,m=int(input()), int(input()) a= for j in range(n)] for i in range (n): for j in range (m): print(a,...

Объясните код пожалуйста
def to_jaden_case(string): return ' '.join(w.upper() + w for w in string.split())

Объясните, пожалуйста, код
Привет, в университете проходим основы питона в Google Colaboratory. Не могли бы вы, пожалуйста, объяснить, смысл кода ниже? Первые два...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru