|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||||||||||
Изучаем Python по книге Лутца17.04.2020, 12:37. Показов 9170. Ответов 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 издание |
| 09.05.2020, 20:33 | |
|
coa3, У меня стоит Microsoft Visual Studio Community 2017. Visual Studio Code помоему из той же серии, хорошая IDE (среда разработки). Парень, который изучал питон, потом перешел к программированию на С#, при этом по рекомендации тех к кому устроился работать, он с Pycharm перешел на Visual Studio Code.
Добавлено через 1 час 10 минут coa3, И так, у тебя как я понял сложности с усвоением механизма рекурсии. Попробую помочь тебе объяснить механизм работы рекурсии, по крайней мере как я его понимаю. Для того, что бы разобраться с рекурсией, нужно усвоить ряд важных понятий. Начнем с понятия "пространство имен". Пространством имен является множество переменных (или как еще называет Лутц "пакет переменных"), отличие которых в том , что их значения можно не только читать (как у переменных из области видимости), но и изменять их значения (то есть они доступны не только для чтения, но и для записи). Пространство имен, привязано к конкретному месту (точке) в коде, то есть к конкретной строке кода. Это видно из того, что если мы встречаем в коде инструкцию присваивания, создающую новую переменную, например x = 5, то пространство имен до этой строки не будет содержать переменную x, а после этой строки уже будет содержать переменную x. Причем заметим, переменные в пространстве имен для каждой строки (точки) кода будут иметь вполне конкретные значения. Такое пространство имен с их значениями в данной точке кода Лутц называет "сохраненное состояние". Это понятие очень важно в механизме рекурсии. Еще одно важное понятие для рекурсии, это "стек". Что такое стек и как он работает. Стек, это такая последовательность элементов, для которой применимы два метода: 1) добавить элемент в стек, 2) взять элемент из стека. И работает такое правило, "Элемент пришедший в стек последним, берется из стека первым". Так вот, в случае рекурсии, при каждом вызове функции запоминается состояние функции (сохраненное состояние) для данного места и данного момента времени вызова функции (для данного шага рекурсии), и это сохраненное состояние помещается в стек рекурсии. Потом, когда мы будем получать значения возвращаемые функцией, соответствующей данному шагу рекурсии, автоматически из стека будет возвращаться сохраненное состояние для данного места кода для данного шага рекурсии, так что бы номер шага обратного хода рекурсии соответствовал номеру шага прямого хода рекурсии. Это обеспечивает правильную работу функции на каждом шаге рекурсии. Не знаю понял ли ты. Может найдешь где то более понятное объяснение рекурсии. Я в 5-ом издании Лутца про рекурсию еще не читал. Может у него объяснено более понятно. Но думаю мое разъяснение лишним не будет. ![]() Добавлено через 2 часа 15 минут coa3, Я думаю, что ты получил общее представление о рекурсии. А более глубокое изучение можно отложить на потом, если возникнет необходимость решить задачу с использованием рекурсии. А пока, если закопаешься с примерами, которые дает Лутц и которые достаточно сложные, то оставь их и переходи к изучению следующего раздела "Объекты функций: атрибуты и аннотации" на стр. 580.
1
|
|
|
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
|
|
| 09.05.2020, 20:40 | |
|
Viktorrus, VSC the best
0
|
|
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||
| 09.05.2020, 21:05 [ТС] | ||
|
0
|
||
| 09.05.2020, 23:37 | |
|
coa3, Для расслабления мозгов, как закончишь эту часть займемся решением задач на питоне. А вообще то нужно чередовать занятия. Устал от программирование, погуляй или поиграй во что нибудь или фильмы посмотри. xtml это язык разметки для создания статических сайтов. Для наполнения сайтов скриптами, необходимо программировать на одном из языков программирования для web. У Лутца в книге "Программирование на Python." Том 2 (4-е издание, 2011) целая часть на 600 страниц посвящена web программированию. Но если ты собираешься в будущем заняться web програьмированием, то можно пока познакомится с языком xtml.
0
|
|
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||
| 10.05.2020, 20:28 [ТС] | ||
|
к стати а html и css полезны для питона или для них нужен больше js? а для питона только свой фреймворк?
0
|
||
| 11.05.2020, 02:31 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
| 11.05.2020, 15:06 [ТС] | |
|
0
|
|
| 11.05.2020, 15:26 | ||
|
Но если уж совсем не в моготу, то можем заняться решением задач, но может придется по ходу обращаться к таким темам, как lambda функция или map, которые в конце этой главы. Добавлено через 7 минут coa3, Когда перейдем к решению задач, то будем это делать по следующей схеме. Я буду выбирать на форуме подходящую задачу, копировать сюда, и давать тебе всю необходимую информацию для решения, алгоритм, используемые инструкции с их синтаксисом. Ты будешь писать код. Потом усложним. Я буду давать только инструкции с их синтаксисом, а алгоритм уже будешь составлять сам. Ну и потом, я только буду подбирать задание, а решать его ты будешь сам. И во всех этих случаях будем делать подробный разбор решения.
1
|
||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
| 15.05.2020, 17:22 [ТС] | |
|
0
|
|
| 16.05.2020, 01:43 | ||||||
|
coa3, Реши задачу
Перевернуть tuple Добавлено через 2 минуты Решение выложи здесь и мы его разберем Добавлено через 43 минуты Сначала нужно составить алгоритм. Я обычно делаю так. Беру простой пример и решаю его на бумаге. Затем пишу код и в пошаговом режиме проверяю его. Из условия сразу ясно, что здесь задача разбивается на два варианта, когда количество элементов четное и когда не четное. Это значит должно быть ветвление с помощью оператора if на два решения. if четное: ... else: ... Возьмем простой пример: (1, 2, 3, 4, 5, 6) - четное количество элементов Что бы поменять местами первую и вторую половины, нужно выделить их используя срезы и получить t1 = (1, 2, 3) t2 = (4, 5, 6) и сделать конкатенацию t3 = t2 + t1 Нужно продумать, как получить эти срезы для четного количества элементов и для нечетного. Я разобрался написав код (сначала для четного случая) и пробуя разное написание срезов и выполняя код отладчиком используя точки останова и анализируя получаемые значения среза. Для нечетного случая (1, 2, 3, 4, 5), который будет помещен в блок else будет немного посложнее. Но поэкспериментировав можно подобрать нужные срезы и в этом случае. Только предварительно нужно найти смещение центрального элемента. Добавлено через 8 минут И не забывай, что счет смещения в последовательности начинается с нуля "0". Синтаксис среза
X[I:J] означает: «извлечь из X все, начиная со смещения I и до смещения J, но не включая его». Возвращает новый объект, например для списка возвращает новый список. X[I:J:K] означает: «Извлечь все элементы последовательности X, начиная со смещения I, вплоть до смещения J-1, с шагом K». Добавлено через 3 минуты Решил скопировать задание сюда, что бы постоянно не мотаться по ссылке. **************************************** **************************************** **** На одной строке вам даны числа. Сохраните данные числа в tuple. Затем, разделив tuple на два, переставьте местами первую и вторую половину местами. Если количество чисел в tuple нечетное, первая половина должна содержать количество чисел на одно больше, чем вторая половина. Вводные данные: вам даны числа написанные на одной строке. Исходные данные: выведите ответ на задачу. вод: 4 8 5 9 1 3 8 8 7 3 7 2 3 7 8 5 Вывод: 7 3 7 2 3 7 8 5 4 8 5 9 1 3 8 8 Пример 2 Ввод: 3 4 10 2 4 9 4 1 2 7 4 10 Вывод: 4 1 2 7 4 10 3 4 10 2 4 9 Пример 3 Ввод: 3 3 9 4 6 8 9 6 6 1 4 7 5 Вывод: 6 6 1 4 7 5 3 3 9 4 6 8 9 **************************************** **************************************** **** Добавлено через 12 минут Если срез начинается с нуля, то есть от начала [0:J] , то 0 опускается и записывается [:J]. Если срез от I до конца, то пишут [I:] . Добавлено через 1 час 6 минут coa3, Кстати, если ты в будущем займешься web-программированием, то здесь на форуме выложили ссылки на сайт, с видео уроками. Среди которых есть и по программированию на питоне и по "Созданию веб сайтов на Python". Сохрани ссылки на будущее. Видео курс по программированию для начинающих https://www.youtube.com/channe... OPuM7keDDw https://www.youtube.com/watch?... e=youtu.be
1
|
||||||
| 16.05.2020, 12:19 | |
|
coa3, При написании программы используй справочник по питону и пользуйся отладчиком. У меня из-за возраста память уже плохая, и я не могу писать программы без справочника по питону и без отладчика. А тебе нужно пользоваться ими, так как у тебя еще не достаточно знаний и практики. К тому же, когда будешь создавать сложные программы, там без отладчика вообще не обойтись, так что набирайся опыта в его использовании.
1
|
|
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||||||
| 17.05.2020, 22:21 [ТС] | |||||||
0
|
|||||||
|
5036 / 1063 / 149
Регистрация: 29.01.2013
Сообщений: 6,209
|
|
| 17.05.2020, 22:24 | |
|
coa3, это плохая практика. Приучайте себя сразу делать правильно. А то начнёте отлаживать что-то строк на 300 кода - поседеете.
0
|
|
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||
| 17.05.2020, 23:18 [ТС] | ||
|
вместо первой строки можно вставить:
tuple = list(map(int, input().split())) Добавлено через 1 минуту
0
|
||
| 18.05.2020, 02:49 | ||||||||||||||||||||||||||||
|
coa3, У тебя ошибка. Твой код выводит
Подумай как исправить. Добавлено через 1 час 0 минут coa3, Второй блок в инструкции if должен отличаться от первого. Иначе какой смысл в ветвлении? И такое замечание, хотя на результат это не повлияет. В условии предлагается сохранить числа в tuple, то есть в кортеже, а не в списке, как делаешь ты. Хотя результат на выходе будет один и тот же. И еще, tuple, это ключевое слово питона. Своим переменным не рекомендуется давать имена ключевых слов, это может приводить к ошибкам. Можно переменную назвать, например my_tuple. И преобразовать вводимую последовательность чисел в кортеж.
Добавлено через 22 минуты Поскольку программка маленькая, можно переменную с кортежем назвать коротким именем, например t. Для коротких программ так нагляднее. Для больших программ лучше давать имена более емкие, несущие смысл того, что в них содержится. Вот как оформлен код у меня, я даю только с первым блоком в if. Во втором блоке, для нечетной длины кортежа, ошибку постарайся исправить сам.
coa3, Так что, я буду пока продолжать подбирать для тебя задачи, что бы тебе отдохнуть от теории и попрактиковаться в написании кода? Добавлено через 6 минут **************************************** ********
0
|
||||||||||||||||||||||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||||||||
| 18.05.2020, 21:59 [ТС] | |||||||||
|
Добавлено через 2 минуты первая половина должна содержать количество чисел на одно больше вторая на одно значит меньше раз сошлось, то и остановился на этом Добавлено через 12 минут в вашем варианте же первая половина (5, 6, 7) содержит на одну цифру меньше, а по условию наоборот должно быть больше..? Добавлено через 4 минуты
правильно?
0
|
|||||||||
| 18.05.2020, 23:03 | ||||||||
|
coa3, Много написал и сбросилось. Сайт вечером не стабильно работает. Повторю сокращенно.
Это срез (1, 2, 3, 4). И он на выходе перемещается в конец, 5, 6, 7, 1, 2, 3, 4 . Теперь выводит
1
|
||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
| 18.05.2020, 23:53 [ТС] | |
|
как то на таком задании подвис..((
Системный администратор вспомнил, что давно не делал архива пользовательских файлов. Однако, объем диска, куда он может поместить архив, может быть меньше чем суммарный объем архивируемых файлов. Известно, какой объем занимают файлы каждого пользователя. Напишите программу, которая по заданной информации о пользователях и свободному объему на архивном диске определит максимальное число пользователей, чьи данные можно поместить в архив. Формат ввода Программа получает на вход в одной строке число S – размер свободного места на диске (натуральное, не превышает 10000), и число N – количество пользователей (натуральное, не превышает 100), после этого идет N чисел - объем данных каждого пользователя (натуральное, не превышает 1000), записанных каждое в отдельной строке. Формат вывода Выведите наибольшее количество пользователей, чьи данные могут быть помешены в архив. Тест 1 Входные данные: 100 2 200 50
0
|
|
| 18.05.2020, 23:53 | ||||||
|
Определить каких чисел среди введенных больше: отрицательных или положительных.
**************************************** **************************************** Последовательно вводятся N чисел. Определить каких чисел среди них больше: отрицательных или положительных. Решить в Python с помощью циклов. **************************************** **************************************** Задачу можно решить двумя способами. 1) Алгоритм первого варианта. Осуществляется ввод и преобразование в числа с помощью float(), Так как в условии не говорится, что это целые числа, значит могут быть и дробные. Получаем последовательность чисел. Делаем сортировку sort(), все отрицательные разместятся спереди. Циклом for, где переменной цикла будет смещение (индекс) числа в списке, находим индекс i первого положительного числа в последовательности. Количество индексов перед i будет количество отрицательных чисел. Так как индексы начинаются с нуля, то количество индексов (а значит и отрицательных чисел) перед i будет равно i. Проверил на бумаге. Ну а количество положительных чисел будет общее количество чисел в списке минус количество отрицательных. И сравниваем каких больше. 2) Алгоритм второго варианта. Это после получения списка и уже не сортируя, просто, предварительно создав счетчики положительных и отрицательных чисел, пробежаться циклом for по списку считая счетчиками сколько каких чисел. И затем сравнить каких больше. Для первого варианта понадобится функция sort(). Ее синтаксис:
Порядок сортировки тебе указывать тоже не нужно, по умолчанию сортировать будет от меньшего к большему. Постарайся решить сам, не смотри решения которые будут предлагать по ссылке. Выложишь здесь решение, разберем его. Потом посмотришь по ссылке какие еще предложили решения.
0
|
||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||||||
| 19.05.2020, 13:43 [ТС] | ||||||
Добавлено через 1 минуту к стати, что из теории дальше неспешно читать?
0
|
||||||
| 19.05.2020, 13:43 | |
|
Помогаю со студенческими работами здесь
60
Не работает код Эрик Матиз - Изучаем Python, упражнение 19.1
Исходники к книге Дэвида Гриффитса - Изучаем программирование на с
Проект на PyGame из книги «Изучаем Python. Программирование игр, визуализация данных, веб-приложения», Мэтиза Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
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. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|