Задания для python для начинающих: Задачи по Python 3 для начинающих от Tproger и GeekBrains
Python списки. Задачи для начинающих.
Вместе с партнерами из telegram-канала Python задачки мы собрали для тебя несколько простых задач по Python. В этой статье разберем списки.
Задача 1
Дан список некоторых целых чисел, найдите значение 20 в нем и, если оно присутствует, замените его на 200. Обновите список только при первом вхождении числа 20.
Посмотреть решение>
Мы можем использовать метод index(), который позволит получить индекс первого вхождения некоторого объекта (в нашем случае числа 20). Затем просто изменим элемент списка с этим индексом до нужного нам значения (то есть 200).
list1 = [5, 10, 15, 20, 25, 50, 20] index = list1.index(20) list1[index] = 200 print(list1)
Задача 2
Необходимо удалить пустые строки из списка строк.
Посмотреть решение>
Мы можем использовать функцию filter() для удаления объектов типа None из списка
list1 = ["Mike", "", "Emma", "Kelly", "", "Brad"] resList = list(filter(None, list1)) print(resList)
Задача 3
Дан список чисел. Превратите его в список квадратов этих чисел.
Посмотреть решение>
Мы бы могли использовать цикл for, но по отношению к памяти и скорости выполнения оптимальнее будет использовать list comprehension.
aList = [1, 2, 3, 4, 5, 6, 7] aList = [x * x for x in aList] print(aList)
Задача 4
Дан список чисел, необходимо удалить все вхождения числа 20 из него.
Посмотреть решение>
Здесь, как и в третьей задаче, будем использовать list compehension объединив его с тернарным оператором.
list1 = [5, 20, 15, 20, 25, 50, 20] def removeValue(sampleList, val): return [value for value in sampleList if value != val] resList = removeValue(list1, 20) print(resList)
Задача 5
Необходимо вывести список в обратном порядке.
Посмотреть решение>
Самым простым решением станет срез. При указании шага среза -1, мы получим тот же список, но в обратном порядке.
aList = [100, 200, 300, 400, 500] aList = aList[::-1] print(aList)
Можете накидать большую порцию задачек для практики Python-новичка? — Хабр Q&A
Я когда также искал наткнулся на один сайт там человек выложил тестовое задание которое он получил на вакансию Junior Python Developer.
Сам сайт я не сохранял сохранил только задание. Выполняя это задание ты охватишь то что учил и освоишь новые технологии.
Собственно вот само задание:
Цель тестового задания
Определить возможную динамику самообучения кандидата. А так же глубину понимания кода, реализующего тестовое задание.Задание
Написать тестовое web-приложение по управлению электронной библиотекой:1. Редактирование (доступно авторизованному пользователю при наличии аутентификации):
Управление списком книг: добавить / удалить / редактировать книгу.
Управление списком авторов: добавить / удалить / редактировать автора.
Запись о книге содержит следующие данные: ID, Название.
Запись об авторе содержит следующие данные: ID, Имя.
Свзязь между книгами и авторами — многие ко многим.
2. Поиск книг по названию либо автору (доступно анонимному пользователю при наличии аутентификации).3. Аутентификации и авторизация (по желанию кандидата).
Технологии, которые должны быть задействованы:
Flask
SQLAlchemy (Declarative)
SQLite (встроенный в приложение)
Jinja2 Templates
WTForms
jQuery (желательно, но возможно использование альтернативных решений)
Список может быть расширен по усмотрению кандидата, но с обязательным использованием технологий, перечисленных выше.Дополнительные требования
Список дополнительных требований следующий:1. Код проекта должен быть доступен на сервисе github.org или bitbucket.org.
2. Проект должен содержать SQL-скрипты для развертывания базы данных и наполнения ее тестовыми данными.
3. Пользовательские данные должны валидироваться перед сохранением в БД.
Дополнительные знания
Дополнительные знания, необходимые при защите проекта:HTTP
WSGI
SQL, Transactions, Transaction Isolation Levels
SQLAlchemy
Уязвимости веб-сайтов
User Experience
27 сайтов с задачками для оттачивания навыков программирования
Решение задач — хороший способ развить навыки разработки.
Также вы можете пускорить освоение нового для вас языка программирования, решая головоломки на этом языке.
В этой статье 27 самых популярных сайтов с задачками по программированию.
Codewars — отличный сервис для закрепления навыков разработки на Ruby, JavaScript, Java, Python, Clojure, CoffeeScript, C# , Haskell. Представлены как алгоритмические задачи, так и практические задачи, связанные с шаблонами проектирования. После каждой решенной задачи вы можете посмотреть на другие решения, рассортированные по рейтингу в зависимости от их красоты и практичности.
Leetcode — сайт с алгоритмическими задачками для подготовки к техническим собеседованиям в такие крупные фирмы, как Google и Facebook. Возле каждой задачи есть обсуждение, в котором так или иначе может фигурировать решение к этой задаче. Можно использовать различные языки программирования: C, C++, Java, Python, C# , JavaScript, Ruby, Bash.
Programming Praxis — блог, включающий целый ряд интересных задач, решения которых можно проверить на нескольких языках программирования.
TopCoder — активное сообщество программистов, которые любят решать головоломки. Много активных соревнований, некоторые из них включают денежные призы.
Python Challenge — сайт, где загадки требуют написания небольших программ на Python. При этом сложность увеличивается в геометрической прогрессии с каждой новой загадкой.
C Puzzles предоставляет вам головоломки по программированию, характерные для языка Си (со всеми его причудами). Поскольку многие языки являются Си-подобными или напрямую выведенными из него, даже если вы не знаете язык Си как свой родной, велика вероятность, что вы поймете эти головоломки.
В описании сайта сказано, что это «арена, где сумасшедшие программисты сражаются ради славы и клёвых призов». Участие в соревнованиях, проводимых каждые пол года — замечательный способ проявить себя в сообществе программистов.
Цитата с главной страницы: «Project Euler — ряд бросающих вызов математических/программистских задач, которые предполагают наличие математической интуиции для их решения». Ресурс включает в себя как относительно простенькие, так и по-настоящему сложные задачки.
Ruby Quiz — собрание соревнований по программированию среди рубистов, обновляемое каждую неделю. Подточенные под Ruby, эти соревнования могут быть решены и на других языках программирования.
Prolog Problems заточен под язык программирования Prolog. Но в сообществе есть решения и на других языках программирования, таких как Python, Ruby, Haskell, Scala. Решение задач на этом ресурсе — отличный способ познакомиться с новым языком программирования.
Полноценный русскоязычный аналог уже упомянутого Topcoder.
Задачки в основном на проверку знаний С++, однако реализуемы и на других языках программирования.
Оттачиваем навыки программирования, решая задачки и проходя занимательный квест.
Timus Online Judge — это крупнейший в России архив задач по программированию с автоматической проверяющей системой. Основной источник задач для архива — соревнования Уральского федерального университета, Чемпионаты Урала, Уральские четвертьфиналы ACM ICPC, Петрозаводские сборы по программированию.
Одна из самых популярных браузерных стратегий для программистов. Увлекательная и захватывающая, с возможностью выбора предпочтительного языка — JavaScript и Python.
Изучение и практика языка программирования Python. Возможность создавать свои уровни путем программирования условий.
Данный проект создан для повышения у школьников Красноярского края уровня знаний в программировании и способностей, направленных на решение олимпиадных задач.
Сайт содержит архив задач по олимпиадному программированию со встроенной проверяющей системой. Для участия в системе достаточно зарегистрироваться и перейти в раздел “Архив задач”, где на текущий момент Вам будет предложено решить 700 задач различной сложности.
Интернет-портал организационно-методического обеспечения дистанционных олимпиад по программированию для одаренной молодежи учебных заведений Украины.
Космическая стратегия, в которой программирование является необязательным, но дающим большое преимущество навыком. После вводного курса предлагают выбрать одну из сторон — Python или JavaScript.
CodeChef — платформа для программистских соревнований, поддерживаемая индийским разработчиком ПО “Directi”.
Что такого выдающегося в этой платформе?
Во-первых, перед соревнованиями можно хорошенько потренироваться, выбрав один из шести уровней сложности.
Во-вторых, платформа предлагает выбор из почти 30 языков программирования, которыми можно пользоваться при решении задачек. В месяц проводится около 2-3 соревнований с ограничением по времени. Некоторые из них — командные, и перед регистрацией нужно присоединиться к одной из команд или создать свою, что не так уж и сложно, ведь в CodeChef 125 тысяч участников.
Здесь вы можете поучаствовать в соревнованиях. В свой профиль можете поместить резюме, и вся информация будет доступна таким работодателям, как Facebook, Quora, Yahoo и многим другим.
Динамичная площадка для соревнований, количество участников в которой превысило 350 тысяч человек. Ресурс публикует новости об открытых соревнованиях программистов, краудсорсинговых программах. Количество задач приближается к шести тысячам, возле каждой их которых есть соответствующее обсуждение.
Практика на языке программирования Go в игровой форме.
Сайт позволяет скачать практические задачи и решить их на более чем 30 языках программирования, при этом есть задачи как для начинающих, так и для опытных программистов. Обратная связь, получаемая после отправки решений, позволит сориентировать вас в изучении тех или иных тем, что позволит значительно облегчить написание кода.
Площадка для программистских соревнований и хакатонов: позволяет писать код приложений прямо в браузере, конкурировать с другими программистами и выигрывать офферы и денежные призы!
Сайт позволяет подготовиться к собеседованию в лучшие IT-компании Кремниевой долины, такие как Google, Facebook и Amazon. На нем вы можете практиковаться в решении задач с собеседований в этих компаниях, получать помощь от менторов, а также получать рекомендации от сотрудников этих компаний.
Rosalind – платформа для изучения биоинформатики и программирования через решение задач. Есть отдельный раздел для абсолютных новичков в программировании. Сайт предлагает задачи, дающее некоторое представление в молекулярной биологии и вычислительной сложности, решение задач производится с использованием языка программирования Python. Проверка задач выполняется автоматически.
Программирование на Python: от новичка до профессионала
Пошаговая инструкция для всех, кто хочет изучить программирование на Python (или программирование вообще), но не знает, куда сделать первый шаг.
Мы просмотрели множество обучающих материалов и просто хороших статей и составили список того, что необходимо изучить, чтобы освоить этот язык программирования и развиваться в нем.
1. Первым делом изучите основы. Узнайте, что такое переменные, управляющие структуры, структуры данных. Эти знания необходимы без привязки к конкретному языку.
2. Займитесь изучением литературы. Начните с классики – Dive into Python. Эта книга вообще может стать настольной. Еще можно почитать Майкла Доусона «Программируем на Python» и Алексея Васильева «Python на примерах. Практический курс по программированию». Доусон – опытный программист и преподаватель, а в книге учит программировать, создавая простые игры. В книге Васильева, напротив, больше внимания уделяется основам и теории.
3. Практикуйтесь. Можно (и нужно) делать это параллельно с изучением теории. Пройдите курс Learn Python на Codecademy: вся необходимая для выполнения заданий теория подается прямо во время заданий. Как вариант, можно посетить Питонтьютор – бесплатный интерактивный курс по Python на русском.
Также есть хорошие курсы на Stepik:
Программирование на Python, Python: основы и применение
4. Пройдите курс «Введение в компьютерные технологии и программирование на языке Python» от MIT.
5. Узнайте, какие библиотеки и инструменты Python и для каких целей используют другие питонисты. Найдите что-то интересное для себя.
6. Если вас интересуют веб-технологии, обратите внимание на фреймворки Flask и Django. Узнайте, для каких целей какой из них лучше подходит, начните изучать тот, что подходит вам.
7. Узнайте, как получать и анализировать массивы данных с отдельных сайтов, со всего Интернета и вообще откуда угодно – только старайтесь держаться в рамках закона.
8. Ищите информацию о методах машинного обучения.
9. Оптимизируйте работу с инструментами, автоматизируйте рутину и все, что еще не автоматизировано.
Несколько полезных ссылок на ресурсы, которые помогут чуть меньше гуглить и определиться, в каком направлении работать.
Полезные ресурсы
Python Tutor
Этот инструмент помогает перейти фундаментальный барьер на пути к пониманию изучаемого языка программирования: путем визуализации кода этот ресурс даст понимание того, что происходит, когда компьютер исполняет каждую строку кода.
Bucky Roberts на YouTube
Если вы не знакомы с программированием, эти туториалы очень вам помогут. Они просты для понимания и охватывают все, что может пригодиться сначала, начиная с установки языка.
Derek Banas про Python на YouTube
Дерек – программист-самоучка, и у него свой взгляд на подход к изучению языков программирования. Он делает небольшие видеообзоры на различные языки длиной в 40-60 минут, в которых рассказывает все, что нужно, чтобы в общих чертах понять назначение языка.
Corey Schafer на YouTube
У Кори хорошие видео на тему форматирования строк, генераторов, программистских терминов (комбинации и перестановки, DRY, замыкания) и многого другого, что поможет понять основные концепции.
Django Getting Started
Официальная документация по веб-фреймворку Django. Покрывает все, что нужно узнать на первых порах, от установки до первого приложения.
Введение во Flask
Видеокурс на YouTube для желающих ознакомиться с Flask, понять некоторые его тонкости и узнать, зачем он вообще нужен.
Полезные ссылки
Новичку
Python 3 для начинающих
«Укус Питона» (англ. «A Byte of Python»)
Видеолекции от JetBrains
Спецкурс ВМК МГУ по Python
Интерактивный онлайн-учебник
Бизли Д. «Python. Подробный справочник» (2010, PDF)
Прохоренок Н.А. «Python 3 и PyQt. Разработка приложений» (2012, PDF)
Программирование на Python 3.Подробное руководство
Программирование на Python для начинающих (2015, PDF)
Самоучитель Python 3 (2015, PDF)
Знающему основы для углубленного изучения
М. Лутц «Программирование на Python, 4-е издание» (2011, PDF): первый том, второй том
Программирование компьютерного зрения на Python (2016)
Л. Рамальо «Python. К вершинам мастерства» (2015)
М. Лутц «Изучаем Python» (4-е издание) (2011, DjVu)
Justin Seiz «Gray Hat Python»(rus) (2012, PDF)
Гифт Н., Джонс Дж.М. «Python в системном администрировании UNIX и Linux» (2009, PDF)
М. Саммерфилд «Программирование на Python 3. Подробное руководство» (2009, PDF)
Профессионалу
Много всего на Хабрахабре
Подборка англоязычных книг по различным областям применения Python
Python Machine Learning (2015, PDF)
Видеоматериалы
Некоторые записи видео-конференции Python Meetup
Путь Python Junior-а в 2017
10 скрытых особенностей Python
Интерактивный курс Python для новичков в программировании
Продолжаем искать и тестировать качественные курсы и уроки по IT-специальностям. Тема востребованная, поэтому мы решили время от времени делиться рекомендациями.
Сегодня в фокусе сервис letpy. Это русскоязычный онлайн-курс по языку Python для новичков в программировании. Короткие уроки чередуются с заданиями, для прохождения которых нужно писать программы. В курс встроена браузерная среда разработки, так что уроки и программы можно проходить на любом компьютере, телефоне или планшете.
Рис. 1. Рабочая среда letpy в ночном режиме
Среда разработки (Рис. 1) выглядит интуитивно понятно и включает в себя:
- дерево файлов и каталогов,
- рабочую область, где пишется программа,
- консоль, в которой выводится результат выполнения программы,
- поле с описанием задания,
- чат студентов.
Видимость элементов можно настраивать, имеются две цветовые темы, можно варьировать размер шрифта. У файлов работает автосохранение.
Правильность программ автоматически проверяется ботом, который дополняет стандартный вывод Python и старается помочь в случае ошибки (Рис. 2).
Рис. 2. Скриншот с подсказкой (для сравнения показано оформление в «дневном» режиме)
Если задание выполнено неверно, под ним отображается красная карточка (Рис. 3).
Рис. 3. Элемент интерфейса в случае неправильного выполнения задания
Текст на таких карточках дополняет рекомендации бота. После исправления кода красная карточка меняется на зелёную – можно перейти к следующему шагу (Рис. 4).
Рис. 4. Изменение предыдущего элемента после коррекции кода
У каждого урока есть чат – можно посмотреть, что думают по поводу урока другие ученики и обсудить варианты решения задачи. Блок с чатом расположен внизу под описанием урока или задания, так что он не мешает при прохождении.
Если хочется поделиться собственным решением с другими студентами или не удается найти ошибку, код легко перенести в чат из рабочей области с помощью кнопки “Вставить код” (Рис. 5). То есть нет необходимости его специально форматировать. При этом сохранится оформление и отступы, а к коду можно добавить любой поясняющий текст или вопрос.
Рис. 5. Скриншот с примером автоматически перенесенного кода
Если нужен дополнительный теоретический материал, есть справочник по следующим разделам:
Всего в курсе 149 уроков, включая 58 практических заданий (полная программа курса). При прохождении 95% курса выдаётся сертификат. Текущий процент прохождения отображается в верхней панели.
Рис. 6. Скриншот с панелью прохождения курса
Любая платформа для своего развития требуют какого-то источника дохода. Нам понравилось, что сервис не ставит деньги во главу угла – первые 45 уроков бесплатные – если не понравится подача, можно ограничиться этим.
На сайте есть пара иллюстраций, чему можно научиться в платной версии.
Цена на полный курс – небольшая (в PRO-версии 2130 ₽, а при базовом доступе и того меньше – 1490 ₽), мы перешли на PRO-подписку, чтобы посмотреть на отличия от стандартной версии.
Кроме того, что стали доступны остальные уроки, добавились и новые функции. В верхней панели появился значок учебного отладчика. В нем можно смотреть, как программа выполняется строка за строкой. Так проще определить, если что-то пошло не так, как ожидалось.
Рис. 7. Скриншот с отладчиком программ для пошагового выполнения кода
Кроме того, появилась возможность делиться программами с другими людьми. Во вкладке профиля добавляется строчка Мои приложения.
Рис. 8. В меню профиля в полной версии появляется возможность делиться приложениями
По этой вкладке можно добавлять py-файлы, описания программы и создать ссылку для публикации приложения. Эта ссылка будет общедоступной – легко делиться с друзьями и родными, чему ты научился. Так как в курсе описаны возможности Python в отрисовке, можно сделать такую страницу наглядной даже для тех, кто совсем не знаком с программированием.
Ради фана в рамках одного из уроков мы написали простенькое приложение на Python, реализующее часы:
import datetime, canvas
def clock(time, x=175, y=175, r=170):
canvas.clear()
canvas.circle(x, y, r)
# ставим риски для часов и минут
for i in range(0, 390, 30):
canvas.radius_line(x, y, i, 170)
for j in range(0, 366, 6):
canvas.radius_line(x, y, j, 160)
# накрываем кругом, по которому будут двигаться стрелки
canvas.fill_style('White')
canvas.fill_circle(x, y, 150)
# часовая стрелка
canvas.line_width(6)
canvas.set_color('Blue')
canvas.radius_line(x, y, time.hour * 30, 100)
# минутная стрелка
canvas.line_width(2)
canvas.radius_line(x, y, time.minute * 6, 120)
# секундная стрелка
canvas.line_width(1)
canvas.radius_line(x, y, time.second * 6, 160)
# крепление стрелок
canvas.fill_style('Blue')
canvas.fill_circle(x, y, 7)
canvas.draw()
while True:
time = datetime.datetime.now()
clock(time)
Далее мы воспользовались интерфейсом для публикации приложений, показанным на Рис. 9.
Рис. 9. Интерфейс для публикации собственных приложений
В итоге получилось приложение, расположенное по адресу https://letpy.com/apps/proglib-clock/ – можете сами посмотреть, что получилось.
Рис. 10. Скриншот веб-страницы написанного нами приложения на Python
На сайте также есть пример интерактивного демо-приложения, в котором объекты появляются по клику.
Резюмируем, что нам понравилось в letpy:
- Значительная часть уроков и все справочные материалы находятся в свободном доступе – можно без переплат оценить, нравится ли подход.
- Система имеет ясный и отзывчивый интерфейс, на платформе легко заниматься. Если в коде есть ошибки, сервис выдает необходимые подсказки.
- letpy умеет выполнять внеучебные файлы с кодом Python – удобно использовать среду для практических экспериментов в программировании. При этом ничего не нужно дополнительно устанавливать. А получившимися программами в расширенной версии можно делиться в виде веб-приложений.
- По нашим наблюдениям в чате регулярно отвечает разработчик сайта и другие ученики – если что-то непонятно, помогает не только бот, но и живые люди.
Из недостатков, которые мы для себя отметили – отсутствие описания классов и основ ООП. Впрочем, эти темы нельзя считать первоочередными для новичков, так что для такого базового курса это некритично.
В любом случае, программа рассчитана так, чтобы, окончив курс, человек имел представление о программировании на Python и мог продолжить обучение самостоятельно.
У letpy есть YouTube-канал, паблик вк и страница facebook. Судя по их активности, проект развивается и совершенствуется. Напишите в комментариях, если вы учились или учитесь на letpy – как вам ресурс?
Пишем простую игру на python / Хабр
Сегодня мы создадим всем известную игру камень, ножницы, бумага. В этом нам поможет ЯП python и библиотека tkinter, но если вы не знаете что это такое, советую почитать данную статью.
Первое, что нам нужно, это начальная структура, окошко, у меня оно будет выглядеть так:
from tkinter import *
import random as rdm
class Main(Frame):
def __init__(self, root):
super(Main, self).__init__(root)
self.startUI()
def startUI(self):
pass
if __name__ == '__main__':
root = Tk()
root.geometry("500x500+200+200")
root.title("Камень, ножницы, бумага")
root.resizable(False, False)
root["bg"] = "#FFF"
app = Main(root)
app.pack()
root.mainloop()
Здесь мы создаём неизменяемое окно 500 на 500 с заголовком «Камень, ножницы, бумага» и белым фоном. Именно в это окошко мы будем добавлять кнопочки, счетчики и т.д.
Теперь в наш метод startUI добавим такие строчки:
btn = Button(root, text="Камень", font=("Times New Roman", 15))
btn = Button(root, text="Ножницы", font=("Times New Roman", 15))
btn3 = Button(root, text="Бумага", font=("Times New Roman", 15))
btn.place(x=10, y=100, width=120, height=50)
btn2.place(x=155, y=100, width=120, height=50)
btn3.place(x=300, y=100, width=120, height=50)
Эти 7 строчек добавят в наше окно 3 кнопки которые нечего не делают. Мы исправим это позже.
Пользователь делает свой выбор, нажимая на одну из 3 кнопок, это круто, но нам нужен оппонент, именно для этого нужен модуль random.
А вот теперь мы добавим функцию, которая будет обрабатывать выбор, и выдавать ответ, кто же выиграл в этом раунде. Сделаем это вот таким образом:
btn = Button(root, text="Камень", font=("Times New Roman", 15),
command=lambda x=1: self.btn_click(x))
btn2 = Button(root, text="Ножницы", font=("Times New Roman", 15),
command=lambda x=2: self.btn_click(x))
btn3 = Button(root, text="Бумага", font=("Times New Roman", 15),
command=lambda x=3: self.btn_click(x))
Что тут происходит?
Всё очень просто. Грубо говоря, если игрок нажмет камень, отправится 1, если ножницы, то 2, а если бумага, то 3, причем не только отправится, но и выведется в консоль.
На счет компьютера. Он свой выбор делает, но его выбор никуда не идёт.
Перед тем, как делать логику, нам нужно передать игроку результат, и для этого мы будем использовать Label. Добавим в startUI такие строчки:
self.lbl = Label(root, text="Начало игры!", bg="#FFF",
font=("Times New Roman", 21, "bold"))
self.lbl.place(x=120, y=25)
self.lbl2 = Label(root, justify="left",
font=("Times New Roman", 13),
text=f"Побед: {self.win}\nПроигрышей:"
f" {self.lose}\nНичей: {self.drow}",
bg="#FFF")
self.lbl2.place(x=5, y=5)
Отлично. Теперь у нас есть надпись, в которую мы будем выводить результат раунда и надпись со статистикой.
Сделаем 3 счетчика:
1. Поражений
2. Побед
3. Ничей
Для этого все в тот же startUI добавим такую строку:
self.win = self.drow = self.lose = 0
Теперь в классе main создаем метод btn_click, и пишем в него следующие строки:
def btn_click(self, choise):
comp_choise = rdm.randint(1, 3)
print(choise)
Недолго музыка играла. Там же, в btn_click, удаляем
print(choise)
и пишем вот эти строки:
if choise == comp_choise:
self.drow += 1
self.lbl.configure(text="Ничья")
elif choise == 1 and comp_choise == 2 \
or choise == 2 and comp_choise == 3 \
or choise == 3 and comp_choise == 1:
self.win += 1
self.lbl.configure(text="Победа")
else:
self.lose += 1
self.lbl.configure(text="Проигрыш")
self.lbl2.configure(text=f"Побед: {self.win}\nПроигрышей:"
f" {self.lose}\nНичей: {self.drow}")
del comp_choise
Собственно всё, на этом создание закончилось. Всё работает, можно играть.
Полный код:
from tkinter import *
import random as rdm
class Main(Frame):
def __init__(self, root):
super(Main, self).__init__(root)
self.startUI()
def startUI(self):
btn = Button(root, text="Камень", font=("Times New Roman", 15),
command=lambda x=1: self.btn_click(x))
btn2 = Button(root, text="Ножницы", font=("Times New Roman", 15),
command=lambda x=2: self.btn_click(x))
btn3 = Button(root, text="Бумага", font=("Times New Roman", 15),
command=lambda x=3: self.btn_click(x))
btn.place(x=10, y=100, width=120, height=50)
btn2.place(x=155, y=100, width=120, height=50)
btn3.place(x=300, y=100, width=120, height=50)
self.lbl = Label(root, text="Начало игры!", bg="#FFF", font=("Times New Roman", 21, "bold"))
self.lbl.place(x=150, y=25)
self.win = self.drow = self.lose = 0
self.lbl2 = Label(root, justify="left", font=("Times New Roman", 13),
text=f"Побед: {self.win}\nПроигрышей:"
f" {self.lose}\nНичей: {self.drow}",
bg="#FFF")
self.lbl2.place(x=5, y=5)
def btn_click(self, choise):
comp_choise = rdm.randint(1, 3)
if choise == comp_choise:
self.drow += 1
self.lbl.configure(text="Ничья")
elif choise == 1 and comp_choise == 2 \
or choise == 2 and comp_choise == 3 \
or choise == 3 and comp_choise == 1:
self.win += 1
self.lbl.configure(text="Победа")
else:
self.lose += 1
self.lbl.configure(text="Проигрыш")
self.lbl2.configure(text=f"Побед: {self.win}\nПроигрышей:"
f" {self.lose}\nНичей: {self.drow}")
del comp_choise
if __name__ == '__main__':
root = Tk()
root.geometry("430x160+200+200")
root.title("Камень, ножницы, бумага")
root.resizable(False, False)
root["bg"] = "#FFF"
app = Main(root)
app.pack()
root.mainloop()
27 сайтов с задачками для оттачивания навыков программирования
Решение задач — хороший способ развить навыки разработки.
Также вы можете пускорить освоение нового для вас языка программирования, решая головоломки на этом языке.
В этой статье 27 самых популярных сайтов с задачками по программированию.
Codewars — отличный сервис для закрепления навыков разработки на Ruby, JavaScript, Java, Python, Clojure, CoffeeScript, C# , Haskell. Представлены как алгоритмические задачи, так и практические задачи, связанные с шаблонами проектирования. После каждой решенной задачи вы можете посмотреть на другие решения, рассортированные по рейтингу в зависимости от их красоты и практичности.
Leetcode — сайт с алгоритмическими задачками для подготовки к техническим собеседованиям в такие крупные фирмы, как Google и Facebook. Возле каждой задачи есть обсуждение, в котором так или иначе может фигурировать решение к этой задаче. Можно использовать различные языки программирования: C, C++, Java, Python, C# , JavaScript, Ruby, Bash.
Programming Praxis — блог, включающий целый ряд интересных задач, решения которых можно проверить на нескольких языках программирования.
TopCoder — активное сообщество программистов, которые любят решать головоломки. Много активных соревнований, некоторые из них включают денежные призы.
Python Challenge — сайт, где загадки требуют написания небольших программ на Python. При этом сложность увеличивается в геометрической прогрессии с каждой новой загадкой.
C Puzzles предоставляет вам головоломки по программированию, характерные для языка Си (со всеми его причудами). Поскольку многие языки являются Си-подобными или напрямую выведенными из него, даже если вы не знаете язык Си как свой родной, велика вероятность, что вы поймете эти головоломки.
В описании сайта сказано, что это «арена, где сумасшедшие программисты сражаются ради славы и клёвых призов». Участие в соревнованиях, проводимых каждые пол года — замечательный способ проявить себя в сообществе программистов.
Цитата с главной страницы: «Project Euler — ряд бросающих вызов математических/программистских задач, которые предполагают наличие математической интуиции для их решения». Ресурс включает в себя как относительно простенькие, так и по-настоящему сложные задачки.
Ruby Quiz — собрание соревнований по программированию среди рубистов, обновляемое каждую неделю. Подточенные под Ruby, эти соревнования могут быть решены и на других языках программирования.
Prolog Problems заточен под язык программирования Prolog. Но в сообществе есть решения и на других языках программирования, таких как Python, Ruby, Haskell, Scala. Решение задач на этом ресурсе — отличный способ познакомиться с новым языком программирования.
Полноценный русскоязычный аналог уже упомянутого Topcoder.
Задачки в основном на проверку знаний С++, однако реализуемы и на других языках программирования.
Оттачиваем навыки программирования, решая задачки и проходя занимательный квест.
Timus Online Judge — это крупнейший в России архив задач по программированию с автоматической проверяющей системой. Основной источник задач для архива — соревнования Уральского федерального университета, Чемпионаты Урала, Уральские четвертьфиналы ACM ICPC, Петрозаводские сборы по программированию.
Одна из самых популярных браузерных стратегий для программистов. Увлекательная и захватывающая, с возможностью выбора предпочтительного языка — JavaScript и Python.
Изучение и практика языка программирования Python. Возможность создавать свои уровни путем программирования условий.
Данный проект создан для повышения у школьников Красноярского края уровня знаний в программировании и способностей, направленных на решение олимпиадных задач.
Сайт содержит архив задач по олимпиадному программированию со встроенной проверяющей системой. Для участия в системе достаточно зарегистрироваться и перейти в раздел “Архив задач”, где на текущий момент Вам будет предложено решить 700 задач различной сложности.
Интернет-портал организационно-методического обеспечения дистанционных олимпиад по программированию для одаренной молодежи учебных заведений Украины.
Космическая стратегия, в которой программирование является необязательным, но дающим большое преимущество навыком. После вводного курса предлагают выбрать одну из сторон — Python или JavaScript.
CodeChef — платформа для программистских соревнований, поддерживаемая индийским разработчиком ПО “Directi”.
Что такого выдающегося в этой платформе?
Во-первых, перед соревнованиями можно хорошенько потренироваться, выбрав один из шести уровней сложности.
Во-вторых, платформа предлагает выбор из почти 30 языков программирования, которыми можно пользоваться при решении задачек. В месяц проводится около 2-3 соревнований с ограничением по времени. Некоторые из них — командные, и перед регистрацией нужно присоединиться к одной из команд или создать свою, что не так уж и сложно, ведь в CodeChef 125 тысяч участников.
Здесь вы можете поучаствовать в соревнованиях. В свой профиль можете поместить резюме, и вся информация будет доступна таким работодателям, как Facebook, Quora, Yahoo и многим другим.
Динамичная площадка для соревнований, количество участников в которой превысило 350 тысяч человек. Ресурс публикует новости об открытых соревнованиях программистов, краудсорсинговых программах. Количество задач приближается к шести тысячам, возле каждой их которых есть соответствующее обсуждение.
Практика на языке программирования Go в игровой форме.
Сайт позволяет скачать практические задачи и решить их на более чем 30 языках программирования, при этом есть задачи как для начинающих, так и для опытных программистов. Обратная связь, получаемая после отправки решений, позволит сориентировать вас в изучении тех или иных тем, что позволит значительно облегчить написание кода.
Площадка для программистских соревнований и хакатонов: позволяет писать код приложений прямо в браузере, конкурировать с другими программистами и выигрывать офферы и денежные призы!
Сайт позволяет подготовиться к собеседованию в лучшие IT-компании Кремниевой долины, такие как Google, Facebook и Amazon. На нем вы можете практиковаться в решении задач с собеседований в этих компаниях, получать помощь от менторов, а также получать рекомендации от сотрудников этих компаний.
Rosalind – платформа для изучения биоинформатики и программирования через решение задач. Есть отдельный раздел для абсолютных новичков в программировании. Сайт предлагает задачи, дающее некоторое представление в молекулярной биологии и вычислительной сложности, решение задач производится с использованием языка программирования Python. Проверка задач выполняется автоматически.
53 упражнения и вопросы по Python для начинающих (2018)
В этом посте я собираюсь перечислить несколько упражнений и вопросов Python для начинающих. Если вы только начинаете знакомиться с Python, этот пост — хороший способ проверить свои знания и узнать что-то новое. Вы также можете ознакомиться с моим руководством по Python для начинающих на YouTube и шпаргалкой по Python 3.
ПРИМЕЧАНИЕ. Эта публикация находится в стадии разработки, и я буду регулярно добавлять новые вопросы в список.Так что не забудьте вернуться для новых упражнений по кодированию. Если вам понравился этот пост, поделитесь им с другими.
Приступим!
Вопросы
Основы
- Что такое выражение?
- Что такое синтаксическая ошибка?
- Что такое PEP8?
- Что делает линтер?
- Каков результат этого выражения: «*» * 10
- Что такое CPython?
- Чем CPython отличается от Jython?
- Чем CPython отличается от IronPython?
Примитивные типы
- Что такое переменная?
- Какие примитивные встроенные типы в Python?
- Когда мы должны использовать «» (тройные кавычки) для определения строк?
- Предполагая (name = «John Smith»), что возвращает name [1]?
- А как насчет имени [-2]?
- А как насчет имени [1: -1]?
- Как узнать длину имени?
- Какие escape-последовательности в Python?
- Каков результат f “{2 + 2} + {10% 3}” ?
- Дано (name = «john smith»), что будет называть .title () возврат?
- Что значит название. полоса () делать?
- Что вернет name.find («Smith») ?
- Каким будет значение name после вызова name. заменить («j», «k») ?
- Как мы можем проверить, содержит ли name «John» ?
- Какие 3 типа чисел в Python?
Управляющий поток
- В чем разница между 10/3 и 10 // 3 ?
- Каков результат 10 ** 3?
- Учитывая ( x = 1 ), какое значение будет после того, как мы запустим ( x + = 2 )?
- Как округлить число?
- Каков результат float (1) ?
- Каков результат bool («Ложь») ?
- Каковы ложные значения в Python?
- Каков результат 10 == «10» ?
- Что будет результатом «мешок»> «яблоко» ?
- Какой результат не (Верно или Неверно) ?
- При каких обстоятельствах выражение 18 <= age <65 оценивается как Истина ?
- Что возвращает range (1, 10, 2) ?
- Назовите 3 итерационных объекта в Python.
Функции
- В чем разница между параметром и аргументом?
- Все функции в Python по умолчанию возвращают…?
- Что такое аргументы ключевого слова и когда мы должны их использовать?
- Как сделать параметр функции необязательным?
- Что происходит, если мы ставим перед параметром звездочку (*)?
- А как насчет двух звездочек (**)?
- Что такое размах?
- В чем разница между локальными и глобальными переменными?
- Почему использование оператора global — плохая практика?
Упражнения по кодированию
- Напишите функцию, которая возвращает максимум два числа.
- Напишите функцию с именем fizz_buzz , которая принимает число.
- Если число делится на 3, оно должно вернуть «Fizz».
- Если он делится на 5, он должен вернуть «Buzz».
- Если он делится как на 3, так и на 5, он должен вернуть «FizzBuzz».
- В противном случае он должен вернуть то же число.
- Напишите функцию для проверки скорости работы драйверов. У этой функции должен быть один параметр: скорость.
- Если скорость меньше 70, должно быть напечатано «ОК».
- В противном случае, за каждые 5 км превышения ограничения скорости (70) водитель должен получить один штрафной балл и напечатать общее количество штрафных баллов. Например, если скорость 80, должно быть напечатано: «Points: 2».
- Если водитель набрал более 12 баллов, функция должна напечатать: «Лицензия приостановлена».
- Напишите функцию с именем showNumbers , которая принимает параметр с именем limit. Он должен печатать все числа от 0 до limit с этикеткой для определения четных и нечетных чисел.Например, если предел равен 3, он должен напечатать:
- 0 ДАЖЕ
- 1 ODD
- 2 даже
- 3 ODD
- Напишите функцию, которая возвращает сумму кратных 3 и 5 между 0 и предел (параметр). Например, если limit равен 20, он должен вернуть сумму 3, 5, 6, 9, 10, 12, 15, 18, 20.
- Напишите функцию с именем show_stars (rows) . Если строк равно 5, он должен напечатать следующее:
- Напишите функцию, которая печатает все простые числа от 0 до limit , где limit является параметром.
Хотите изучить все необходимые навыки Python? Ознакомьтесь с моим полным курсом Python для начинающих.
Привет! Меня зовут Мош Хамедани. Я инженер-программист с двадцатилетним опытом работы и научил более трех миллионов человек программированию или тому, как стать профессиональными разработчиками программного обеспечения, через свой канал на YouTube и онлайн-курсы. Моя миссия — сделать разработку программного обеспечения доступной для всех.
Связанные
Теги: Python, упражнения
.
Изучение Python — Автостопом по Python
Начинающий
Учебник Python
Это официальное руководство. Он охватывает все основы и предлагает экскурсию по
язык и стандартная библиотека. Рекомендуется для тех, кому нужен
краткое руководство по языку.
Настоящий Python
Real Python — это репозиторий бесплатных и подробных руководств по Python, созданных разнообразной командой профессиональных разработчиков Python. В Real Python вы можете изучить Python с нуля.Все, от абсолютных основ Python до веб-разработки и веб-скрейпинга, до визуализации данных и т. Д.
Основы Python
pythonbasics.org — это вводное руководство для начинающих. В учебное пособие включены упражнения. Он охватывает основы, а также есть подробные уроки, такие как объектно-ориентированное программирование и регулярные выражения.
Python для начинающих
thepythonguru.com — это учебное пособие для начинающих программистов.Он охватывает многие концепции Python
глубоко. Он также научит вас некоторым продвинутым конструкциям Python, таким как лямбда-выражения и регулярные выражения.
И, наконец, он завершается учебником «Как получить доступ к базе данных MySQL с помощью Python»
Интерактивное учебное пособие по изучению Python
Learnpython.org — это простой и не пугающий способ познакомиться с Python.
Веб-сайт использует тот же подход, что и популярные
Попробуйте сайт Ruby. Имеет интерактивный Python
встроенный в сайт переводчик, позволяющий проходить уроки
без необходимости устанавливать Python локально.
Python для вас и меня
Если вам нужна более традиционная книга, Python For You and Me — отличный вариант.
ресурс для изучения всех аспектов языка.
Изучите Python шаг за шагом
Techbeamers.com предоставляет пошаговые инструкции по обучению Python. Каждое руководство дополнено логически добавленными фрагментами кода и дополнительным опросом по изученному предмету. Есть раздел для вопросов на собеседовании по Python, чтобы помочь соискателям.Вы также можете прочитать важные советы по Python и узнать о лучших методах написания качественного кода. Здесь вы получите подходящую платформу для быстрого изучения Python.
Изучите Python с базового до продвинутого
Интернет-преподаватель Python
Online Python Tutor дает вам наглядное пошаговое
представление того, как работает ваша программа. Репетитор по Python
помогает людям преодолеть фундаментальный барьер на пути к обучению
программирование, понимая, что происходит, когда компьютер
выполняет каждую строку исходного кода программы.
Изобретайте свои собственные компьютерные игры с Python
Эта книга для начинающих предназначена для тех, у кого нет опыта программирования. Каждый
В главе есть исходный код небольшой игры с использованием этих примеров программ
чтобы продемонстрировать концепции программирования, чтобы дать читателю представление о том, что
программы «похожи».
Взлом секретных шифров с помощью Python
Эта книга учит программированию на Python и основам криптографии для абсолютного
новички. В главах представлен исходный код для различных шифров, а также
как программы, которые могут их сломать.
Трудный путь изучения Python
Это отличное руководство по Python для начинающих программистов. Он охватывает «привет
мир »из консоли в Интернет.
Сбой в Python
Также известный как Python для программистов на 3 часа , это руководство дает
опытные разработчики с других языков ускоренный курс по Python.
Погружение в Python 3
Dive Into Python 3 — хорошая книга для тех, кто готов сразу перейти к Python 3.Это
хорошее прочтение, если вы переходите с Python 2 на 3 или у вас уже есть
иметь опыт программирования на другом языке.
Think Python: как думать как компьютерный ученый
Think Python пытается дать введение в основные концепции компьютера
наука с помощью языка Python. В центре внимания было создание книги
с большим количеством упражнений, минимальным жаргоном и разделом в каждой главе, посвященном
к теме отладки.
При изучении различных функций, доступных на языке Python,
автор вплетает различные шаблоны дизайна и лучшие практики.
Книга также включает несколько тематических исследований, которые побуждают читателя исследовать
темы, обсуждаемые в книге более подробно, применяя эти темы к
примеры из реального мира. Тематические исследования включают задания по программированию графического интерфейса и Маркову.
Анализ.
Коаны Python
Python Koans — это порт Ruby Koans от Edgecase. Он использует тестовый
подход к предоставлению интерактивного обучения
обучение базовым концепциям Python. Путем исправления утверждений, которые терпят неудачу в
тестовый скрипт, он обеспечивает последовательные шаги для изучения Python.
Для тех, кто привык к языкам и самостоятельно разгадывает головоломки, это может быть
забавный, привлекательный вариант. Для тех, кто плохо знаком с Python и программированием, имея
дополнительные ресурсы или ссылки будут полезны.
Более подробную информацию о разработке через тестирование можно найти на следующих ресурсах:
Байт Python
Бесплатная вводная книга, в которой преподается Python на начальном уровне, предполагается, что
нет опыта программирования.
Путь компьютерных наук на Codecademy
Курс Codecademy для абсолютного новичка в Python. Этот бесплатный и интерактивный
курс предоставляет и обучает основам (и не только) программирования на Python, в то время как
проверка знаний пользователя в перерывах.
Этот курс также имеет встроенный переводчик для мгновенного получения отзывов о вашем обучении.
Код блока
Кодируйте блоки. предоставляет бесплатные интерактивные руководства по Python для
новички.Он сочетает в себе программирование на Python с трехмерной средой, где
вы «размещаете блоки» и строите конструкции. Учебники научат вас
как использовать Python для создания все более сложных 3D-структур,
сделать процесс изучения Python увлекательным и увлекательным.
Продвинутый
Pro Python
Эта книга предназначена для программистов Python от среднего до продвинутого, которые хотят
понять, как и почему Python работает именно так, и как они могут
код на следующий уровень.
Эксперт по программированию на Python
Expert Python Programming рассматривает лучшие практики программирования на Python и
ориентирован на более продвинутую толпу.
Он начинается с таких тем, как декораторы (с кешированием, прокси и диспетчером контекста).
тематические исследования), порядок разрешения методов с использованием super () и метапрограммирования, а также
общий PEP 8 передовой опыт.
Он содержит подробный пример из нескольких глав по написанию и выпуску пакета
и, наконец, приложение, включая главу об использовании zc.построить из. Позже
главы подробно описывают передовой опыт, такой как написание документации, тестирование
разработка, контроль версий, оптимизация и профилирование.
Руководство по магическим методам Python
Это коллекция сообщений в блоге Рэйфа Кеттлера, в которых объясняются «магические методы».
в Python. Магические методы окружены двойным подчеркиванием (т.е. __init__)
и может заставить классы и объекты вести себя по-разному и волшебным образом.
Разные темы
Решение проблем с помощью алгоритмов и структур данных
Решение проблем с помощью алгоритмов и структур данных охватывает диапазон данных
структуры и алгоритмы.Все концепции проиллюстрированы кодом Python вместе с
с интерактивными примерами, которые можно запускать прямо в браузере.
Программирование коллективного разума
Коллективный разум программирования представляет широкий спектр основных машин
методы обучения и интеллектуального анализа данных. Экспозиция не очень математична
формально, но скорее фокусируется на объяснении лежащей в основе интуиции и показывает
как реализовать алгоритмы на Python.
Преобразование кода в красивый идиоматический Python
Преобразование кода в красивый идиоматический Python — это видео Раймонда Хеттингера.Научитесь лучше использовать лучшие возможности Python и улучшать существующий код
через серию преобразований кода: «Когда вы видите это, сделайте это вместо этого».
Полный стек Python
Fullstack Python предлагает полный комплексный ресурс для веб-разработки.
используя Python.
От настройки веб-сервера до разработки интерфейса, выбора базы данных,
оптимизация / масштабирование и т. д.
Как следует из названия, он охватывает все необходимое для создания и запуска полной
веб-приложение с нуля.
Питониста Кафе
PythonistaCafe — это онлайн-сообщество энтузиастов Python и разработки программного обеспечения, доступное только по приглашениям, которые помогают друг другу добиваться успеха и расти. Думайте об этом как о клубе взаимного совершенствования питонистов, где каждый день обсуждается широкий спектр вопросов программирования, карьерных советов и других тем.
Список литературы
Python в двух словах
Python в двух словах, написанный Алексом Мартелли, охватывает большинство кроссплатформенных
Использование Python, от его синтаксиса до встроенных библиотек и сложных тем, таких как
как написание расширений C.
Справочник по языку Python
Это справочное руководство по Python. Он охватывает синтаксис и основную семантику
языка.
Основные сведения о Python
Python Essential Reference, написанный Дэвидом Бизли, является исчерпывающим справочником
руководство по Python. Он кратко объясняет как основной язык, так и наиболее важные
части стандартной библиотеки. Он охватывает версии Python 3 и 2.6.
Карманный справочник Python
Python Pocket Reference, написанный Марком Лутцем, представляет собой простой в использовании справочник по
основной язык с описанием часто используемых модулей и наборов инструментов.Это
охватывает версии Python 3 и 2.6.
Поваренная книга Python
Поваренная книга
Python, написанная Дэвидом Бизли и Брайаном К. Джонсом, заполнена
практические рецепты. Эта книга охватывает основной язык Python, а также задачи
общий для самых разных областей применения.
Написание идиоматического Python
Writing Idiomatic Python, написанный Джеффом Кнуппом, содержит наиболее распространенные и
важные идиомы Python в формате, максимально упрощающем идентификацию и
понимание.Каждая идиома представлена как рекомендация по написанию
какой-нибудь часто используемый фрагмент кода, после которого следует объяснение, почему идиома
является важным. Он также содержит два образца кода для каждой идиомы: «Вредный»
способ написания и «Идиоматический» способ.
.
Упражнение по структуре данных Python для начинающих
Это упражнение по структуре данных предназначено для начинающих, чтобы понять и практиковать структуру данных в Python . Практический список, набор, словарь и кортеж в Python. Как вы знаете, структура данных широко используется для хранения любых данных. Для выполнения любых задач программирования на Python необходимо хорошее знание структуры данных. Когда вы ответите на каждый вопрос, вы познакомитесь с List , Dictionary , set и tuple.
Что входит в это упражнение со структурой данных?
Вопросы касаются работы со списками, словаря, наборов и кортежей.
- Упражнение содержит 10 вопросов.
- Решение для каждого вопроса.
- Чтобы решить каждый вопрос, вам необходимо изучить конкретную тему структуры данных.
Используйте Online Code Editor для решения вопросов упражнения .
Также, решить:
Exercise Question 1: Дан список из двух. Создайте третий список, выбрав элемент с нечетным индексом из первого списка и элементы с четным индексом из второго.
Например:
listOne = [3, 6, 9, 12, 15, 18, 21] listTwo = [4, 8, 12, 16, 20, 24, 28]
Ожидаемый результат:
Элемент в позициях с нечетным индексом из первого списка [6, 12, 18] Элемент на позициях с четным индексом из списка два [4, 12, 20, 28] Печать финального третьего списка [6, 12, 18, 4, 12, 20, 28]
Решение :
listOne = [3, 6, 9, 12, 15, 18, 21]
listTwo = [4, 8, 12, 16, 20, 24, 28]
listThree = список ()
oddElements = listOne [1 :: 2]
print ("Элемент в позиции с нечетным индексом из первого списка")
печать (oddElements)
EvenElement = listTwo [0 :: 2]
print ("Элемент на позициях с четным индексом из второго списка")
печать (EvenElement)
print («Печать финального третьего списка»)
listThree.расширить (oddElements)
listThree.extend (EvenElement)
печать (listThree)
Вопрос к упражнению 2: Данный входной список удаляет элемент с индексом 4 и добавляет его во вторую позицию, а также в конец списка
Например: Список = [54, 44, 27, 79, 91, 41]
Ожидаемый результат:
Исходный список [34, 54, 67, 89, 11, 43, 94] Список после удаления элемента с индексом 4 [34, 54, 67, 89, 43, 94] Список после добавления элемента с индексом 2 [34, 54, 11, 67, 89, 43, 94] Список после добавления элемента в последний раз [34, 54, 11, 67, 89, 43, 94, 11]
Решение :
sampleList = [34, 54, 67, 89, 11, 43, 94]
print ("Исходный список", sampleList)
element = sampleList.поп (4)
print ("Список после удаления элемента по индексу 4", sampleList)
sampleList.insert (2, элемент)
print ("Список после добавления элемента по индексу 2", sampleList)
sampleList.append (элемент)
print ("Список после добавления последнего элемента", sampleList)
Вопрос к упражнению 3. Для данного списка разделите его на 3 равных части и переверните каждый список
Например: sampleList = [11, 45, 8, 23, 14, 12, 78, 45, 89]
Ожидаемый результат:
Исходный список [11, 45, 8, 23, 14, 12, 78, 45, 89] Часть 1 [11, 45, 8] После его перестановки [8, 45, 11] Часть 2 [23, 14, 12] После переворота [12, 14, 23] Часть 3 [78, 45, 89] После переворота [89, 45, 78]
Решение :
sampleList = [11, 45, 8, 23, 14, 12, 78, 45, 89]
print ("Исходный список", sampleList)
длина = len (список образцов)
chunkSize = int (длина / 3)
начало = 0
end = chunkSize
для i в диапазоне (1, 4, 1):
индексы = срез (начало, конец, 1)
listChunk = sampleList [индексы]
print ("Chunk", i, listChunk)
print ("После реверсирования", list (reversed (listChunk)))
начало = конец
если (i! = 2):
конец + = chunkSize
еще:
конец + = длина - размер чанка
Вопрос к упражнению 4. Для данного списка выполните итерацию по нему, подсчитайте количество вхождений каждого элемента и создайте словарь, чтобы показать количество каждого элемента.
Ожидаемый результат:
Исходный список [11, 45, 8, 11, 23, 45, 23, 45, 89] Счетчик печати каждого элемента {11: 2, 45: 3, 8: 1, 23: 2, 89: 1}
Решение :
sampleList = [11, 45, 8, 11, 23, 45, 23, 45, 89]
print ("Исходный список", sampleList)
countDict = dict ()
для элемента в sampleList:
если (элемент в countDict):
countDict [элемент] + = 1
еще:
countDict [item] = 1
print («Количество отпечатков каждого элемента», countDict)
Вопрос к упражнению 5: Для двух списков одинакового размера создайте набор, в котором будут показаны элементы из обоих списков в паре.
Ожидаемый результат:
Первый список [2, 3, 4, 5, 6, 7, 8] Второй список [4, 9, 16, 25, 36, 49, 64] Результат: {(6, 36), (8, 64), (4, 16), (5, 25), (3, 9), (7, 49), (2, 4)}
Решение :
firstList = [2, 3, 4, 5, 6, 7, 8]
print ("Первый список", firstList)
secondList = [4, 9, 16, 25, 36, 49, 64]
print ("Второй список", secondList)
результат = zip (firstList, secondList)
resultSet = set (результат)
print (resultSet)
Вопрос к упражнению 6. Для следующих двух наборов найдите пересечение и удалите эти элементы из первого набора
Ожидаемый результат:
Первый комплект {65, 42, 78, 83, 23, 57, 29} Второй набор {67, 73, 43, 48, 83, 57, 29} Пересечение: {57, 83, 29} Первый набор после удаления общего элемента {65, 42, 78, 23}
Решение :
firstSet = {23, 42, 65, 57, 78, 83, 29}
secondSet = {57, 83, 29, 67, 73, 43, 48}
print ("Первый набор", firstSet)
print ("Второй набор", secondSet)
пересечение = firstSet.пересечение (secondSet)
print ("Перекресток есть", перекресток)
для объекта в пересечении:
firstSet.remove (элемент)
print («Первый набор после удаления общего элемента», firstSet)
Exercise Question 7: Для двух наборов, проверяет, является ли один набор подмножеством или надмножеством другого набора. если подмножество найдено, удалите все элементы из этого набора
Например:
firstSet = {27, 43, 34} secondSet = {34, 93, 22, 27, 43, 53, 48}
Ожидаемый результат:
Первый комплект {57, 83, 29} Второй набор {67, 73, 43, 48, 83, 57, 29} Первый набор является подмножеством второго набора - True Второй набор является подмножеством Первого набора - Ложь Первый сет - Супер сет, второй сет - Ложь Второй набор - Супер набор, Первый набор - True Первый набор () Второй комплект {67, 73, 43, 48, 83, 57, 29}
Решение :
firstSet = {57, 83, 29}
secondSet = {57, 83, 29, 67, 73, 43, 48}
print ("Первый набор", firstSet)
print ("Второй набор", secondSet)
print ("Первый набор является подмножеством второго набора -", firstSet.issubset (secondSet))
print ("Второй набор является подмножеством Первого набора -", secondSet.issubset (firstSet))
print ("Первый набор - это супер набор второго набора -", firstSet.issuperset (secondSet))
print («Второй набор - это супер набор из первого набора -», secondSet.issuperset (firstSet))
если (firstSet.issubset (secondSet)):
firstSet.clear ()
если (secondSet.issubset (firstSet)):
secondSet.clear ()
print ("Первый набор", firstSet)
print ("Второй набор", secondSet)
Вопрос к упражнению 8: Выполните итерацию по заданному списку и проверьте, существует ли уже данный элемент в словаре как значение ключа, если не удалите его из списка
Дано:
rollNumber = [47, 64, 69, 37, 76, 83, 95, 97] sampleDict = {'Jhon': 47, 'Emma': 69, 'Kelly': 76, 'Jason': 97}
Ожидаемый результат:
после удаления нежелательных элементов из списка [47, 69, 76, 97]
Решение :
rollNumber = [47, 64, 69, 37, 76, 83, 95, 97]
sampleDict = {'Jhon': 47, 'Emma': 69, 'Kelly': 76, 'Jason': 97}
print ("Список -", rollNumber)
print ("Словарь -", sampleDict)
rollNumber [:] = [элемент для элемента в rollNumber, если элемент в sampleDict.ценности()]
print ("после удаления нежелательных элементов из списка", rollNumber)
Выход:
Список
- [47, 64, 69, 37, 76, 83, 95, 97] Словарь - {'Jhon': 47, 'Emma': 69, 'Kelly': 76, 'Jason': 97} [47, 69, 76, 97] после удаления нежелательных элементов из списка [47, 69, 76, 97]
Вопрос к упражнению 9. Для данного словаря получить все значения из словаря и добавить его в список, но не добавлять дубликаты
Дано:
speed = {'jan': 47, 'feb': 52, 'march': 47, 'April': 44, 'May': 52, 'June': 53, 'july': 54, 'Aug': 44, 'Sept': 54}
Ожидаемый результат: [47, 52, 44, 53, 54]
Решение :
speed = {'jan': 47, 'feb': 52, 'march': 47, 'April': 44, 'May': 52, 'June': 53,
июль: 54, август: 44, сентябрь: 54}
print ("Значения словаря -", speed.ценности())
speedList = список ()
для элемента в speed.values ():
если товар отсутствует в SpeedList:
speedList.append (элемент)
print ("уникальный список", speedList)
Выход:
Значения словаря - dict_values ([47, 52, 47, 44, 52, 53, 54, 44, 54]) уникальный список [47, 52, 44, 53, 54]
Вопрос к упражнению 10: Удалите дубликаты из списка, создайте кортеж и найдите минимальное и максимальное число
Например:
sampleList = [87, 45, 41, 65, 94, 41, 99, 94]
Ожидаемый результат:
уникальных предметов [87, 45, 41, 65, 99] кортеж (87, 45, 41, 65, 99) мин: 41 макс: 99
Решение :
sampleList = [87, 52, 44, 53, 54, 87, 52, 53]
print ("Исходный список", sampleList)
sampleList = список (набор (sampleList))
print ("уникальный список", sampleList)
кортеж = кортеж (список образцов)
print ("кортеж", кортеж)
print ("Минимальное число:", min (кортеж))
print ("Максимальное количество:", max (кортеж))
Выход:
Исходный список [87, 52, 44, 53, 54, 87, 52, 53] уникальный список [44, 52, 53, 54, 87] кортеж (44, 52, 53, 54, 87) Минимальное количество: 44 Максимальное количество: 87
.