Язык пайтон.
Пользователь вводит строку. Ваша задача - проверить, может ли эта строка, быть именем переменной.
Переменная не может начинаться с цифры, состоять только из цифр, не может содержать заглавные буквы и знаки пунктуации, кроме нижнего подчеркивания "_" . Также, она не может быть ни одним из зарегистрированных слов. При этом имя переменной, может состоять только из одного нижнего подчеркивания "_" .
Зарегистрированные слова можно взять из keyword.kwlist.
В итоге проверки, на печать выводится True, если такое имя переменной допустимо, и False - в противном случае.
Примеры имен переменных и результат (=> на печать выводить не нужно :))
_ => True
x => True
get_value => True
Get_value => False
get_Value => False
getValue => False
3m => False
Ответы
Ответ:
Первый способ:
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
Объяснение: