How to write this test 7, what this problem in the code that I have wrote? Anyone explain me?
The code should fulfil: 7. When create_character is called with a second, third or fourth argument that is not an integer it should return All stats should be integers.
Your code so far
full_dot = '●'
empty_dot = '○'
def create_character(name, strength, intelligence, charisma):
#name
if not isinstance(name, str):
return 'The character name should be a string'
if len(name) == 0:
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'
#stats
if not isinstance(strength, int) and not isinstance(intelligence, int) and not isinstance(charisma, int):
return 'All stats should be integers'
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
You are assuming where your issue is, instead test it, add print(create_character('ren', '', 2, 3)) and see what is being returned by your function. The issue is not where you are assuming
What is the issue here? It prints the value that needed then what is the problem?
Your code so far
def create_character(name, strength, intelligence, charisma):
if not isinstance(name, str):
return 'The character name should be a string'
if len(name) == 0:
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'
#stats
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 not strength + intelligence + charisma == 7 :
return 'The character should start with 7 points'
#printing spots
def stat_spots(value):
return '●' * value + '○' * (10 - value)
#final displaying
display = name
display+= '\\nSTR '+ stat_spots(strength)
display+= '\\nINT '+ stat_spots(intelligence)
display+= '\\nCHA '+ stat_spots(charisma)
return display
print(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