
Python
Объясните пожалуйста эти строчки кода питон, прочитайте их, пожалуйста
Питон не могу понять код

Подсчитываются:
w.isalpha() возвращает True, если строка w состоит только из букв.
i.split() возвращает список из подстрок строки i, разбитых пробелами, табуляциями и переводами строки.
w for w in ... if ... возвращает элементы списка, удовлетворяющие условию, в виде итератора.
Всё это обёртывается в квадратные скобки, чтобы материализовать список из итератора.
len() возвращает длину списка, т.е. кол-во элементов в нём.
Реализовано, надо сказать, неэффективно: материализация списка не нужна, кол-во слов можно было посчитать по итератору вот такой конструкцией:
s.isalnum() возвращает True, если строка s состоит только из алфавитно-цифровых символов (т.е. букв и цифр).
s for s in i if ... возвращает символы из строки i, удовлетворяющие условию, в виде итератора.
И дальше опять материализуется список и вычисляется его длина. Что, опять же, можно сделать проще и эффективнее:
Да и сам файл построчно читать необязательно. Если файл маленький, то читаем целиком:
А если файл большой, то блоками фиксированного размера читать эффективнее, чем построчно.
- Кол-во строк в файле.
- Кол-во слов в файле, состоящих только из букв.
- Кол-во алфавитно-цифровых символов в файле.
w.isalpha() возвращает True, если строка w состоит только из букв.
i.split() возвращает список из подстрок строки i, разбитых пробелами, табуляциями и переводами строки.
w for w in ... if ... возвращает элементы списка, удовлетворяющие условию, в виде итератора.
Всё это обёртывается в квадратные скобки, чтобы материализовать список из итератора.
len() возвращает длину списка, т.е. кол-во элементов в нём.
Реализовано, надо сказать, неэффективно: материализация списка не нужна, кол-во слов можно было посчитать по итератору вот такой конструкцией:
words += sum(1 for w in i.split() if w.isalpha())
s.isalnum() возвращает True, если строка s состоит только из алфавитно-цифровых символов (т.е. букв и цифр).
s for s in i if ... возвращает символы из строки i, удовлетворяющие условию, в виде итератора.
И дальше опять материализуется список и вычисляется его длина. Что, опять же, можно сделать проще и эффективнее:
symbols += sum(1 for s in i if s.isalnum())
Да и сам файл построчно читать необязательно. Если файл маленький, то читаем целиком:
data = list(file)
И обрабатываем. lines = len(data)
words = sum(1 for w in i.split() if w.isalpha() for i in data)
symbols = sum(1 for s in i if s.isalnum() for i in data)
А если файл большой, то блоками фиксированного размера читать эффективнее, чем построчно.
Учит пхп нахер тебе этот питон сдался
Похожие вопросы
- Питон простенький код не могу понять в чем проблема нужно подсчитать кол во комнат площадью 9.2 кв м
- помогите понять код языка программирования Питон
- Питон 3 напишите часть кода!!
- Помогите с задачей, никак не могу понять, как именно писать код
- Что такое "параметры функций" в Пайтоне? Я никак не могу понять
- Никак не могу понять как поступить =)
- Где я могу продать код свой нейросети на языке Python или саму нейросеть?
- Как научиться решать задачи на деление и остаток в Python? Не могу понять принцип решения. Примеры задач:
- Не могу понять
- Помогите чайнику в Питоне. Как правильно перейти на другую строку в коде, чтоб он не запустился раньше времени?