Рассказываю про решения и показываю ответы на модуль и по совместительству урок 13.5 из «Поколение Python: курс для начинающих» на языке программирования питоне.
Is Valid Triangle?
Напишите функцию is_valid_triangle(side1, side2, side3), которая принимает в качестве аргументов три натуральных числа, и возвращает значение True если существует невырожденный треугольник со сторонами side1, side2, side3 и False в противном случае.Примечание 1. С данной задачей мы уже сталкивались при изучении условного оператора.
Примечание 2. Следующий программный код:
print(is_valid_triangle(2, 2, 2))
print(is_valid_triangle(2, 3, 10))
print(is_valid_triangle(3, 4, 5))
должен выводить:True
False
True
def is_valid_triangle(side1, side2, side3):
return (side1 < side2 + side3) and (side2 < side3 + side1) and (side3 < side1 + side2)
print(is_valid_triangle(int(input()), int(input()), int(input())))
Is a Number Prime? 🌶️
Напишите функцию is_prime(num), которая принимает в качестве аргумента натуральное число и возвращает значение True если число является простым и False в противном случае.Примечание. Следующий программный код:
print(is_prime(1))
print(is_prime(10))
print(is_prime(17))
должен выводить:False
False
True
# объявление функции
def is_prime(num):
return len([i for i in range(1, num+1) if num % i == 0]) == 2
# считываем данные
n = int(input())
# вызываем функцию
print(is_prime(n))
Next Prime 🌶️🌶️
Напишите функцию get_next_prime(num), которая принимает в качестве аргумента натуральное число num и возвращает первое простое число большее числа num.Примечание 1. Используйте функцию is_prime() из предыдущей задачи.
Примечание 2. Следующий программный код:
print(get_next_prime(6))
print(get_next_prime(7))
print(get_next_prime(14))
должен выводить:7
11
17
def get_next_prime(num):
num += 1
for i in range(2, num):
if num % i == 0:
return get_next_prime(num)
return num
# считываем данные
n = int(input())
# вызываем функцию
print(get_next_prime(n))
Good password 🌶️
Напишите функцию is_password_good(password), которая принимает в качестве аргумента строковое значение пароля password и возвращает значение True если пароль является надежным и False в противном случае.Пароль является надежным если:
его длина не менее 88 символов;
он содержит как минимум одну заглавную букву (верхний регистр);
он содержит как минимум одну строчную букву (нижний регистр);
он содержит хотя бы одну цифру.
Примечание. Следующий программный код:print(is_password_good(‘aabbCC11OP’))
print(is_password_good(‘abC1pu’))
должен выводить:True
False
def is_password_good(password):
upp = [i for i in password if i.isupper()]
low = [i for i in password if i.islower()]
dig = [i for i in password if i.isdigit()]
return all([len(password) >= 8, upp, low, dig])
txt = input()
print(is_password_good(txt))
Ровно в одном
Напишите функцию is_one_away(word1, word2), которая принимает в качестве аргументов два слова word1 и word2 и возвращает значение True если слова имеют одинаковую длину и отличаются ровно в 1 символе и False в противном случае.Примечание. Следующий программный код:
print(is_one_away(‘bike’, ‘hike’))
print(is_one_away(‘water’, ‘wafer’))
print(is_one_away(‘abcd’, ‘abpo’))
print(is_one_away(‘abcd’, ‘abcde’))
должен выводить:True
True
False
False
def is_one_away(word1, word2):
if len(word1) != len(word2):
return False
count = 0
for i in range(len(word1)):
if word1[i] != word2[i]:
count += 1
if count == 1:
return True
else:
return False
# считываем данные
txt1 = input()
txt2 = input()
# вызываем функцию
print(is_one_away(txt1, txt2))
Палиндром 🌶️
Напишите функцию is_palindrome(text), которая принимает в качестве аргумента строку text и возвращает значение True если указанный текст является палиндромом и False в противном случае.Примечание 1. Палиндром – это строка, которая читается одинаково в обоих направлениях
Примечание 2. При проверке считайте большие и маленькие буквы одинаковыми, а также игнорируйте пробелы, а также символы , . ! ? -.
Примечание 3. Следующий программный код:
print(is_palindrome(‘А роза упала на лапу Азора.’))
print(is_palindrome(‘Gabler Ruby — burrel bag!’))
print(is_palindrome(‘BEEGEEK’))
должен выводить:True
True
False
def is_palindrome(text):
text = [i.lower() for i in text if i not in (',.!?- ')]
return text == text[::-1]
# считываем данные
txt = input()
# вызываем функцию
print(is_palindrome(txt))
BEEGEEK
BEEGEEK наконец открыл свой банк в котором используются специальные банкоматы с необычным паролем.Действительный пароль BEEGEEK банка имеет вид a:b:c, где a, b и c – натуральные числа. Поскольку основатель BEEGEEK фанатеет от математики, то он решил:
число a – должно быть палиндромом;
число b – должно быть простым;
число c – должно быть четным.
Напишите функцию is_valid_password(password), которая принимает в качестве аргумента строковое значение пароля password и возвращает значение True если пароль является действительным паролем BEEGEEK банка и False в противном случае.Примечание. Следующий программный код:
print(is_valid_password(‘1221:101:22’))
print(is_valid_password(‘565:30:50’))
print(is_valid_password(‘112:7:9’))
print(is_valid_password(‘1221:101:22:22’))должен выводить:
True
False
False
False
def isPrime(n):
if n % 2 == 0: return(n == 2)
d = 3
while d * d <= n and n % d != 0: d += 2
return(d * d > n)
def isPalindrom(n):
n = str(n)
return(n == n[::-1])
def isEven(n): return(not n % 2)
def is_valid_password(password):
try:
a, b, c = map(int, password.split(':'))
return(isPalindrom(a) and isPrime(b) and isEven(c))
except: return(False)
# считываем данные
psw = input()
# вызываем функцию
print(is_valid_password(psw))
Правильная скобочная последовательность 🌶️
Напишите функцию is_correct_bracket(text), которая принимает в качестве аргумента непустую строку text, состоящую из символов ( и ) и возвращает значение True если поступившая на вход строка является правильной скобочной последовательностью и False в противном случае.Примечание 1. Правильной скобочной последовательностью называется строка, состоящая только из символов ( и ), где каждой открывающей скобке найдется парная закрывающая скобка.
Примечание 2. Следующий программный код:
print(is_correct_bracket(‘()(()())’))
print(is_correct_bracket(‘)(())(‘))
должен выводить:True
False
def is_correct_bracket(text):
while '()' in text:
text = text.replace('()', '')
return not text
# считываем данные
txt = input()
# вызываем функцию
print(is_correct_bracket(txt))
Змеиный регистр
Напишите функцию convert_to_python_case(text), которая принимает в качестве аргумента строку в «верблюжьем регистре» и преобразует его в «змеиный регистр».Примечание 1. Почитать подробнее о стилях именования можно тут.
Примечание 2. Следующий программный код:
print(convert_to_python_case(‘ThisIsCamelCased’))
print(convert_to_python_case(‘IsPrimeNumber’))
должен выводить:this_is_camel_cased
is_prime_number
def convert_to_python_case(text):
s = ''
for el in text:
if el.isupper():
s += '_'
s += el.lower()
return s[1:]
print(convert_to_python_case(input()))
Правильная скобочная последовательность
# объявление функции
def is_correct_bracket(text):
while ‘()’ in text:
text = text.replace(‘()’, »)
return not text
# считываем данные
txt = input()
# вызываем функцию
print(is_correct_bracket(txt))