Язык пайтон.
Пользователь вводит строку. Ваша задача - проверить, может ли эта строка, быть именем переменной.
Переменная не может начинаться с цифры, состоять только из цифр, не может содержать заглавные буквы и знаки пунктуации, кроме нижнего подчеркивания "_" . Также, она не может быть ни одним из зарегистрированных слов. При этом имя переменной, может состоять только из одного нижнего подчеркивания "_" .

Зарегистрированные слова можно взять из keyword.kwlist.

В итоге проверки, на печать выводится True, если такое имя переменной допустимо, и False - в противном случае.

Примеры имен переменных и результат (=> на печать выводить не нужно :))

_ => True
x => True
get_value => True
Get_value => False
get_Value => False
getValue => False
3m => False

Ответы

Ответ дал: robidjonova
0

Ответ:

Первый способ:

def name_var(string: str):

   return string.isidentifier()

Второй способ:

import keyword

def is_capitalize(string: str):

   c = 0

   for i in range(len(string)):

       if not string[i] == string[i].capitalize():

           c += 1

   if c == len(string):

       return True

   return False

def is_marks(string: str):

   c = 0

   for i in range(len(string)):

       if not string[i] in '!@#$%^&*()-=+/*-+.?><{}[]~':

           c += 1

   if c == len(string):

       return True

   return False

def is_underscore(string):

   c = 0

   for i in range(len(string)):

       if not string[i] == '_':

           c += 1

   if c == 1:

       return True

   return False

def name_var(string: str):

   if string[0].isdigit():

       if string.isdigit():

           if not is_capitalize(string):

               if not is_marks(string):

                   if not is_underscore(string):

                       if string in keyword.kwlist:

                           return False

   return True

Объяснение:


elfoxleo: что то у меня это не работает
robidjonova: скинь ошибку
Вас заинтересует