Объясните пожалуйста эти строчки кода питон, прочитайте их, пожалуйста
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? Не могу понять принцип решения. Примеры задач:
- Не могу понять
- Помогите чайнику в Питоне. Как правильно перейти на другую строку в коде, чтоб он не запустился раньше времени?