Build an RPG Character - Build an RPG Character

Tell us what’s happening:

My code works, it outputs the correct details but the last two conditions aren’t satisfied.

Your code so far

full_dot = '●'
empty_dot = '○'

def create_character(name, strength, intelligence, charisma):
    #validating name
    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'
    #validating 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'
    stat_points = strength + intelligence + charisma
    if stat_points != 7:
        return 'The character should start with 7 points'
    #returning character profile
    return f'{name}\nSTR {full_dot*strength + empty_dot*(10-strength)}\nINT {full_dot*intelligence + empty_dot*(10-intelligence)}\nCHR {full_dot*charisma + empty_dot*(10-charisma)}'

print(create_character('ren', 4, 2, 1))

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36

Challenge Information:

Build an RPG Character - Build an RPG Character

confront the requested string with your output:

print(repr(create_character('ren', 4, 2, 1)))
print(repr('ren\nSTR ●●●●○○○○○○\nINT ●●○○○○○○○○\nCHA ●○○○○○○○○○'))

see if you manage to spot the difference

The \n in my code makes it so the output will skip a line but I don’t know how to fix it

I changed the bottom part to make it more readable:

STR = full_dot * strength + empty_dot * (10-strength)

INT = full_dot \* intelligence + empty_dot \* (10-intelligence)

CHA = full_dot \* charisma + empty_dot \* (10-charisma)

return f’{name} \nSTR{STR} \nINT{INT} \nCHA{CHA}’

you need to use the \n

using the repr instead of going to a new line it will show as \n so it is easier to confront with the expected output

so do it again, put it below your code

print(repr(create_character('ren', 4, 2, 1)))
print(repr('ren\nSTR ●●●●○○○○○○\nINT ●●○○○○○○○○\nCHA ●○○○○○○○○○'))

make adjustments to your function until both lines are identical