I got stack in last step and can not solve it. Pleas help me
Your code so far
full_dot = '●'
empty_dot = '○'
def create_character(name, STR, INT, CHA):
if not isinstance(name, str):
return 'The character name should be a string'
if name == '':
return 'The character should have a name'
if len(name) > 10:
return 'The character name is too long'
if ' ' in name:
return 'The character name should not contain spaces'
if (not isinstance(STR,int))\
or (not isinstance(INT,int))\
or (not isinstance(CHA,int)):
return 'All stats should be integers'
if STR < 1\
or INT < 1\
or CHA < 1:
return 'All stats should be no less than 1'
if STR > 4 or INT > 4 or CHA > 4:
return 'All stats should be no more than 4'
if (STR + INT + CHA) != 7:
return 'The character should start with 7 points'
return f'ren\nSTR ●●●●○○○○○○\nINT ●●○○○○○○○○\nCHA ●○○○○○○○○○'
create_character('ren', 4, 2, 1)
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36
It looks like you have hard-coded your return string. That is not solving this problem in the general case. Imagine if you were given different input values. Would your code be able to solve those problems?
To find out more about what hard-coding is or about why it is not suitable for solving coding questions, please read this post: Hard-coding For Beginners
Let us know if you have a question about how to make your code more flexible.
full_dot = '●'
empty_dot = '○'
def create_character(name, STR, INT, CHA):
if not isinstance(name, str):
return 'The character name should be a string'
if name == '':
return 'The character should have a name'
if len(name) > 10:
return 'The character name is too long'
if ' ' in name:
return 'The character name should not contain spaces'
if (not isinstance(STR,int))\\
or (not isinstance(INT,int))\\
or (not isinstance(CHA,int)):
return 'All stats should be integers'
if STR < 1\\
or INT < 1\\
or CHA < 1:
return 'All stats should be no less than 1'
if STR > 4 or INT > 4 or CHA > 4:
return 'All stats should be no more than 4'
if (STR + INT + CHA) != 7:
return 'The character should start with 7 points'
return f'ren\\nSTR ●●●●○○○○○○\\nINT ●●○○○○○○○○\\nCHA ●○○○○○○○○○'
create_character('ren', 4, 2, 1)
I tried to format your code correctly, but it still shows a lot of escape characters. That’s why we ask you to format your code for us when you post it.
I also don’t see that you have changed your hard-coded return statement..
if not isinstance(name, str):
return 'The character name should be a string'
if name == '':
return 'The character should have a name'
if len(name) > 10:
return 'The character name is too long'
if ' ' in name:
return 'The character name should not contain spaces'
if (not isinstance(strength,int))\\
or (not isinstance(intelligence,int))\\
or (not isinstance(charisma,int)):
return 'All stats should be integers'
if strength < 1\\
or intelligence < 1\\
or charisma < 1:
return 'All stats should be no less than 1'
if strength > 4 or intelligence > 4 or charisma > 4:
return 'All stats should be no more than 4'
if (strength + intelligence + charisma) != 7:
return 'The character should start with 7 points'
else:
str_full_dot = strength \* full_dot
int_full_dot = intelligence \* full_dot
cha_full_dot = charisma \* full_dot
str_empty_dot = (10 - strength) \* empty_dot
int_empty_dot = (10- intelligence) \* empty_dot
cha_empty_dot = (10 - charisma) \* empty_dot
str_stat = str_full_dot + str_empty_dot
int_stat = int_full_dot + int_empty_dot
cha_stat = cha_full_dot + cha_empty_dot
return f'ren\\nSTR {str_stat}\\nINT {int_stat}\\nCHA {cha_stat}'
print(create_character('ren', 1, 4, 2))