Архив рубрики: Python

Python: Задачи и решения (Глава 1. Начало работы. Программа Game Over).

Продолжаем учиться программированию. После второй главы в книге: Майкл Доусон “Программируем на Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), где я изучила особенности работы с текстом в языке программирования Python, предложены задания. Давайте выполнять их вместе. Я приведу свой вариант решения, а вы пишите ваши варианты в комментариях.

Читать

Python: Задачи и решения (Глава 2. Типы, переменные и основы ввода-вывода. Программа “Бесполезные факты”).

Продолжаем учиться программированию. После второй главы в книге: Майкл Доусон “Программируем на Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), где я изучила особенности работы с текстом в языке программирования Python, предложены задания. Давайте выполнять их вместе. Я приведу свой вариант решения, а вы пишите ваши варианты в комментариях.

Читать

Пользовательский ввод и его обработка в Python

Эффективная обработка вводимых данных является ключевым фактором для создания удобной для пользователя программы. Управление вводом данных может существенно повлиять на удобство работы пользователя и общий успех программы.

Python предоставляет широкий спектр инструментов для эффективного управления вводом, от встроенной функции input() до более продвинутых модулей, таких как argparse, и регулярных выражений. Однако в этой статье мы сосредоточимся на основах работы с пользовательским вводом в Python. Мы познакомимся с функцией input() и рассмотрим лучшие практики ее эффективного использования. К концу этой статьи вы будете лучше понимать, как работать со вводом данных в ваших программах на Python. Итак, давайте начнем! Читать

Готовые скрипты Python для автоматизации работы

Вам надоело выполнять повторяющиеся задачи в повседневной работе? Скрипт на Python может стать решением проблемы. В этом посте мы рассмотрим скрипты, которые помогут вам автоматизировать различные задачи и повысить производительность труда.

Если вы разработчик, аналитик данных или просто хотите упростить свой рабочий процесс, это вам пригодится. Читать

Алгоритм пузырьковой сортировки на Python

Пузырьковая сортировка – один из самых интуитивно понятных алгоритмов сортировки и идеальная отправная точка для всех, кто интересуется миром алгоритмов. Несмотря на свою простоту, пузырьковая сортировка дает наглядный пример фундаментальных концепций сортировки. В этой статье мы рассмотрим механику пузырьковой сортировки на примере реализации этого алгоритма на языке Python.

Что такое пузырьковая сортировка?

Пузырьковая сортировка – это алгоритм, основанный на сравнении, который сортирует список путем многократного прохода по списку, сравнения соседних элементов и их замены, если они расположены в неправильном порядке. Проход по списку повторяется до тех пор, пока список не будет отсортирован.

Название “пузырьковая сортировка” происходит от того, что мелкие элементы “всплывают” в верхнюю часть списка (начало массива), а крупные “опускаются” в нижнюю часть (конец массива).

Вот пошаговое объяснение того, как это работает:

  1. Начните с первых двух элементов и сравните их.
  2. Если первый элемент больше второго, то они меняются местами.
  3. Перейдите к следующей паре элементов и повторите процесс.
  4. Продолжайте менять местами элементы до тех пор, пока самый большой элемент не окажется в нужном месте в конце списка.
  5. Уменьшите диапазон элементов на единицу (так как самый большой теперь отсортирован) и повторите процесс для оставшихся элементов.

Реализация пузырьковой сортировки на Python

Рассмотрим код на языке Python, выполняющий пузырьковую сортировку:

def bubblesort(arr):
    n = len(arr)

    # Traverse through all array elements
    for i in range(n):
        # Last i elements are already in place, so the inner loop can skip them
        for j in range(n - i - 1):
            # Traverse the array from 0 to n-i-1 and swap if the element found is greater than the next element
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    
    return arr

Как работает этот код?

  1. Определим функцию bubblesort, которая принимает массив arr в качестве аргумента.
  2. Сохраняем длину массива в переменной n, потому что нам нужно знать, когда остановить процесс сортировки.
  3. Мы используем вложенный цикл, где внешний цикл представляет собой количество проходов, необходимых для сортировки массива, а внутренний проходит по сравниваемым элементам.
  4. Во внутреннем цикле мы выполняем сравнение: if arr[j] > arr[j+1]:. Таким образом мы проверяем, больше ли текущий элемент, чем следующий элемент.
  5. Если текущий элемент больше, то мы меняем местами два элемента, используя распаковку кортежа: arr[j], arr[j+1] = arr[j+1], arr[j].
  6. После каждого прохода наибольший элемент текущего подсписка “всплывает” на свое место, и на следующей итерации его можно не учитывать, чего мы и добиваемся, уменьшая диапазон внутреннего цикла.
  7. Процесс продолжается до тех пор, пока массив не будет отсортирован.
  8. Возвращаем отсортированный массив.

Заключение

Пузырьковая сортировка, хотя и не является самым эффективным алгоритмом для больших наборов данных из-за своей сложности O(n²), является отличным образовательным инструментом для понимания фундаментальных концепций сортировки. Благодаря своей простоте он идеально подходит для небольших списков и для учебных целей.

В нашей реализации на языке Python мы увидели, как можно использовать вложенные циклы для применения логики алгоритма и как простые замены могут привести к полностью отсортированному списку. Я надеюсь, что этот обзор пузырьковой сортировки поможет вам понять не только принцип ее работы, но и принципы, лежащие в основе многих других алгоритмов сортировки.

Перевод статьи «Bubblesort algorithm with Python».

Сообщение Алгоритм пузырьковой сортировки на Python появились сначала на pythonturbo.


Source: pythonturbo.ru

Как заработать на Python: превращаем код в золото

Привет, друзья! В сегодняшней статье мы рассмотрим 4 способа превращения кода в золото. То есть вкратце разберем, как заработать на знании Python.

1. Создание контента

Первый метод – это создание контента. Вы можете завести блог на Medium, WordPress или любой другой платформе. Это может стать вашим побочным или даже постоянным заработком. Просто предоставляйте качественный контент, и деньги придут.

Если не любите писать, можете создать канал на YouTube. Но помните, что контент – это король, а качественный контент привлекает больше людей.

2. Веб-разработка

Заработать на веб-разработке на Python – это самый быстрый способ получения дохода с помощью этого языка, так как спрос на услуги веб-разработчиков стабильно высокий. Вы можете создавать сайты и продавать их компаниям или частным лицам или предоставлять услуги по веб-разработке на таких фриланс-платформах, как Upwork, Fiverr и т.д.

3. Веб-скрапинг

На языке Python очень легко выполнять веб-скрапинг и это самый простой способ начать зарабатывать на нем как фрилансер. Вы можете изучить такие библиотеки, как beautifulsoup и requests, и начать зарабатывать деньги в Интернете.

Веб-скрапинг на Python выглядит следующим образом:

import requests
from bs4 import BeautifulSoup
import csv

file = []

country_list = ['Afghanistan', 'Albania', 'Algeria', 'Andorra', 'Angola', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Australia', 'Austria', 'Azerbaijan', 'The Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Brazil', 'Bulgaria', 'Burkina Faso', 'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Central African Republic', 'Chad', 'China', 'Colombia', 'Democratic Republic of the Congo', 'Costa Rica', 'Croatia', 'Cuba', 'Denmark', 'Dominica', 'Dominican Republic', 'East Timor', 'Ecuador', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Eswatini', 'Ethiopia', 'Finland', 'France', 'Gabon', 'The Gambia', 'Georgia (country)', 'Germany', 'Ghana', 'Grenada', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Honduras', 'Hungary', 'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Republic of Ireland', 'Israel', 'Italy', 'Ivory Coast', 'Jamaica', 'Japan', 'Jordan', 'Kazakhstan', 'Kenya', 'Kiribati', 'Kuwait', 'Kyrgyzstan', 'Laos', 'Latvia', 'Lebanon', 'Liberia', 'Libya', 'Lithuania', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Mauritania', 'Mauritius', 'Federated States of Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Mozambique', 'Myanmar', 'Namibia', 'Nauru', 'Nepal', 'Kingdom of the Netherlands', 'New Zealand', 'Nicaragua', 'Nigeria', 'North Korea', 'North Macedonia', 'Norway', 'Oman', 'Pakistan', 'Palau', 'Panama', 'Papua New Guinea', 'Paraguay', 'Poland', 'Portugal', 'Qatar', 'Romania', 'Russia', 'Rwanda', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'São Tomé and Príncipe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Sierra Leone', 'Singapore', 'Slovakia', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Korea', 'South Sudan', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Switzerland', 'Syria', 'Tajikistan', 'Tanzania', 'Thailand', 'Tonga', 'Trinidad and Tobago', 'Tunisia', 'Turkmenistan', 'Tuvalu', 'Uganda', 'Ukraine', 'United Arab Emirates', 'United States', 'Uruguay', 'Uzbekistan', 'Vanuatu', 'Venezuela', 'Vietnam', 'Zambia', 'Zimbabwe']
def main():
    for loop in country_list:
        page = requests.get(f"https://en.wikipedia.org/wiki/{loop}")
        src = page.content
        soup = BeautifulSoup(src,"html.parser")
        country_name = soup.find("span",class_="mw-page-title-main")
        if country_name:
            country_name = country_name.text.strip()
        country_flag = soup.find("a",class_="mw-file-description")
        if country_flag:
            country_flag ="https://en.wikipedia.org" + country_flag.get("href")
        country_capital = soup.find("td",class_="infobox-data").a
        if country_capital:
            country_capital = country_capital.text

        file.append({"Country Name":country_name,
                    "Country Capital":country_capital,
                    "Country Flag":country_flag,
                    })
        
        keys = file[0].keys()

    with open("Countries.csv","w",newline="",encoding="UTF-8") as f:
        writer = csv.DictWriter(f,keys)
        writer.writeheader()
        writer.writerows(file)
        print("File Created")

main()

4. Анализ данных с помощью Python

Да, вы можете стать аналитиком данных на Python, если вы хорошо владеете этим языком и любите работать с данными. Вы можете анализировать данные на Python для предприятий и частных лиц, помогая им принимать решения на основе данных. А можете и работать как фрилансер – в области анализа данных есть много возможностей.

Перевод статьи “Python Alchemy: 4 Ways to Turning Code into Gold”.

Сообщение Как заработать на Python: превращаем код в золото появились сначала на pythonturbo.


Source: pythonturbo.ru