17 of 19 completed, its only no.18 and no.19 left.
What syntax must I use to return the character name & the stats dots ?
Your code so far
full_dot = '●'
empty_dot = '○'
def create_character(name, strength, intelligence, charisma) :
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) :
return 'All stats should be integers'
if not isinstance(intelligence, int) :
return 'All stats should be integers'
if not isinstance(charisma, int) :
return 'All stats should be integers'
if strength < 1 :
return 'All stats should be no less than 1'
if intelligence < 1 :
return 'All stats should be no less than 1'
if charisma < 1 :
return 'All stats should be no less than 1'
if strength > 4 :
return 'All stats should be no more than 4'
if intelligence > 4 :
return 'All stats should be no more than 4'
if charisma > 4 :
return 'All stats should be no more than 4'
if strength + intelligence + charisma != 7 :
return 'The character should start with 7 points'
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36
Please review User Story #5. You need to build and return one string using the global variables for the dots and the function parameters. You can use newline characters in your string. Just take it a step at a time.
full_dot = '●'
empty_dot = '○'
def create_character(name, strength, intelligence, charisma) :
if not isinstance(name, str) :
return 'The character name should be a string'
elif name == '' :
return 'The character should have a name'
elif len(name) > 10 :
return 'The character name is too long'
elif ' ' in name :
return 'The character name should not contain spaces'
elif not isinstance(strength, int) :
return 'All stats should be integers'
elif not isinstance(intelligence, int) :
return 'All stats should be integers'
elif not isinstance(charisma, int) :
return 'All stats should be integers'
elif strength < 1 or intelligence < 1 or charisma < 1 :
return 'All stats should be no less than 1'
elif strength > 4 or intelligence > 4 or charisma > 4 :
return 'All stats should be no more than 4'
elif strength + intelligence + charisma != 7 :
return 'The character should start with 7 points'
print(create_character('ren',4,2,1))
But it says none and still got wrong. Pherhaps, I don’t know what to type for the final return (else :).
It says None because your function is not returning anything after the validation checks pass. You need to return the string you were asked to build in User Story #5.
I’ve updated my code, but why the odd test numbers got wrong answer…
full_dot = '●'
empty_dot = '○'
def create_character(name, strength, intelligence, charisma) :
if not isinstance(name, str) :
return 'The character name should be a string'
elif name == '' :
return 'The character should have a name'
elif len(name) > 10 :
return 'The character name is too long'
elif ' ' in name :
return 'The character name should not contain spaces'
elif not isinstance(strength, int) :
return 'All stats should be integers'
elif not isinstance(intelligence, int) :
return 'All stats should be integers'
elif not isinstance(charisma, int) :
return 'All stats should be integers'
elif strength < 1 or intelligence < 1 or charisma < 1 :
return 'All stats should be no less than 1'
elif strength > 4 or intelligence > 4 or charisma > 4 :
return 'All stats should be no more than 4'
elif strength + intelligence + charisma != 7 :
return 'The character should start with 7 points'
else :
return f'{name} \nSTR{full_dot * strength}{empty_dot(10 - strength)} \nINT{full_dot * intelligence}{empty_dot(10 - intelligence)} \nCHA{full_dot * charisma}{empty_dot(10 - charisma)}'