Как работает компьютер. Что надо знать программисту при написании программ
Скачать дистрибутив 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("помню", "забыл")
Задачи с решениями или подсказками:
s = "In the hole in the ground there lived a hobbit"
Две
половинки
Дана строка. Разрежьте ее на две равные части (если длина строки – четная, а если длина строки нечетная, то длина первой части должна быть на один символ больше). Переставьте эти две части местами, результат запишите в новую строку и выведите на экран.
Вычислите с помощью функции len() длину строки и разделите ее пополам при помощи оператора целочисленного деления.Переставить два слова
Дана строка, состоящая ровно из двух слов, разделенных пробелом. Переставьте эти слова местами. Результат запишите в строку и выведите получившуюся строку.
Используйте метод строки split.Удаление фрагмента
Дана строка, в которой буква h встречается минимум два раза. Удалите из этой строки первое и последнее вхождение буквы h, а также все символы, находящиеся между ними.
Воспользуйтесь методом строк find для того, чтобы узнать индекс первого вхождения символа.Обращение фрагмента
Для индекса последнего вхождения символа переверните строку. Используйте полученные индексы для получения срезов. Не забывайте об отрицательных значениях индексов.
Дана строка, в которой буква h встречается как минимум два раза. Разверните последовательность символов, заключенную между первым и последнием появлением буквы h, в противоположном порядке.
Используйте срез с отрицательным шагом.
Кобаяси Исса (перевод В.Марковой)Тихо, тихо ползи, Улитка, по склону Фудзи Вверх, до самых высот!
В. Пелевин«О, Улитка! Взбираясь к вершине Фудзи, можешь не торопиться... Там на вершине Фудзи улиток полно и так»
Улитка ползет по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. Программа получает на вход натуральные числа h, a, b. Гарантируется, что a>b.
from random import randrange
h, a, b = [float(l) for l in input("h, a, b через пробел: ").split()]
while a <= b:
h, a, b = [float(l) for l in input("h, a, b через пробел: ").split()]
a = a / 24
b = b / 24
hours, x = 0, 0
life = 800
death = False
while x < h:
wind = randrange(-100, 100)/50/24
x += (a + wind)
x -= (b + wind)
hours += 1
print(round(x, 2), round(wind, 2), h)
if hours >= life:
print("Улитка скончалась")
death = True
break
if not death:
days = hours // 24
hours = hours % 24
print("Улитка доползет на", days, "день", hours, "час")
Дано натуральное число. Требуется определить, является ли год с данным номером високосным:
a = int(input("Введите число от 1 до 3999"))
mil, sot = divmod(a, 1000)
sot, dec = divmod(sot, 100)
dec, ed = divmod(dec, 10)
def roman(num, romans=("I", "V", "X")):
A = romans[0]
B = romans[1]
C = romans[2]
if num in(0, 1, 2, 3):
r = A * num
if num == 4:
r = A + B
if num in (5, 6, 7, 8):
fiv, ed = divmod(num, 5)
r = B * fiv + A * ed
if num == 9:
r = A + C
return r
print("M"*mil, end="")
print(roman(sot, romans=("C", "D", "M")), end="")
print(roman(dec, romans=("X", "L", "C")), end="")
print(roman(ed))
Яша плавает в бассейне. Яша плавал в бассейне размером NM метров и устал. В этот момент он обнаружил, что находится на расстоянии x метров от одного из длинных бортиков (не обязательно от ближайшего) и y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик?
Программа получает на вход числа N, M, x, y. Программа должна вывести число метров, которое нужно проплыть Яше до бортика.
Написать функцию, задающую поведение пешки.
def get_step():
vals = input("Шаг вида 'a1 a2': ").split()
step = [vals[0][0], int(vals[0][1]), vals[1][0], int(vals[1][1])]
if step[0] == step[2] and step[1] == step[3]:
print("Ход не засчитан: одинаковые клетки!")
return step
def trans_to_numbers(a1, a2):
"""Translate from letters to numbers"""
trans = {'a': 1, 'b': 2, 'c': 3, 'd': 4,
'e': 5, 'f': 6, 'g': 7, 'h': 8}
return trans[a1], trans[a2]
def rook(a1, b1, a2, b2):
"""Ладья"""
if (a1 == a2 and b1 != b2) or \
(b1 == b2 and a1 != a2):
step = True
else:
step = False
return step
def knight(a1, b1, a2, b2):
"""Конь"""
if (abs(a2 - a1) == 2 and abs(b2 - b1) == 1) or \
(abs(b2 - b1) == 2 and abs(a2 - a1) == 1):
step = True
else:
step = False
return step
def bishop(a1, b1, a2, b2):
"""Слон"""
if abs(a1 - a2) == abs(b1 - b2):
step = True
else:
step = False
return step
def queen(a1, b1, a2, b2):
"""Ферзь"""
if abs(a1 - a2) == abs(b1 - b2) or \
(a1 == a2 and b1 != b2) or \
(b1 == b2 and a1 != a2):
step = True
else:
step = False
return step
def king(a1, b1, a2, b2):
"""Король"""
if abs(a1 - a2) in (0, 1) and \
abs(b1 - b2) in (0, 1):
step = True
else:
step = False
return step
def pawn(a1, b1, a2, b2):
"""Пешка"""
if (b1 == 2 and b2 in (3, 4)) or \
(b1 == 7 and b2 in (5, 6)):
step = True
else:
step = False
return step
a1, b1, a2, b2 = get_step()
print(a1, b1, a2, b2)
a1, a2 = trans_to_numbers(a1, a2)
step = rook(a1, b1, a2, b2)
print("Ладья", step)
step = knight(a1, b1, a2, b2)
print("Конь", step)
step = bishop(a1, b1, a2, b2)
print("Слон", step)
step = queen(a1, b1, a2, b2)
print("Ферзь", step)
step = king(a1, b1, a2, b2)
print("Король", step)
step = pawn(a1, b1, a2, b2)
print("Пешка", step)
"ГНЧЭ-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.
Выходные данные
Программа должна вывести два числа: стоимость покупки в рублях и копейках.