Основы программирования в Python

Алла Тамбовцева, НИУ ВШЭ

Семинар 5

Задача 1

Напишите программу, которая просит пользователя ввести положительное число, и если пользователь вводит положительное число, выводит на экран сообщение "Молодец!", если нет ‒ "Это не положительное число.".

Считайте, что пользователь в любом случае вводит числа, а не какой-то текст.

In [2]:
n = float(input("Введите положительное число: "))
if n > 0:
    print("Молодец!")
else:
    print("Это не положительное число.")
Введите положительное число: 0
Это не положительное число.

Задача 2

Напишите программу, которая принимает на вход список оценок студентов от 1 до 10, выводит на экран оценку, а после нее, с новой строки, комментарий "Плохо", "Удовлетворительно", "Хорошо", "Отлично" в зависимости от оценки.

In [3]:
marks = [3, 6, 8, 9, 10, 4, 7, 1]

for mark in marks:
    print(mark) # оценку на экран выводим при любых условиях
    if mark < 4:
        print("Плохо")
    elif mark >= 4 and mark < 6:
        print("Удовлетворительно")
    elif mark >= 6 and mark < 8:
        print("Хорошо")
    else:
        print("Отлично")
3
Плохо
6
Хорошо
8
Отлично
9
Отлично
10
Отлично
4
Удовлетворительно
7
Хорошо
1
Плохо

Задача 3

Напишите программу, которая запрашивает у пользователя пароль, и далее:

  • если пароль верный, выводит на экран сообщение "Login success".
  • если пароль неверный, выводит на экран сообщение "Incorrect password, try again!" до тех пор, пока пользователь не введет верный пароль.
In [5]:
password = "pass121"

while True:
    attempt = input("Enter password.")
    if attempt == password:
        print("Login success.")
        break
    else:
        print("Incorrect password, try again!")
Enter password.pass1
Incorrect password, try again!
Enter password.pass121
Login success.

Дополнение: если бы в условии не было указания выводить сообщения об успехе/ошибке на экран, а нужно было просто запрашивать пароль до тех пор, пока не будет введен верный, решение было бы еще проще.

In [6]:
password = "pass121"
attempt = input("Enter password: ")

while password != attempt:
    attempt = input("Enter password: ")
Enter password: pass11
Enter password: pass121

Задача 4

У питона есть набор любимых чисел.

favorites = [3, 7, 11, 23, 18, 48, 81]

Напишите программу, которая просит пользователя ввести целое число, и если оно нравится питону, на экран будет выводиться сообщение: "Мое любимое число!", если нет ‒ "Эх, ну почему?".

In [8]:
favorites = [3, 7, 11, 23, 18, 48, 81]

k = int(input("Введите целое число: "))

if k in favorites:
    print("Моё любимое число!")
else:
    print("Эх, ну почему?")
Введите целое число: 23
Моё любимое число!

Альтернативное решение, разобранное на семинаре (неоптимальное, но интересный вариант – пример того, как обойтись без in):

In [ ]:
n = 0
for i in range(0, len(favorites)):
    if k == favorites[i]:
        print("Мое любимое число!")
        n = n + 1
        break
    else:
        pass
    
if n == 0:
    print("Эх, ну почему?")

Задача 5

Напишите программу, которая просит пользователя ввести число и, если оно чётное, выводит на экран сообщение: "Это число чётное", если нечётное ‒ "Это число нечётное".

In [9]:
num = float(input("Введите число: "))

# здесь нам понадобится остаток от деления %

if num % 2 == 0:
    print("Это число чётное.")
else:
    print("Это число нечётное.")
Введите число: 9
Это число нечётное.

Задача 6

Напишите программу, которая просит пользователя ввести существительное, и если слово введено с большой буквы, то на экран выводится сообщение "Это имя собственное.", если с маленькой ‒ сообщение "Это имя нарицательное".

In [10]:
word = input("Введите слово: ")

if word.capitalize() == word:
    print("Это имя собственное.")
else:
    print("Это имя нарицательное.")
Введите слово: Питон
Это имя собственное.