Функции. С возвратом значения. Часть 2
Возвращение булевых значений
Напишите функцию is_valid_triangle(side1, side2, side3), которая принимает в качестве аргументов три натуральных числа, и возвращает значение True, если существует невырожденный треугольник со сторонами side1, side2, side3, или False в противном случае.
def is_valid_triangle(s1, s2, s3): if (s1 + s2) > s3 and (s1 + s3) > s2 and (s2 + s3) > s1: return True else: return False # считываем данные a, b, c = int(input()), int(input()), int(input()) # вызываем функцию print(is_valid_triangle(a, b, c))
Напишите функцию is_prime(num), которая принимает в качестве аргумента натуральное число и возвращает значение True, если число является простым, или False в противном случае.
def is_prime(num): if num == 1: return False for i in range(2, int(num ** 0.5) + 1): if num % i == 0: return False return True # считываем данные n = int(input()) # вызываем функцию print(is_prime(n))
Напишите функцию get_next_prime(num), которая принимает в качестве аргумента натуральное число num и возвращает первое простое число большее числа num.
def is_prime(num): if num == 1: return False for i in range(2, num): if num % i == 0: return False return True def get_next_prime(num): num += 1 while is_prime(num) != True: num += 1 return num # считываем данные n = int(input()) # вызываем функцию print(get_next_prime(n))
Напишите функцию is_password_good(password), которая принимает в качестве аргумента строковое значение пароля password и возвращает значение True, если пароль является надежным и False -- в противном случае.
Пароль является надежным если:
- его длина не менее 8 символов;
- он содержит как минимум одну заглавную букву (верхний регистр);
- он содержит как минимум одну строчную букву (нижний регистр);
- он содержит хотя бы одну цифру.
def is_password_good(pas): if pas.isalpha(): return False if len(pas) >= 8 and pas.isalnum(): if pas != pas.upper() and pas != pas.lower(): return True return False # считываем данные txt = input() # вызываем функцию print(is_password_good(txt))
Напишите функцию is_one_away(word1, word2), которая принимает в качестве аргументов два слова word1 и word2 и возвращает значение True, если слова имеют одинаковую длину и отличаются ровно в одном символе, или значение False в противном случае.
def is_one_away(word1, word2): if len(word1) == len(word2): c = 0 for i in range(len(word1)): if word1[i] != word2[i]: c += 1 if c == 1: return True return False # считываем данные txt1 = input() txt2 = input() # вызываем функцию print(is_one_away(txt1, txt2))
Напишите функцию is_palindrome(text), которая принимает в качестве аргумента строку text и возвращает значение True если указанный текст является палиндромом и False в противном случае.
def is_palindrome(text): d = text.lower() s = '' for n in d: if n.isalpha(): s += n if s == s[::-1]: return True return False # считываем данные txt = input() # вызываем функцию print(is_palindrome(txt))
«BEEGEEK» наконец-то открыл свой банк, в котором используются специальные банкоматы с необычным паролем. Действительный пароль «BEEGEEK» банка имеет вид a:b:c, где a, b и c –- натуральные числа. Поскольку основатель «BEEGEEK» фанатеет от математики, то он решил:
- число a – должно быть палиндромом;
- число b – должно быть простым;
- число c – должно быть четным.
Напишите функцию is_valid_password(password), которая принимает в качестве аргумента строковое значение пароля password и возвращает значение True, если пароль является действительным паролем «BEEGEEK» банка, или False в противном случае.
def is_prime(num): if num == 1: return False for i in range(2, num): if num % i == 0: return False return True def is_valid_password(pas): if pas.count(':') != 2: return False pl = 0 pr = 0 ch = 0 a = pas.split(':') s = a[0] if s == s[::-1]: pl += 1 num = a[1] nu = int(num) if is_prime(nu) == True: pr += 1 c = a[2] v = int(c) if v % 2 == 0: ch += 1 if pl + pr + ch == 3: return True return False # считываем данные psw = input() # вызываем функцию print(is_valid_password(psw))
Напишите функцию is_correct_bracket(text), которая принимает в качестве аргумента непустую строку text, состоящую из символов ( и ) и возвращает значение True, если поступившая на вход строка является правильной скобочной последовательностью, или значение False в противном случае.
def is_correct_bracket(text): c = 0 for n in text: if n == '(': c += 1 if n == ')': c -= 1 if c < 0: break if c == 0: return True return False # считываем данные txt = input() # вызываем функцию print(is_correct_bracket(txt))
Напишите функцию convert_to_python_case(text), которая принимает в качестве аргумента строку в «верблюжьем регистре» и преобразует его в «змеиный регистр».
def convert_to_python_case(text): s = '' for n in text: if n.isupper(): s += '_' + n.lower() else: s += n return s.lstrip('_') # считываем данные txt = input() # вызываем функцию print(convert_to_python_case(txt))