gvard.github.io/py/

Как работает компьютер. Что надо знать программисту при написании программ

Python третьей версии

Скачать дистрибутив Python третьей версии, установить, запустить среду разработки IDLE.

Встроенные функции

Список встроенных функций, примерно 70. У любой функции после имени есть скобки: (). В них через запятую перечисляются аргументы функции. Любая функция имеет вывод, который можно записать в переменную при помощи оператора присваивания =

Ключевые слова

Ключевые слова нельзя использовать в качестве названий переменных!

False      await      else       import     pass
None       break      except     in         raise
True       class      finally    is         return
and        continue   for        lambda     try
as         def        from       nonlocal   while
assert     del        global     not        with
async      elif       if         or         yield

Операторы

+       -       *       **      /       //      %      @
<<      >>      &       |       ^       ~       :=
<       >       <=      >=      ==      !=

Неиспользуемые (кроме елемента строк) символы

$       ?       `

Типы данных

Методы строк пишутся через точку после строки или переменной, которая ее содержит:

"Я помню чудное мгновенье...".replace("помню", "забыл")

Работа с данными

И еще немного данных

Запросы при помощи urllib.request и json. Практика запросов при помощи открытых API

Материалы, задачи и решения – на отдельной странице.

Задачи

Задачи с решениями или подсказками:

Строки

s = "In the hole in the ground there lived a hobbit"
Две половинки

Дана строка. Разрежьте ее на две равные части (если длина строки – четная, а если длина строки нечетная, то длина первой части должна быть на один символ больше). Переставьте эти две части местами, результат запишите в новую строку и выведите на экран.


Переставить два слова

Дана строка, состоящая ровно из двух слов, разделенных пробелом. Переставьте эти слова местами. Результат запишите в строку и выведите получившуюся строку.


Удаление фрагмента

Дана строка, в которой буква h встречается минимум два раза. Удалите из этой строки первое и последнее вхождение буквы h, а также все символы, находящиеся между ними.


Обращение фрагмента

Дана строка, в которой буква h встречается как минимум два раза. Разверните последовательность символов, заключенную между первым и последнием появлением буквы h, в противоположном порядке.



Улитка на склоне

Тихо, тихо ползи,
Улитка, по склону Фудзи
Вверх, до самых высот!
Кобаяси Исса (перевод В.Марковой)
«О, Улитка! Взбираясь к вершине Фудзи, можешь не торопиться... Там на вершине Фудзи улиток полно и так»
В. Пелевин

Улитка ползет по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. Программа получает на вход натуральные числа h, a, b. Гарантируется, что a>b.

  1. На какой день улитка доползет до вершины шеста?
  2. Скорости улитки - дробные числа. Улитке мешает (или помогает) ветер, сила которого задана случайной величиной.
  3. Не все улитки выносливы. Их время жизни составляет в среднем 8 лет, но не в сложных погодных условиях при круглосуточном движении. Ввести ограничение на время жизни в программу.
  4. Перед малакологами стоит задача найти самый быстрый вид улиток из сотни тысяч уже известных. Провести чемпионат улиток, посчитав результаты с точностью до долей часа. Скорость сползания и заползания задать случайными числами.



Календарь

Дано натуральное число. Требуется определить, является ли год с данным номером високосным:


Яша плавает в бассейне. Яша плавал в бассейне размером NM метров и устал. В этот момент он обнаружил, что находится на расстоянии x метров от одного из длинных бортиков (не обязательно от ближайшего) и y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик?

Программа получает на вход числа N, M, x, y. Программа должна вывести число метров, которое нужно проплыть Яше до бортика.

Шахматы

Даны две различные клетки шахматной доски. Определите, может ли шахматная фигура попасть с первой клетки на вторую одним ходом.
  1. Шахматная ладья (♖,♜) ходит по горизонтали или вертикали
  2. Шахматный король (♔,♚) ходит по горизонтали, вертикали и диагонали, но только на 1 клетку
  3. Шахматный ферзь (♕, ♛) ходит по диагонали, горизонтали или вертикали
  4. Шахматный слон (♗,♝) ходит по диагонали
  5. Шахматный конь (♘,♞) ходит буквой "Г" – на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот
  6. Заданы две клетки шахматной доски. Если они покрашены в один цвет, то выведите слово 1, а если в разные цвета – то 0
  7. За сколько ходов шахматный конь может попасть на заданную клетку доски?
  8. Ферзи. Известно, что на доске 8×8 можно расставить 8 ферзей так, чтобы они не били друг друга. Вам дана расстановка 8 ферзей на доске, определите, есть ли среди них пара бьющих друг друга.
Пешка (♙,♟)

Написать функцию, задающую поведение пешки.


ГНЧЭ-1

"ГНЧЭ-1" – сложное электронное устройство, выдающее каждую секунду очередное число последовательности 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5... Ввиду дороговизны электронных комплектующих вам поручено разработать эмулятор для этого устройства.

Входные данные
Дано количество секунд (от 1 до 1000000), которые работает генератор после включения.

Выходные данные
Результат работы генератора

def generator(x):
    """Эмулятор ГНЧЭ-1: генератор секунд"""
    for i in range(1, x + 1):
        multiplier(i)

def multiplier(i):
    """Размножитель"""
    for _ in range(i):
        print(i, end=", ")

x = int(input("Количество секунд: "))
generator(x)

Раздвоитель

Исполнитель “Раздвоитель” преобразует натуральные числа. У него есть две команды: “Вычесть 1” и “Разделить на 2”, первая команда уменьшает число на 1, вторая команда уменьшает число в два раза, если оно чётное, иначе происходит ошибка.


Задается случайное вещественное число. Определить максимальную цифру этого числа.


Гипотенуза: Дано два числа a и b. Выведите гипотенузу треугольника с заданными катетами.

Следующее и предыдущее: Напишите программу, которая считывает целое число и выводит текст: предыдущее целое число, следующее целое число.

Дележ яблок - 1: n школьников делят k яблок поровну, неделяющийся остаток остается в корзинке. Сколько яблок достанется каждому школьнику?

Дележ яблок - 2: n школьников делят k яблок поровну, неделяющийся остаток остается в корзинке. Сколько яблок останется в корзинке?

Последняя цифра: Дано натуральное число. Выведите его последнюю цифру

Число десятков двузначного числа: Дано двузначное число. Найдите число десятков в нем

Число десятков: Дано натуральное число. Найдите число десятков в его десятичной записи.

Следующее четное: Дано целое число n. Выведите следующее за ним четное число.

Электронные часы - 1: Дано число n. С начала суток прошло n минут. Определите, сколько часов и минут будут показывать электронные часы в этот момент. Вводится число n - целое, положительное. Программа должна вывести два числа: количество часов (от 0 до 23) и количество минут (от 0 до 59). Учтите, что число n может быть больше, чем количество минут в сутках.


Конец уроков

В некоторой школе занятия начинаются в 9:00. Продолжительность урока — 45 минут, после 1-го, 3-го, 5-го и т.д. уроков перемена 5 минут, а после 2-го, 4-го, 6-го и т.д. — 15 минут.
Дан номер урока (число от 1 до 10). Определите, когда заканчивается указанный урок.
Выведите два целых числа: время окончания урока в часах и минутах.


Стоимость покупки

Пирожок в столовой стоит a рублей и b копеек. Определите, сколько рублей и копеек нужно заплатить за n пирожков. Входные данные
Программа получает на вход три числа: a, b, n - целые, положительные, не превышают 10000. Выходные данные
Программа должна вывести два числа: стоимость покупки в рублях и копейках.


Ссылки

Workflow