|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||||||||||
Изучаем Python по книге Лутца17.04.2020, 12:37. Показов 9163. Ответов 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. Программирование игр, визуализация данных, веб-приложения», Мэтиза Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|