Напишите программу, которая просит пользователя ввести положительное число, и если пользователь вводит положительное число, выводит на экран сообщение "Молодец!", если нет – "Это не положительное число.".
Считайте, что пользователь в любом случае вводит числа, а не какой-то текст.
n = float(input("Enter a number: "))
if n > 0:
print("Молодец!")
else:
print("Это не положительное число")
Enter a number: 3 Молодец!
При желании можно написать более универсальный код, который будет на первом шаге проверять, ввел ли пользователь строку с числом. Можно сохранить input()
в переменную и посмотреть на метод .isnumeric()
для строк.
Пользователь вводит с клавиатуры два числа через пробел. Напишите код, который возвращает максимальное из двух введенных значений.
Пример:
Ввод:
Введите два числа: 5.7 8
Вывод:
8
# решение 1 – с if-else
inp = input("Enter two numbers: ")
strings = inp.split()
numbers = [float(i) for i in strings]
if numbers[0] > numbers[1]:
print(numbers[0])
else:
print(numbers[1])
Enter two numbers: 6 8.5 8.5
# решение 2 – без if-else
inp = input("Enter two numbers: ")
strings = inp.split()
numbers = [float(i) for i in strings]
print(max(numbers))
Enter two numbers: 8.5 6 8.5
Дан список N
из целых чисел. Напишите код, который делает следующее: выводит каждый элемент списка на экран и для каждого элемента либо выводит комментарий "Это четное число", либо комментарии "Это нечетное число".
Подсказка: оператор для нахождения остатка от деления – это %
.
N = [4, 6, 8, 9, 0, 1, 13]
for k in N:
if k % 2 == 0:
print("Это четное число")
else:
print("Это нечетное число")
Это четное число Это четное число Это четное число Это нечетное число Это четное число Это нечетное число Это нечетное число
У питона есть набор любимых чисел.
favorites = [3, 7, 11, 23, 18, 48, 81]
Напишите программу, которая просит пользователя ввести целое число, и если оно нравится питону, на экран будет выводиться сообщение: "Мое любимое число!", если нет ‒ "Эх, ну почему?".
favorites = [3, 7, 11, 23, 18, 48, 81]
x = int(input("Enter a number: "))
if x in favorites:
print("Мое любимое число")
else:
print("Эх, ну почему?!")
Enter a number: 23 Мое любимое число
Напишите программу, которая запрашивает у пользователя пароль, и далее:
# решение 1 – обычный while
password = "hsepassword"
attempt = input("Enter you password: ")
while attempt != password:
print("Incorrect password. Try again!")
attempt = input("Enter you password: ")
print("Login success")
Enter you password: hse Incorrect password. Try again! Enter you password: hse Incorrect password. Try again! Enter you password: hsepassword Login success
# решение 2 – while True
password = "hsepassword"
while True:
attempt = input("Enter you password: ")
if attempt == password:
print("Login success")
break
else:
print("Incorrect password. Try again!")
attempt = input("Enter you password: ")
Enter you password: hse Incorrect password. Try again! Enter you password: hsepass Enter you password: hsepassword Login success
Дополнение: если бы мы изменили условие и поставили ограничение на число попыток, нам понадобился бы цикл for
:
password = "hsepassword"
attempt = input("Enter you password: ")
# еще 2 попытки – всего 3 с attempt выше
for i in range(0, 2):
if attempt == password:
print("Login success")
break
else:
print("Incorrect password. Try again!")
attempt = input("Enter you password: ")
Enter you password: hse Incorrect password. Try again! Enter you password: hsep Incorrect password. Try again! Enter you password: hsepassword
Как сочетать условия с if-else и списковые включения (генераторы списков)? Рассмотрим пример – создадим сначала новый список на основе старого через цикл for
и метод .append()
:
L = [-1, 6, -8, 6, 2]
# Bin: 1 для положительных чисел в L, 0 – иначе
Bin = []
for i in L:
if i > 0:
Bin.append(1)
else:
Bin.append(0)
print(Bin)
[0, 1, 0, 1, 1]
Теперь то же самое со списковым включением:
# раскручиваем с конца:
# значение, если условие верно
# само условие
# else и значение, если условие неверно
# перебор с for по старому списку
Bin2 = [1 if i > 0 else 0 for i in L]
print(Bin2)
[0, 1, 0, 1, 1]