Функции. С возвратом значения. Часть 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))