Программирование для всех

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

Практикум 3: условия, циклы, функции

Задача 1

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

In [1]:
w = float(input())
if w > 0:
    print("Молодец!")
else:
    print("Это не положительное число!")
-5
Это не положительное число!

Задача 2

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

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

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

In [3]:
v = int(input())
if v in favorites:
    print("Мое любимое число!")
else:
    print("Эх, ну почему?")
23
Мое любимое число!
In [4]:
# для любителей решений посложнее

# p: простой счетчик, если число найдено,
# принимает значение 1, иначе 0

p = 0  

v = int(input())
for f in favorites:
    if v == f:
        print("Мое любимое число!")
        p = 1  # меняем счетчик, число найдено, выходим из цикла
        break

# если счетчик остался 0, число не найдено        
        
if p == 0:
    print("Эх, ну почему?")
15
Эх, ну почему?

Задача 3

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

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

password = "hsepassword"
inp = input("Enter your password: ")

while inp  != password:
    print("Incorrect password, try again!")
    inp = input("Enter your password: ")
print("Login success")
Enter your password: hse
Incorrect password, try again!
Enter your password: hsep
Incorrect password, try again!
Enter your password: hsepassword
Login success
In [6]:
# вариант 2 – while True

password = "hsepassword"
inp = input("Enter your password: ")

while True:
    if password == inp:
        break   
    else:
        print("Incorrect password, try again!")
        inp = input("Enter your password: ")
print("Login success")
Enter your password: hsepassword
Login success

Задача 4

  • Напишите функцию square(), которая принимает на вход число и возвращает его квадрат.
  • Напишите функцию square2(), которая принимает на вход число, выводит на экран сообщение вида "Квадрат числа равен: n" и ничего не возвращает;
  • Напишите функцию square3(), которая выводит на экран сообщение вида "Квадрат числа равен: n" и возвращает квадрат числа.
In [7]:
def square(x):
    return x**2
In [8]:
def square2(x):
    print("Квадрат числа равен: ", x**2)
In [9]:
def square3(x):
    print("Квадрат числа равен: ", x**2)
    return x**2
In [10]:
#  тестируем первую

r = square(3)
print(r)  #  есть результат
9
In [11]:
#  тестируем вторую

r2 = square2(3)
print(r2)  #  нет результата, он пустой
Квадрат числа равен:  9
None
In [12]:
#  тестируем третью

r3 = square3(3)
print(r3)  #  есть основной результат и побочный (вывод на экран)
Квадрат числа равен:  9
9

Задача 5

Напишите функцию nums(), которая принимает на вход целое число, а возвращает список из двух элементов: целое число, предшествующее принятому на вход, и число, следующее за ним.

In [13]:
def nums(n):
    return [n-1, n+1]
In [14]:
nums(0)
Out[14]:
[-1, 1]

Задача 6

Напишите функцию str_lower(), которая принимает на вход строку (набор слов через пробел), а возвращает список ее элементов в нижнем регистре.

Пример работы программы:

Входные данные:

"В лесу родилась ёлочка В лесу она росла"

Выходные данные:

['в', 'лесу', 'родилась', 'ёлочка', 'в', 'лесу', 'она', 'росла']
In [15]:
def str_lower(old):
    new = old.lower()
    words = new.split()
    return words
In [16]:
str_lower("В лесу родилась ёлочка В лесу она росла")
Out[16]:
['в', 'лесу', 'родилась', 'ёлочка', 'в', 'лесу', 'она', 'росла']