Курс посвящен базовым понятиям и элементам языка программирования Python (операторы, числовые и строковые переменные, списки, условия и циклы). Курс является вводным и наиболее подойдет слушателям, не имеющим опыта написания программ ни на одном из языков программирования.
Переменные
Напишите программу:
Тимофей обычно спит ночью часов и устраивает себе днем тихий час на
минут. Определите, сколько всего минут Тимофей спит в сутки.
Внимание, программа принимает значения и
из стандартного потока ввода (функция
input
), результат надо выводить в стандартный поток вывода (функция print
). Обратите внимание на то, что приглашение, переданное в качестве аргумента в функцию input, считается выводом вашей программы. Используйте эту функцию без аргументов:
values = input() # без строки приглашения!
Sample Input 1:
7
30
Sample Output 1:
450
Sample Input 2:
0
42
Sample Output 2:
42
Коля каждый день ложится спать ровно в полночь и недавно узнал, что оптимальное время для его сна составляет минут. Коля хочет поставить себе будильник так, чтобы он прозвенел ровно через
минут после полуночи, однако для этого необходимо указать время сигнала в формате часы, минуты. Помогите Коле определить, на какое время завести будильник.
Часы и минуты в выводе программы должны располагаться на разных строках (см. пример работы программы)
Помните, что для считывания данных нужно вызывать функцию input
без аргументов!
Sample Input 1:
480
Sample Output 1:
8
0
Sample Input 2:
512
Sample Output 2:
8
32
Катя узнала, что ей для сна надо минут. В отличие от Коли, Катя ложится спать после полуночи в
часов и
минут. Помогите Кате определить, на какое время ей поставить будильник, чтобы он прозвенел ровно через
минут после того, как она ляжет спать.
На стандартный ввод, каждое в своей строке, подаются значения ,
и
. Гарантируется, что Катя должна проснуться в тот же день, что и заснуть. Программа должна выводить время, на которое нужно поставить будильник: в первой строке часы, во второй — минуты.
Sample Input 1:
480
1
2
Sample Output 1:
9
2
Sample Input 2:
475
1
55
Sample Output 2:
9
50
Условия
Из передачи “Здоровье” Аня узнала, что рекомендуется спать хотя бы часов в сутки, но пересыпать тоже вредно и не стоит спать более
часов. Сейчас Аня спит
часов в сутки. Если режим сна Ани удовлетворяет рекомендациям передачи “Здоровье”, выведите “Это нормально”. Если Аня спит менее
часов, выведите “Недосып”, если же более
часов, то выведите “Пересып”.
Получаемое число всегда меньше либо равно
.
На вход программе в три строки подаются переменные в следующем порядке: ,
,
.
Обратите внимание на регистр символов: вывод должен в точности соответствовать описанному в задании, т. е. если программа должна вывести "Пересып", выводы программы "пересып", "ПЕРЕСЫП", "ПеРеСыП" и другие не будут считаться верными.
Это первое не самое тривиальное задание на условное выражение. В случаях, когда разбить исполнение программы на несколько направлений, стоит внимательно обдумать все условия, которые нужно использовать. Особое внимание стоит уделить строгости используемых условных операторов: различайте и
;
и
. Для того, чтобы понимать, какой из них стоит использовать, внимательно прочитайте условие задания.
Sample Input 1:
6
10
8
Sample Output 1:
Это нормально
Sample Input 2:
7
9
10
Sample Output 2:
Пересып
Sample Input 3:
7
9
2
Sample Output 3:
Недосып
Задачи по материалам недели
В то далёкое время, когда Паша ходил в школу, ему очень не нравилась формула Герона для вычисления площади треугольника, так как казалась слишком сложной. В один прекрасный момент Павел решил избавить всех школьников от страданий и написать и распространить по школам программу, вычисляющую площадь треугольника по трём сторонам.
Одна проблема: так как эта формула не нравилась Павлу, он её не запомнил. Помогите ему завершить доброе дело и напишите программу, вычисляющую площадь треугольника по переданным длинам трёх его сторон по формуле Герона:
где
– полупериметр треугольника. На вход программе подаются целые числа, выводом программы должно являться вещественное число, соответствующее площади треугольника.
Sample Input:
3
4
5
Sample Output:
6.0
Напишите программу, принимающую на вход целое число, которая выводит True, если переданное значение попадает в интервал и
False
в противном случае (регистр символов имеет значение).
Sample Input 1:
20
Sample Output 1:
True
Sample Input 2:
-20
Sample Output 2:
False
Напишите простой калькулятор, который считывает с пользовательского ввода три строки: первое число, второе число и операцию, после чего применяет операцию к введённым числам ("первое число" "операция" "второе число") и выводит результат на экран.
Поддерживаемые операции: +, -, /, *, mod, pow, div, где
mod
— это взятие остатка от деления,
pow
— возведение в степень,
div
— целочисленное деление.
Если выполняется деление и второе число равно 0, необходимо выводить строку "Деление на 0!".
Обратите внимание, что на вход программе приходят вещественные числа.
Sample Input 1:
5.0
0.0
mod
Sample Output 1:
Деление на 0!
Sample Input 2:
-12.0
-8.0
*
Sample Output 2:
96.0
Sample Input 3:
5.0
10.0
/
Sample Output 3:
0.5
Жители страны Малевии часто экспериментируют с планировкой комнат. Комнаты бывают треугольные, прямоугольные и круглые. Чтобы быстро вычислять жилплощадь, требуется написать программу, на вход которой подаётся тип фигуры комнаты и соответствующие параметры, которая бы выводила площадь получившейся комнаты. Для числа π в стране Малевии используют значение 3.14.
Формат ввода, который используют Малевийцы:
треугольник
a
b
c
где a, b и c — длины сторон треугольника
прямоугольник
a
b
где a и b — длины сторон прямоугольника
круг
r
где r — радиус окружности
Sample Input 1:
прямоугольник
4
10
Sample Output 1:
40.0
Sample Input 2:
круг
5
Sample Output 2:
78.5
Sample Input 3:
треугольник
3
4
5
Sample Output 3:
6.0
Напишите программу, которая получает на вход три целых числа, по одному числу в строке, и выводит на консоль в три строки сначала максимальное, потом минимальное, после чего оставшееся число.
На ввод могут подаваться и повторяющиеся числа.
Sample Input 1:
8
2
14
Sample Output 1:
14
2
8
Sample Input 2:
23
23
21
Sample Output 2:
23
21
23
В институте биоинформатики по офису передвигается робот. Недавно студенты из группы программистов написали для него программу, по которой робот, когда заходит в комнату, считает количество программистов в ней и произносит его вслух: "n программистов".
Для того, чтобы это звучало правильно, для каждого нужно использовать верное окончание слова.
Напишите программу, считывающую с пользовательского ввода целое число (неотрицательное), выводящее это число в консоль вместе с правильным образом изменённым словом "программист", для того, чтобы робот мог нормально общаться с людьми, например: 1 программист, 2 программиста, 5 программистов.
В комнате может быть очень много программистов. Проверьте, что ваша программа правильно обработает все случаи, как минимум до 1000 человек.
Дополнительный комментарий к условию:
Обратите внимание, что задача не так проста, как кажется на первый взгляд. Если ваше решение не проходит какой-то тест, это значит, что вы не рассмотрели какой-то из случаев входных данных (число программистов ). Обязательно проверяйте свои решения на дополнительных значениях, а не только на тех, что приведены в условии задания.
Sample Input 1:
5
Sample Output 1:
5 программистов
Sample Input 2:
0
Sample Output 2:
0 программистов
Sample Input 3:
1
Sample Output 3:
1 программист
Sample Input 4:
2
Sample Output 4:
2 программиста
Дополнительная
Паша очень любит кататься на общественном транспорте, а получая билет, сразу проверяет, счастливый ли ему попался. Билет считается счастливым, если сумма первых трех цифр совпадает с суммой последних трех цифр номера билета.
Однако Паша очень плохо считает в уме, поэтому попросил вас написать программу, которая проверит равенство сумм и выведет "Счастливый", если суммы совпадают, и "Обычный", если суммы различны.
На вход программе подаётся строка из шести цифр.
Выводить нужно только слово "Счастливый" или "Обычный", с большой буквы.
Sample Input 1:
090234
Sample Output 1:
Счастливый
Sample Input 2:
123456
Sample Output 2:
Обычный
Цикл while
Напишите программу, которая считывает со стандартного ввода целые числа, по одному числу в строке, и после первого введенного нуля выводит сумму полученных на вход чисел.
Sample Input 1:
5
-3
8
4
0
Sample Output 1:
14
Sample Input 2:
0
Sample Output 2:
0
В Институте биоинформатики между информатиками и биологами устраивается соревнование. Победителям соревнования достанется большой и вкусный пирог. В команде биологов человек, а в команде информатиков —
человек.
Нужно заранее разрезать пирог таким образом, чтобы можно было раздать кусочки пирога любой команде, выигравшей соревнование, при этом каждому участнику этой команды должно достаться одинаковое число кусочков пирога. И так как не хочется резать пирог на слишком мелкие кусочки, нужно найти минимальное подходящее число.
Напишите программу, которая помогает найти это число.
Программа должна считывать размеры команд (два положительных целых числа и
, каждое число вводится на отдельной строке) и выводить наименьшее число
, которое делится на оба этих числа без остатка.
Sample Input 1:
1
2
Sample Output 1:
2
Sample Input 2:
7
5
Sample Output 2:
35
Sample Input 3:
15
15
Sample Output 3:
15
Операторы break, continue
Напишите программу, которая считывает целые числа с консоли по одному числу в строке.
Для каждого введённого числа проверить:
если число меньше 10, то пропускаем это число;
если число больше 100, то прекращаем считывать числа;
в остальных случаях вывести это число обратно на консоль в отдельной строке.
Sample Input 1:
12
4
2
58
112
Sample Output 1:
12
58
Sample Input 2:
101
Sample Output 2:
Sample Input 3:
1
2
102
Sample Output 3:
Цикл for
Когда Павел учился в школе, он запоминал таблицу умножения прямоугольными блоками. Для тренировок ему бы очень пригодилась программа, которая показывала бы блок таблицы умножения.
Напишите программу, на вход которой даются четыре числа ,
,
и
, каждое в своей строке. Программа должна вывести фрагмент таблицы умножения для всех чисел отрезка
на все числа отрезка
.
Числа ,
,
и
являются натуральными и не превосходят 10,
.
Следуйте формату вывода из примера, для разделения элементов внутри строки используйте '\t' — символ табуляции. Заметьте, что левым столбцом и верхней строкой выводятся сами числа из заданных отрезков — заголовочные столбец и строка таблицы.
Sample Input 1:
7
10
5
6
Sample Output 1:
5 6
7 35 42
8 40 48
9 45 54
10 50 60
Sample Input 2:
5
5
6
6
Sample Output 2:
6
5 30
Sample Input 3:
1
3
2
4
Sample Output 3:
2 3 4
1 2 3 4
2 4 6 8
3 6 9 12
Напишите программу, которая считывает с клавиатуры два числа и
, считает и выводит на консоль среднее арифметическое всех чисел из отрезка
, которые делятся на
.
В приведенном ниже примере среднее арифметическое считается для чисел на отрезке . Всего чисел, делящихся на
, на этом отрезке
. Их среднее арифметическое равно
На вход программе подаются интервалы, внутри которых всегда есть хотя бы одно число, которое делится на .
Sample Input:
-5
12
Sample Output:
4.5
Строки и символы
GC-состав является важной характеристикой геномных последовательностей и определяется как процентное соотношение суммы всех гуанинов и цитозинов к общему числу нуклеиновых оснований в геномной последовательности.
Напишите программу, которая вычисляет процентное содержание символов G (гуанин) и C (цитозин) в введенной строке (программа не должна зависеть от регистра вводимых символов).
Например, в строке "acggtgttat" процентное содержание символов G и C равно , где 4 - это количество символов G и C, а 10 - это длина строки.
Sample Input:
acggtgttat
Sample Output:
40.0
Узнав, что ДНК не является случайной строкой, только что поступившие в Институт биоинформатики студенты группы информатиков предложили использовать алгоритм сжатия, который сжимает повторяющиеся символы в строке.
Кодирование осуществляется следующим образом:
s = 'aaaabbсaa' преобразуется в 'a4b2с1a2', то есть группы одинаковых символов исходной строки заменяются на этот символ и количество его повторений в этой позиции строки.
Напишите программу, которая считывает строку, кодирует её предложенным алгоритмом и выводит закодированную последовательность на стандартный вывод. Кодирование должно учитывать регистр символов.
Sample Input 1:
aaaabbcaa
Sample Output 1:
a4b2c1a2
Sample Input 2:
abc
Sample Output 2:
a1b1c1
Списки
Напишите программу, на вход которой подается одна строка с целыми числами. Программа должна вывести сумму этих чисел.
Используйте метод split
строки.
Sample Input:
4 -1 9 3
Sample Output:
15
Напишите программу, на вход которой подаётся список чисел одной строкой. Программа должна для каждого элемента этого списка вывести сумму двух его соседей. Для элементов списка, являющихся крайними, одним из соседей считается элемент, находящий на противоположном конце этого списка. Например, если на вход подаётся список "1 3 5 6 10", то на выход ожидается список "13 6 9 15 7" (без кавычек).
Если на вход пришло только одно число, надо вывести его же.
Вывод должен содержать одну строку с числами нового списка, разделёнными пробелом.
Sample Input 1:
1 3 5 6 10
Sample Output 1:
13 6 9 15 7
Sample Input 2:
10
Sample Output 2:
10
Напишите программу, которая принимает на вход список чисел в одной строке и выводит на экран в одну строку значения, которые повторяются в нём более одного раза.
Для решения задачи может пригодиться метод sort списка.
Выводимые числа не должны повторяться, порядок их вывода может быть произвольным.
Sample Input 1:
4 8 0 3 4 2 0 3
Sample Output 1:
0 3 4
Sample Input 2:
10
Sample Output 2:
Sample Input 3:
1 1 2 2 3 3
Sample Output 3:
1 2 3
Sample Input 4:
1 1 1 1 1 2 2 2
Sample Output 4:
1 2
Задачи по материалам недели
Напишите программу, которая считывает с консоли числа (по одному в строке) до тех пор, пока сумма введённых чисел не будет равна 0 и сразу после этого выводит сумму квадратов всех считанных чисел.
Гарантируется, что в какой-то момент сумма введённых чисел окажется равной 0, после этого считывание продолжать не нужно.
В примере мы считываем числа 1, -3, 5, -6, -10, 13; в этот момент замечаем, что сумма этих чисел равна нулю и выводим сумму их квадратов, не обращая внимания на то, что остались ещё не прочитанные значения.
Sample Input:
1
-3
5
-6
-10
13
4
-8
Sample Output:
340
Напишите программу, которая выводит часть последовательности 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 ... (число повторяется столько раз, чему равно). На вход программе передаётся неотрицательное целое число n — столько элементов последовательности должна отобразить программа. На выходе ожидается последовательность чисел, записанных через пробел в одну строку.
Например, если n = 7, то программа должна вывести 1 2 2 3 3 3 4.
Sample Input:
7
Sample Output:
1 2 2 3 3 3 4
Напишите программу, которая считывает список чисел из первой строки и число
из второй строки, которая выводит все позиции, на которых встречается число
в переданном списке
.
Позиции нумеруются с нуля, если число не встречается в списке, вывести строку "Отсутствует" (без кавычек, с большой буквы).
Позиции должны быть выведены в одну строку, по возрастанию абсолютного значения.
Sample Input 1:
5 8 2 7 8 8 2 4
8
Sample Output 1:
1 4 5
Sample Input 2:
5 8 2 7 8 8 2 4
10
Sample Output 2:
Отсутствует