Build an RPG character - Build an RPG Character

Tell us what’s happening:

My code didn’t bypass the 3rd and 4th guide… someone please help
3. When create_character is called with a first argument that is longer than 10 characters it should return The character name is too long.
4. When create_character is called with a first argument that contains a space it should return The character name should not contain spaces.

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 len(name) >= 10:
        return 'The character name is too long.'
    if ' ' in name:
        return 'The character name should not contain spaces.'
    
    if not all(isinstance(stat, int) for stat in (strength, intelligence, charisma)):
        return 'All stats should be integers'
    if any(stat < 1 for stat in (strength, intelligence, charisma)):
        return 'All stats should be no less than 1'
    if any(stat > 4 for stat in (strength, intelligence, charisma)):
        return 'All stats should be no more than 4'
    if strength + intelligence + charisma != 7:
        return 'The character should start with 7 points'
    
    str_bar = full_dot * strength + empty_dot * (10 - strength)
    int_bar = full_dot * intelligence + empty_dot * (10 - intelligence)
    cha_bar = full_dot * charisma + empty_dot * (10 - charisma)
    
    return f'{name}\nSTR {str_bar}\nINT {int_bar}\nCHA{cha_bar}'

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/142.0.0.0 Safari/537.36

Challenge Information:

Build an RPG character - Build an RPG Character

If the character name is longer than 10 characters, the function should return The character name is too long.

Notice that the . is not in the highlighted section.

Compare with this block of code:

    if not isinstance(name, str):
        return 'The character name should be a string'

Where there is no period at the end of the returned string.

1 Like

Thank you.
I just couldn’t believe all those tiny punctuation marks would stop me.

1 Like

Definitely an important thing to watch out for. Best to copy/paste any given text by double clicking it.

Tests couldn’t possibly account for all the typos or differences people might make so it needs to be exactly the same.

At least it’s an easy fix

1 Like