- Циклы
- Упражнения на range.
- Пример 1. Прочитаем числа и распечатаем их
- Задача 1. Положительные числа
- Задача 2. От -10 до 10
- Задача 3. Сумма чисел
- Задача 4. Сумма отрицательных чисел
- Задача 5. Сколько отрицательных чисел
- Задача 6. Максимум
- Задача 7. Минимум
- Пример 2. Есть число 5?
- Задача 8. Капитан Флинт (целые числа)
- Пример 3. Напечатать строку по символам
- Задача 9
- Задача 10. Скобки for_14
- Задача 12. for_8
- Задача 12. for_8
- Задача 17. Правильные скобки
Циклы
Упражнения на range.
- Напечатать числа от 0 до 10 (НЕ включая 10).
- Напечатать числа от 1 до 10 включительно через одно число.
- Напечатать числа от 1 до 20 включительно с шагом 5 чисел ( 1, 6, 11, 16 и так далее.)
- Напечатать числа от 10 (не включая n) до 0 (включая).
- Напечатать числа от 20 до 1 (включая) с шагом 4.
- Напечатать числа от k до n с шагом 4 (например, если k=1, то 1, 5, 9 и так далее.)
Пример 1. Прочитаем числа и распечатаем их
На строке даны числа через пробел. Напечатать все числа по одному числу на строку.a = map(int, input().split()) # прочитали 1 строку, разбили ее на слова, из слов получили числа, записали их в a for x in a: # для каждого элемента из a print(x) # напечатать этот элемент
Input | Output |
---|---|
3 46 -2 18 | 3 |
Задача 1. Положительные числа
Даны числа. Напечатать только положительные числа.Input | Output |
---|---|
3 46 -2 18 | 3 |
Задача 2. От -10 до 10
Даны числа. Напечатать только числа от -10 до 10.Input | Output |
---|---|
3 46 -2 18 | 3 |
Задача 3. Сумма чисел
Даны числа. Найти их сумму.Input | Output |
---|---|
3 46 -2 18 | 65 |
# отдельная функция, которая считает и возвращает сумму чисел в последовательности def mysum(m): res = 0 for x in m: res = res + x print('x=', x, 'res=', res) return res # основная программа: читаем числа и считаем их сумму a = map(int, input().split()) print("END: res=", mysum(a))
Задача 4. Сумма отрицательных чисел
Даны числа. Найти сумму отрицательных чисел.Input | Output |
---|---|
-3 46 -2 18 | -5 |
Задача 5. Сколько отрицательных чисел
Даны числа. Сколько из них отрицательных чисел?Input | Output |
---|---|
-3 46 -2 -18 | 3 |
Задача 6. Максимум
Даны числа. Найти самое большое число.Input | Output |
---|---|
-3 46 -2 18 | 46 |
Задача 7. Минимум
Даны числа. Найти самое маленькое число.Input | Output |
---|---|
-3 46 -2 18 | -3 |

x = None if x is None: print("В х нет числа") x = 5 if x is not None: print("х не None")
Пример 2. Есть число 5?
Даны числа. Есть ли в них число 5?a = map(int, input().split()) # прочитали строку, разделили на слова, сделали из них числа и сохранили в а for x in a: # для каждого х в этих числах if x == 5: # если x = 5 print("Есть число 5") # печатаем (один раз!) break # выходим из цикла (чтобы не печатать много раз) print(x) # печатаем каждый раз число х else: # ТОЛЬКО если break не работал print("Нет числа 5") # конец цикла # сюда выйдет break
Задача 8. Капитан Флинт (целые числа)
Капитан Флинт зарыл клад на Острове сокровищ. Он оставил описание, как найти клад. Описание состоит из строк вида: "0 5", где первое число – одно из 0 (North, север), 2 (Sout, юг), 1 (East, восток), 3 (West, запад), а второе число – количество шагов, необходимое пройти в этом направлении. Напишите программу, которая по описанию пути к кладу определяет точные координаты клада, считая, что начало координат находится в начале пути, ось OX направлена на восток, ось OY – на север. Программа получает на вход последовательность строк указанного вида, завершающуюся строкой со словом "Treasure!". Программа должна вывести два целых числа: координаты клада. Путь 5 шагов на север, 3 шага на восток, 1 шаг на юг мы запишем как: 0 51 3
2 1
Treasure!
Вход | Выход |
---|---|
0 5 1 3 2 1 Treasure! | 3 4 |
x = 0 y = 0 while True : # прочитали одну строку в line line = input() # если Treasure! надо напечатать координаты и остановиться if line == 'Treasure!' : print(x, y) break # line разбили на части и каждую часть сделали int direction, d = map(int, line.split()) if direction == 0 : # север y = y + d # тут нужно дописать решение для юг, восток, запад
Пример 3. Напечатать строку по символам
Можно в цикле по символам напечатать стоку:s = input() # прочитать строку for x in s: # для каждого символа в строке s print(x) # напечатать этот символ
Input | Output |
---|---|
Hello | H |
Задача 9
Дана строка. Сколько раз в строке встретилась буква z?Input | Output |
---|---|
azzzbz | 4 |
z | 1 |
Hello | |
ZZZ |
Задача 10. Скобки for_14
Дана строка из скобок. Напечатать YES, если это правильная скобочная последовательность. Иначе напечатать NO.Input | Output |
---|---|
()() | YES |
(()()) | YES |
((())) | YES |
(() | NO |
()) | NO |
)( | NO |
Задача 12. for_8
Дано число N. Напечатать символ * N раз без пробеловfor i in range(4): print('*', end='') # end='' - не делать новую строку, не делать пробелов
Input | Output |
---|---|
4 | **** |
1 | * |
Задача 13. for_9
Даны числа M и N. Вывести символами * прямоугольник M строк на N столбцов.Input | Output |
---|---|
3 4 | **** **** **** |
Задача 14. for_91
Даны числа M и N. Вывести символами * рамку M строк на N столбцов. Середину печатать пробелами.Input | Output |
---|---|
3 4 | **** |
Задача 15. Второй минимум
Даны целые числа. Найти в один проход минимум и второй минимум в этой последовательности.Input | Output |
---|---|
3 -5 7 1 0 10 | -5 0 |
3 5 7 1 -1 10 | -1 1 |
3 5 7 1 13 10 | 1 3 |
3 5 7 1 13 1 | 1 1 |
2019 год подфак
print('***') # напечатать *** и встать на новую строку print('***', end='') # напечатать *** и остаться где закончили печатать print('') # перейти на новую строку
Задача 12. for_8
Дано число N. Напечатать символ * N раз без пробеловfor i in range(4): print('*', end='') # end='' - не делать новую строку, не делать пробелов
Input | Output |
---|---|
4 | **** |
1 | * |
Задача 13. for_9
Даны числа M и N. Вывести символами * прямоугольник M строк на N столбцов.Input | Output |
---|---|
3 4 | **** **** **** |
Задача 14. for_91
Даны числа M и N. Вывести символами * рамку M строк на N столбцов. Середину печатать пробелами.Input | Output |
---|---|
3 4 | **** |
Задача 15. Второй минимум
Даны целые числа. Найти в один проход минимум и второй минимум в этой последовательности.Input | Output |
---|---|
3 -5 7 1 0 10 | -5 0 |
3 5 7 1 -1 10 | -1 1 |
3 5 7 1 13 10 | 1 3 |
3 5 7 1 13 1 | 1 1 |
Задача 13b. треугольник с равными катетами
Дано число N. Вывести символами * треугольник с катетами N строк на N столбцов.Input | Output |
---|---|
3 | * ** *** |
Задача 13c. треугольник
Даны числа M и N. Вывести символами * треугольник M строк на N столбцов. Рекомендую изучить Алгоритм Брезенхэма Используйте алгоритм для определения где заканчивается гипотенуза.Текстовые задачи
Максимальное число одинаковых чисел
Дана последовательность чисел. Определите, какое наибольшее число подряд идущих элементов этой последовательности равны друг другу.Input | Output |
---|---|
3 1 1 1 5 7 | 3 |
1 9 9 6 8 3 3 0 | 2 |
1 2 3 |
Задача. Максимальная длина монотонной последовательности
Даны числа. Определите наибольшую длину монотонного фрагмента последовательности (то есть такого фрагмента, где все элементы либо больше или равны предыдущего, либо меньше или равны).Input | Output |
---|---|
3 1 1 1 5 7 | 5 |
1 9 9 6 3 8 3 0 | 4 |
1 2 1 3 | 2 |
Задача. Минимальное расстояние между локальными максимумами.
Даны числа. Найдите наименьшее расстояние (сколько чисел) между двумя локальными (строгими) максимумами. Если локальный максимум один, то напечатайте 0.Задача 8. Капитан Флинт (целые числа)
Капитан Флинт зарыл клад на Острове сокровищ. Он оставил описание, как найти клад. Описание состоит из строк вида: "0 5", где первое число – одно из 0 (North, север), 2 (Sout, юг), 1 (East, восток), 3 (West, запад), а второе число – количество шагов, необходимое пройти в этом направлении. Напишите программу, которая по описанию пути к кладу определяет точные координаты клада, считая, что начало координат находится в начале пути, ось OX направлена на восток, ось OY – на север. Программа получает на вход последовательность строк указанного вида, завершающуюся строкой со словом "Treasure!". Программа должна вывести два целых числа: координаты клада. Путь 5 шагов на север, 3 шага на восток, 1 шаг на юг мы запишем как: 0 51 3
2 1
Treasure!
Вход | Выход |
---|---|
0 5 1 3 2 1 Treasure! | 3 4 |
x = 0 y = 0 while True : # прочитали одну строку в line line = input() # если Treasure! надо напечатать координаты и остановиться if line == 'Treasure!' : print(x, y) break # line разбили на части и каждую часть сделали int direction, d = map(int, line.split()) if direction == 0 : # север y = y + d # тут нужно дописать решение для юг, восток, запад
Задача 17. Правильные скобки
Дана строка из скобок. Напечатать YES, если скобки расставлены правильно и NO, если неправильно.Input | Output |
---|---|
(()()) | YES |
(() | NO |
(())) | NO |
)( | NO |
-- TatyanaDerbysheva - 13 Oct 2017