|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||||||||||
Изучаем Python по книге Лутца17.04.2020, 12:37. Показов 9197. Ответов 87
Метки нет (Все метки)
на 490 стр 5 того издания 1 части Лутца встречаются первые задания по практики...
1. Написание базовых циклов. В данном упражнении предлагается поэкспериментировать с циклами for. а) Напишите цикл for, который выводит код ASCII каждого символа в строке по имени S. Для преобразования символа в целочисленный код ASCII используйте встроенную функцию ord (символ). Формально функция ord в Python З.Х возвращает кодовую точку Unicode, но если вы ограничите содержимое строки символами ASCII, то будете получать обратно коды ASCIL (Опробуйте ее интерактивно, чтобы посмотреть, как она работает.)
здесь что то пошло не так..
1
|
|||||||||||
| 17.04.2020, 12:37 | |
|
Ответы с готовыми решениями:
87
Объясните текст из книги Лутца "Изучаем python" М. Лутц Изучаем Python. Том 1 Лутц Марк - Изучаем Python. 5 издание |
| 31.05.2020, 15:20 | ||||||
|
coa3, У Лутца, в главе посвященной спискам, есть таблица наиболее распространенных средств для работы со списками. Но там просто перечисляются команды. Я же дополнил список пояснениями к каждой команде, что бы уже из этого списка можно было выбрать нужную команду. И после этого смотреть ее синтаксис в справочнике, ссылку на который я тебе давал.
Таблица 8.1. Распространенные списковые литералы и операции Кликните здесь для просмотра всего текста
1
|
||||||
| 02.06.2020, 14:53 | ||||||||||||||||
|
coa3, Я, полазив по интернету, наконец разобрался с тем, что такое хеширование. Это важно понимать при создании словарей. Так как ключами словаря могут быть только хешируемые объекты.
Не буду пока забивать тебе голову теорией хеширования, разберем ее как нибудь потом, при случае. Хешируются только неизменяемые объекты, изменяемые не хешируются. Поэтому ключами в словаре могут быть числа, строки, кортежи и другие неизменяемые объекты. А например списки и множества (если они не frozenset) не могут быть ключами. А вообще, если есть сомнение, можно ли использовать объект в качестве ключа в словаре (например экземпляр класса, которые ты будешь изучать позже), то следует использовать встроенную функцию hash(object). если она возвращает значение хеша, то значит объект хешируется.
Добавлено через 7 минут Кстати по поводу экземпляров класса. Для некоторых классов их экземпляры хешируются, а для некоторых нет. Поэтому важно, прежде чем использовать экземпляры класса в качестве ключей словаря, проверять их на хеширование с помощью функции hash(object). Но ты пока голову себе этим не забивай, пока не начнешь изучать ООП (объектно ориентированное программирование) во втором томе книги Лутца.
0
|
||||||||||||||||
| 03.06.2020, 15:18 | |||||||||||||||||||||||||||||||||||||
|
coa3, Я освежал в памяти работу с функцией zip(). Ее синтаксис:
Дан список
Там же дано решение
Я объясню, но не расстраивайся, если не поймешь. Для понимания этого примера нужен опыт. Главное запомни этот пример, позволяющий разбивать последовательность на пары, тройки, четверки элементов и так далее. Итак объясняю. Во первых нужно разобраться, какая звезда "*" работает первой. Поэкспериментировав я выяснил, что первой работает вторая звезда. Возможно здесь действует правило, которого я не знаю. Возможно оператор умножения (вторая звезда) имеет приоритет, или возможно распаковывающая звезда (которая первая) всегда выполняется последней. Дальше я написал код, который помог мне разобраться.
[iter(seq)] * 2 возвращает список, элементами которого является один и тот же итератор взятый дважды. [<list_iterator object at 0x0000023C40C58160>, <list_iterator object at 0x0000023C40C58160>] Как станет ясно дальше, это именно один и тот же итератор, к которому мы можем обращаться из двух мест (а не два одинаковых итератора). Дальше list(map(list, [iter(seq)] * 2)) возвращает [[1, 2, 3, 4, 5, 6], []] Так как функция map() применяет функцию list() сначало к первому элементу списка, а потом ко второму то полученный результат говорит о том. что оба элемента списка это один и тот же итератор. Тут я вспомнил, что при обращении к итератору, его содержимое не просто читается по одному элементу, а забирается из него. Поэтому первое применение функции list() забирает все элементы из итератора, а второе ее применение обращается к уже опустевшему итератору (так как это один и тот же итератор) и поэтому выводится пустой список [] . Теперь становится понятно, как работает list(zip(*([iter(seq)] * 2))) 1) Итератор умножается на 2 и получаем список из одного и того же итератора но размещенного в двух местах в списке (по смещению 0 и по смещению 1) . Первая звезда распаковывает этот список. В результате мы получаем у функции zip() два аргумента zip(arg1, arg2). Но что интересно, оба аргумента, это один и тот же итератор, но взятый и в качестве первого аргумента и в качестве второго. Дальше как с этими аргументами работает функция zip(arg1, arg2) . Она берет один элемент из arg1 (тем самым забирая первый элемент из итератора, то есть "1"), затем берет один элемент из arg2. Но это тот же итератор, из которого уже забран элемент "1", поэтому берется элемент "2". Функция zip() формирует из этих элементов пару (1, 2). Затем она берет следующий элемент из arg1, это будет "3", и затем следующий элемент из arg2, это будет "4", и формирует пару (3, 4) и так далее, пока итератор не опустеет. Если сейчас не понял, позже поймешь, когда будет больше опыта. а пока просто запомни, как можно разбивать последовательность на двойки, тройки, четверки и так далее.
coa3, Вообще то я не совсем правильно выразился написав что zip(<list_iterator object at 0x0000023C40C58160>, <list_iterator object at 0x0000023C40C58160>) Цифры показывают адрес в оперативной памяти, где размещен объект, в нашем случае итератор списка. Можно увидеть, что адрес в памяти, на который указывают ссылки, один и тот же.
1
|
|||||||||||||||||||||||||||||||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
| 20.08.2020, 15:42 [ТС] | |
|
фух, прочитал книгу в 720 страниц о XTML И CSS Фримана. даже успел теперь соскучится по питону. с чего же теперь начать- продолжить в изучении питона...?
0
|
|
| 20.08.2020, 16:17 | ||
|
Лутц М. Программирование на Python. Том 1 (4-е издание, 2011) и Лутц М. Программирование на Python. Том 2 (4-е издание, 2011) где есть часть посвященная веб программированию. Так Вы на чем остановились при изучении питона? На какой странице? Добавлено через 3 минуты Из этого двухтомника Вам понадобится только глава 1 и затем часть, посвященная веб программированию.
0
|
||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||
| 20.08.2020, 16:50 [ТС] | |||
|
Добавлено через 4 минуты
0
|
|||
|
5037 / 1064 / 149
Регистрация: 29.01.2013
Сообщений: 6,215
|
|
| 20.08.2020, 17:13 | |
|
coa3, начинайте помогать на форуме страждущим. Вам, перед вторым прочтением книг по пайтону, надо много-много практики языка.
0
|
|
| 20.08.2020, 19:50 | |
|
coa3, Изучайте главу 19. Что будет не понятно, то спрашивайте.
0
|
|
| 20.08.2020, 19:50 | |
|
Помогаю со студенческими работами здесь
88
Не работает код Эрик Матиз - Изучаем Python, упражнение 19.1
Исходники к книге Дэвида Гриффитса - Изучаем программирование на с
Проект на PyGame из книги «Изучаем Python. Программирование игр, визуализация данных, веб-приложения», Мэтиза Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|