Спасибо всем кому это было интересно) В связи с этим продолжаем - следующий блок из десяти задач, уже посложнее чем были в первом посте. Ссылка на пост, для тех кто не видел - 100 задач для изучения Python. Часть 1
Очень буду ждать ваши варианты, заметки, идеи в комментариях!
1. Определите максимальное из трех чисел.
a = int(input("Введите первое число: "))
b = int(input("Введите второе число: "))
c = int(input("Введите третье число: "))
max_number = max(a, b, c)
print(f"Максимальное число: {max_number}")
Вводим три переменные, которые являются целыми числами (а, b, с). Далее - вводим переменную, которая определяется функцией max() - эта функция выводит наибольшее из введенных значений. В нашем случае мы ввели три значения - а, b и c - и получим из них максимальное. После - отображаем результат.
2. Напишите программу, которая проверяет, является ли год високосным.
year = int(input('Введите год: '))
if year % 4 == 0:
print('Год високосный!')
else:
print('Год не високосный.')
Введем переменную, в которую пользователь будет писать год. Далее вспомним - год високосный, если он делится на четыре без остатка. Учтем это условие в вариативности через if/else и отобразим результат. Почему равно двойное? А потому что одним равно мы задаем тождественность значению, а двойным равно - проверяем равенство значений.
3. Запросите оценку (A/B/C/D/F) и выведите описание (например, A – отлично).
grade = input('Введите вашу оценку A/B/C/D/F: ').upper()
if grade == 'A':
print('Отлично')
elif grade == 'B':
print('Хорошо')
elif grade == 'C':
print('Удовлетворительно')
elif grade == 'D':
print('Плохо')
elif grade == 'F':
print('Ужасно')
else:
print('Некорректная оценка.')
Вводим переменные через input(), которые будут обозначать оценки. С помощью метода .upper() если пользователь введет a, b, c и т.д. программа переведет введенное значение в заглавные буквы (есть похожий обратный метод .lower() для перевода в нижний регистр ). Далее вводим обозначения к оценкам - здесь используем оператор elif (else if), за счет которого мы можем сделать множественное ветвление. Закончим ветвление предупреждением, если пользователь введет некорректную оценку.
4. Проверьте, является ли строка палиндромом.
string = input('введите слово на проверку на палиндром: ')
is_palindrome = string.lower() == string.lower()[::-1]
if is_palindrome:
print('Да, слово палиндром')
else:
print('Нет, слово не палиндром')
Вводим переменную, в которую мы будем вписывать слово. Далее вводим вторую переменную (is_palindrome), которая будет определять равно наше слово перевернутому варианту или же нет (string.lower() == string.lower()[::-1]) и не забываем про .lower(), что бы избежать возможных ошибок. Здесь как раз таки наглядное использование одного равно и двойного равно. Далее отображаем результат - палиндром ли введенное нами слово.
5. Напишите калькулятор: запросите два числа и операцию (+, -, *, /).
a = int(input('Введите первое число: '))
b = int(input('Введите второе число: '))
do = input('Введите операцию +,-,*,/: ')
if do == '+':
print(a+b)
elif do == '-':
print(a-b)
elif do == '*':
print(a*b)
elif do == '/':
print(a/b)
else:
print('Неверная операция')
Перейдем к базе - калькулятору на питоне. Это самая его простая на мой взгляд версия (имею ввиду по навыкам). Вводим две переменных обозначающих числа и еще одну переменную, которая будет обозначать операцию. Далее сделаем ветвление на операции - сложение, вычитание, умножение и деление. Завершаем каждое ответвление печатью результата на экран, а всю программу завершаем печатью неверной операции, если пользователь введет что то не так. В этом калькуляторе деление на ноль не предусмотрено и вызывает стандартную ошибку.
6. Определите, находится ли точка (x, y) внутри круга радиусом 5 с центром в (0,0).
import math
x = int(input('Введите координату х: '))
y = int(input('Введите координату y: '))
radius = 5
distance = math.sqrt(x**2 + y**2)
if distance <= radius:
print('Точка находится внутри круга')
else:
print('Точка находится вне круга')
Начнем с импорта блока "math" - он нам нужен для математических операций (в нашем случае, извлечение корня в переменной distance). Далее, введем переменные (x и y) которые будут обозначать точки (в этом примере сделаем их целыми). Далее - введем переменную, которая будет обозначать радиус (в нашем случае 5, но можно и заменить на вводимое число через input() ). Далее введем переменную distance - она будет означать формулу расчета расстояния. Наконец, введем ветвление - если расстояние меньше радиуса, отображаем что точка внутри круга, и наоборот.
7. Запросите у пользователя время (часы) и выведите приветствие ("Доброе утро", "День", "Вечер").
time = int(input('Введите время 0-23: '))
if 0 <= time <= 5:
print('Доброй ночи!')
elif 6 <= time <= 12:
print('Доброе утро!')
elif 13 <= time <= 17:
print('Добрый день!')
elif 18 <= time <= 23:
print('Добрый вечер!')
else:
print('Некорректное время')
Введем переменную, которая будет обозначать время которое вводит пользователь. Далее вводим ветвление, разбитое по часам, отображающее в зависимости от этого приветствие. Замыкаем, по стандарту, ответом на некорректный ввод. А вы так же делите время? Пишите в комментарии.
8. Проверьте, можно ли из трех отрезков заданной длины составить треугольник.
a = float(input('Введите длину отрезка a: '))
b = float(input('Введите длину отрезка b: '))
c = float(input('Введите длину отрезка c: '))
if a + b > c and a + c > b and b + c > a:
print('Можно составить треугольник')
else:
print('Нельзя составить треугольник')
Введем переменные для длин отрезков. Далее введем условие, за счет которого мы определяем, можно ли составить из этих отрезков треугольник.
9. Реализуйте простую игру "Камень-ножницы-бумага" против компьютера.
import random
variants = ['камень', 'ножницы', 'бумага']
comp_choice = random.choice(variants)
user_choice = input('Выберите камень, ножницы или бумагу: ').lower()
if user_choice not in variants:
print('Неверный ввод!')
else:
print(f'Компьютер выбрал {comp_choice}!')
if user_choice == comp_choice:
print('Ничья!')
elif (user_choice == 'камень' and comp_choice == 'ножницы') or \
(user_choice == 'ножницы' and comp_choice == 'бумага') or \
(user_choice == 'бумага' and comp_choice == 'камень'):
print('Ура, победа!')
else:
print('К сожалению, машина победила!')
А вот и оно! Начнем с того что импортируем модуль random, так как в этой игре нам естественно нужен будет рандом. Далее введем переменную списком варианты для выбора (variants = [ ]). Обозначим переменную, по которой компьютер делает свой выбор из возможных вариантов, а так как выбор рандомный, здесь мы как раз и подключаем импортированный ранее рандом (comp_choice = random.choice(variants) ). Далее мы спрашиваем у пользователя выбранный вариант (не забываем про .lower() ) и переходим к ветвлению. Первый вариант заключается в некорректном вводе, далее учитываем варианты ничьей, победы пользователя и его поражения. Запускаем и наслаждаемся игрой в камень-ножницы-бумага :)
10. Решите квадратное уравнение ax² + bx + c = 0.
import cmath
a = float(input("Введите коэффициент a: "))
b = float(input("Введите коэффициент b: "))
c = float(input("Введите коэффициент c: "))
if a == 0:
print("Это не квадратное уравнение.")
else:
D = b**2 - 4*a*c
x1 = (-b + cmath.sqrt(D)) / (2*a)
x2 = (-b - cmath.sqrt(D)) / (2*a)
print("Корни уравнения:")
print("x1 =", x1)
print("x2 =", x2)
Импортируем cmath. Вводим переменные, обозначающие коэффициенты a, b и c. Далее, с помощью двойного равно сравниваем переменную a с нулем для проверки уравнения на то что оно вообще квадратное, а так же этим мы начинаем ветвление. Далее прописываем условие дискриминанта и корней уравнения. Далее по стандарту прописываем print() для их отображения.
На этом второй блок подошел к концу. Впереди еще 80 задач, дальше будет посложнее. Очень жду ваши комментарии и реакции. Следующую часть сделаю так же, на 10 плюсов.