Build an RPG character - Build an RPG Character

Tell us what’s happening:

I can’t seem to get past the last two stages even though my output seems to align with the instructions. Please be kind I’m a beginner and trying my best without having a breakdown

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"
    stats = [strength, intelligence, charisma]
    for stat in stats:
        if not isinstance (stat, int):
            return "All stats should be integers"
        if stat <1:
            return "All stats should be no less than 1"
        if stat >4:
            return "All stats should be no more than 4"
    if sum(stats) != 7:
        return "The character should start with 7 points"
    return "Character is valid"
    
#statbar 
   
def stat_bar(value):
    full_dot = '●'
    empty_dot = '○'
    return full_dot*value + empty_dot*(10-value)

#sample values
name = 'ren'
strength = 4
intelligence = 2
charisma = 1 

validation_value = create_character(name, strength,intelligence, charisma)

if validation_value == "Character is valid":
    result = f"{name}\n"
    result += f"STR {stat_bar(strength)}\n"
    result += f"INT {stat_bar(intelligence)}\n"
    result += f"CHA {stat_bar(charisma)}"
    print(result)
else:
    print(validation_value)
 
  










Your browser information:

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

Challenge Information:

Build an RPG character - Build an RPG Character

have you tried calling your function and see what it returns?

like, if you write print(create_character('ren', 4, 2, 1)), you should see what your function is returning, and that is what the tests are seeing

hmm i tried doing this and it basically returns the following:

ren
STR ●●●●○○○○○○
INT ●●○○○○○○○○
CHA ●○○○○○○○○○
Character is valid

so maybe the issue is that the function returns the character is valid statement

1 Like

You need to distinguish between return and print, they are not the same thing.

1 Like

the function create_character is not returning that, no

these lines in the terminal:

come from somewhere else

i know this sounds stupid but how do i do that exactly?

you need to distinguish between the two in your mind, the return establish the output of the function, the print writes in the terminal

def function
    print("This is what the function prints")
    return "This is what the function returns"
  1. If all values pass the verification, the function ( create_character) should return a string with four lines

Your function returns this:

return "Character is valid"

Because it uses the return keyword.

You have another function that uses print() to write something to the console but it returns nothing because it does not use the keyword return

The tests don’t check what’s printed to the console. They only look at what the create_character function returns using the return keyword.

You can’t mix up print and return they aren’t synonymous. They are different things.