|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||||||||||
Изучаем Python по книге Лутца17.04.2020, 12:37. Показов 9380. Ответов 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 издание |
| 27.04.2020, 19:08 | ||||||||||||||||||||||
|
coa3, Разберем сначала предыдущий пример, который выполняется в интерактивном режиме.
Добавлено через 6 минут
coa3, Не получилось удобно разместить пояснения, из за того, что это в интерактивном режиме. Но если что то осталось не понятно, переспросишь. Добавлено через 11 минут
1
|
||||||||||||||||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||||||||||||
| 27.04.2020, 20:12 [ТС] | |||||||||||||
|
Добавлено через 2 минуты Добавлено через 5 минут
и значения перемножаются, но как в итоге получается вот так не пойму...
0
|
|||||||||||||
| 27.04.2020, 20:57 | |
|
coa3, Учись использовать отладчик в пошаговом режиме. С помощью него можно увидеть всю последовательность действий программы и понять ее логику, а так же понять ошибки, когда программа делает не то, что тебе нужно.
1
|
|
|
|
|
| 27.04.2020, 20:58 | |
|
Каждую строку выводит внутренний цикл, так как print там не заканчивает ввод переводом строки - вместо нее просто пробел " ".
После того как внутренний цикл отрабатывает свой диапазон срабатывает пустой print(), который наоборот вводит символ \n в stdout. И теперь новый внутренний цикл будет уже печатать цифры уже с другой строки.
1
|
|
| 27.04.2020, 21:34 | |||||||
|
Внешний цикл, берет по одному числу из диапазона от 1 до 10. И для каждого числа i из внешнего цикла Запускается внутренний цикл, где берутся по очереди числа от 1 до 10 и умножаются на текущее число i.
Рассмотрим например число 3 из внешнего цикла. Переменной i присваивается число 3 и запускается вложенный цикл. 3*1=3 3*2=6 3*3=9 ... 3*9=27 3*10=30 Как мы видим, это числа в третьей строке выводимой информации. То есть вложенный цикл формирует строку значений произведений для текущего I (в данном случае для числа 3), выводя его произведения на числа из диапазона от 1 до 10. После того, как вложенный цикл выведет на экран все произведения для текущего i в виде одной строки (числа через пробел), нужно сделать переход на новую строку. Для этого используется print() без аргументов. Все что делает этот print(), это делает переход на следующую строку, потому что в эту функцию по умолчанию заложен переход на следующую строку.
1
|
|||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
| 27.04.2020, 22:46 [ТС] | |
|
0
|
|
| 28.04.2020, 00:08 | |
|
coa3, Разбирайся, без отладчика никак. Я ничем помочь не могу, так как pycharm не знаю.
Я работаю со средой разработки Microsoft Visual Studio Community 2017. Эта версия официально бесплатная. Мощная программа, но требует более мощного компьютера чем PyCharm. В обшем со средой разработки разбирайся, без хорошего отладчика программировать не сможешь.
0
|
|
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||||||
| 28.04.2020, 12:24 [ТС] | |||||||
первые 2 строчки да, а следующую строчку уже не смог бы осилить..
0
|
|||||||
| 28.04.2020, 16:16 | ||||||||||||
|
Не берись за задания, которые тебе еще рано решать, так как они требуют знаний, которых у тебя еще нет. Не гони лошадей, а изучай главу "Аргументы". ![]() Кстати * в аргументах не усваивается сходу. Я не раз возвращался к тому месту в книге, где она объясняется. Понимание усложняется тем, что * по разному трактуется, в зависимости от того где она используется, в определении функции или в вызове функции. В определении функции * группирует аргументы, а в вызове функции наоборот разгруппировывает. Добавлено через 20 минут range(1, x+1), при x равном 3 возвращает список чисел [1, 2, 3]. В свою очередь звезда * при вызове функции распаковывает этот список в набор позиционных аргументов и мы получим:
123 В итоге, программа при N равном например 5, выведет:
1
|
||||||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||
| 07.05.2020, 14:28 [ТС] | ||
0
|
||
| 07.05.2020, 15:12 | |
|
coa3, Когда закончишь изучение части iV "Функции и генераторы", то скажешь. Тогда нужно будет вернуться назад, к изучению пропущенной главы 7 "Фундаментальные основы строк". И попутно начнем практиковаться с решением задач. Я буду выбирать с этого форума подходящие для тебя задачи. Ты будешь пробовать решить эти задачи самостоятельно, и потом будем делать подробный анализ задачи и твоего решения, здесь в твоей теме.
Добавлено через 1 минуту coa3, И задавай вопросы по изучаемому тобой материалу. Или тебе все понятно?
1
|
|
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||
| 07.05.2020, 22:20 [ТС] | |||
|
Добавлено через 1 минуту Добавлено через 23 минуты к стати по прежнему моя самая большая проблема, слабое место в цепи это циклы while и в меньшей степени for в их усложненном виде, пока я не разберусь в них на все 100, буду не верить в себя... списки, словари и все остальное, что уже прошел, намного проще и усвоилось в определенной степени, а циклы...
0
|
|||
| 08.05.2020, 02:14 | |
|
coa3, Закончишь эту часть, и закрепим пройденное решением задач, которые я сам буду подбирать тебе. А форматирование разберем подробно , но с современным синтаксисом. Форматные строки (f-string). В Лутце их нет, но я дам источник. И подробно их изучим. Это очень мощное средство форматирования. Займемся форматированием, когда закончишь изучать часть iV "Функции и генераторы".
1
|
|
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||||||||||||||||
| 08.05.2020, 14:32 [ТС] | ||||||||||||||||
|
575 стр. Лутц
[2r 3, 4, 5] [3, 4, 5] [4, 5] [5] вообще не понимаю, почему принт L печатает список с уменьшением цифр, по мне так как сумма 15 получается понятно, а что заставляет это печатать... Добавлено через 11 минут честно говоря и этот вариант тоже не очень...
577стр. что то тоже несуразное просто...
0
|
||||||||||||||||
| 08.05.2020, 19:46 | |||||||||||||||||
|
coa3, Я тебе уже как то говорил об этом, но ты видимо забыл.
Существует два режима работы интерпретатора. 1) Интерактивный режим, когда интерпретатор сразу выполняет инструкцию, как только ты ее вводишь. 2) Режим выполнения кода из файла. В интерактивном режиме например по умолчанию работает IDLE, или когда интерпретатор загружен в командной строке ОС. То, что мы находимся в интерактивном режиме, можно увидеть по подсказке >>> . И у Лутца в книге, если в напечатанном коде мы видим подсказки >>> , то это значит предлагается пример, который исполняется в интерактивном режиме, например в IDLE . В этих двух режимах существует разница в механизме вывода результата на экран. В интерактивном режиме, если мы вводим имя переменной или вызываем функцию (как у тебя) то результат выводится на экран автоматически (без использования функции print().) Когда же у нас выполняется код из файла, то вывод на экран производится только через функцию print(). Посмотрим твой пример.
Не по теме: Мне нужно отойти на 30 мин, второй пример объясню чуть позже. Добавлено через 25 минут coa3, Извини, я вывел другой пример, но твой пример, как мы видим, тоже предполагает использования интерактивного режима.
Добавлено через 4 минуты Подытожим. Конечный результат, возвращаемый функцией mysum() выводится в интерактивном режиме автоматически. А для промежуточных результатов, которые не будут в интерактивном режиме выводится автоматически, выводятся с помощью функции print(). Добавлено через 1 час 18 минут coa3, Во втором примере у тебя та же ошибка. У Лутца этот пример для интерактивного режима, ты же выводишь сюда код для файла. Ты вообще то пользуешься IDLE ? Такие примеры лучше реализовать в нем. Должно быть так
Теперь разберем работу данного примера. В нем нужно сложить все числа из списка. Мы это делаем прибавляя на каждом шаге цикла очередное значение из списка до тех пор, пока не переберем все элементы списка. Как мы это делаем. Перед циклом инициализируем переменную sum , куда будем прибавлять числа из списка. Что бы инициализировать переменную, нужно присвоить ей значение. Но что бы это значение не искажало результат, присваиваем ноль sum = 0. Затем в цикле по очереди берем по одному элементу из списка. Это можно делать разными способами, например создав переменную-счетчик и считать циклы. Затем в зависимости от номера цикла брать элемент по соответствующему его смещению в списке. Здесь же используется другой способ. После каждого шага цикла мы копируем срезом часть списка, оставляя только те элементы, которые мы еще не использовали. Поэтому при каждом шаге мы берем всегда первый элемент из списка. Прибавляем его к sum и делаем срез, в который уже не входит использованный элемент. И шаги цикла while повторяются до тех пор, пока очередной срез не вернет пустой список []. Но так, как любой пустой объект , как и число ноль, в условии питон оценивает как FALSE, то в шапке цикла while получая в условии пустой список [] , условие будет определено как FALSE, и цикл прекратит свою работу. Затем в интерактивном режиме, введя переменную sum , автоматически будет выведено ее значение, то есть сумма чисел из списка. Добавлено через 4 минуты Если из моего объяснения, что то остается не ясным, задавай дополнительные вопросы. Добавлено через 5 минут coa3, Кстати я вот что подумал, у тебя такая не приязнь к циклам не потому, что циклы для тебя сложны, а потому, что у тебя еще не достаточно опыта, что бы решать сложные задачи, а ты пытаешься решать задачи с циклами, содержимое которых требует больше знаний. И дело тут не в понимании тобой циклов, а в понимании того, что закладывается в тело цикла и требует дополнительных знаний, не связанных с циклом, как таковым. Добавлено через 9 минут coa3, Цикл while очень простой. Проверяется условие и если оно TRUE, то выполняется то, что в теле цикла. После этого управление передается снова к шапке цикла и вновь проверяется условие. И это повторяется до тех пор, пока выполняя действия в теле цикла, мы не поменяем условие на FALSE. И тогда, после передачи управления к шапке цикла, цикл увидев, что условие равно FALSE, прерывает свою работу и передает управление на следующую за циклом строку.
0
|
|||||||||||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||||||
| 08.05.2020, 21:07 [ТС] | ||||||
|
я тоже очень часто в теле когда вставляю много принтов, что бы понять, на каких то моментах, что происходит, так сказать поэтапно... вот здесь когда вставили принт с (L) как раз и стал непонятен результат вывода... вот этот... [1, 2, 3, 4, 5] [2, 3, 4, 5] [3, 4, 5] [4, 5] [5] Добавлено через 2 минуты Добавлено через 16 минут ![]() L = [1, 2, 3, 4, 5] >>> sum = 0 >>> while L: # пока L существует, то есть не пустой объект sum += L[0] # sum = 0 + 1 L = L[1:] # L = все элементы списка начиная с первого Добавлено через 2 минуты Добавлено через 3 минуты
0
|
||||||
|
|
||||||||||||
| 08.05.2020, 21:52 | ||||||||||||
P.S. Нужно почитать про теорию рекурсии. Она довольно обширная и сложная. Или посмотреть видеоуроки на эту тему. Хирьянов неплохо объясняет в курсе по Python.
1
|
||||||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
| 08.05.2020, 22:17 [ТС] | |
|
0
|
|
| 08.05.2020, 22:55 | |||||
|
То есть для использования цикла while, нужно четко определить условие, при истинности которого цикл работает повторяя одни и те же действия снова и снова, а при ложности цикл прекращает работу и передает управление в строку кода за циклом. Добавлено через 7 минут Добавлено через 12 минут Добавлено через 8 минут
0
|
|||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
| 09.05.2020, 14:23 [ТС] | |
|
установил Visual Studio Code
0
|
|
| 09.05.2020, 14:23 | |
|
Помогаю со студенческими работами здесь
40
Не работает код Эрик Матиз - Изучаем Python, упражнение 19.1
Исходники к книге Дэвида Гриффитса - Изучаем программирование на с
Проект на PyGame из книги «Изучаем Python. Программирование игр, визуализация данных, веб-приложения», Мэтиза Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|