Build a Number Pattern Generator - Build a Number Pattern Generator

Tell us what’s happening:

My code behaves correctly but conditions from 3 to 7 do not get accepted. What am i doing wrong?

Your code so far

def number_pattern(n):
    if n < 0:
        return('Argument must be an interger greater than 0.')
    if not isinstance(n,int):
        return('Argument must be an integer value.')
    else:
        number =""
        for i in range(1,n+1):
            number +=str(i)
            number +=' '
        return number

print(number_pattern(4))
print(number_pattern(12))

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36

Challenge Information:

Build a Number Pattern Generator - Build a Number Pattern Generator

GitHub Link: freeCodeCamp/curriculum/challenges/english/blocks/lab-number-pattern-generator/6842a6cd9836f0114a5b7a8a.md at main · freeCodeCamp/freeCodeCamp · GitHub

Hey @hkaayz

Your current output is having trailing space so you current output looks like this
1 2 3 4 but answer is expecting 1 2 3 4

Also the integer check should come before n < 0. A float like 0.5 would crash on the < comparison before the type check runs so integer check should come first.

i don’t understand how to remove the trailing spaces exactly

def number_pattern(n):
    if not isinstance(n,int):
        return ('Argument must be an integer value.')
    if n < 0:
        return ('Argument must be an interger greater than 0.')
    else:
        number =""
        for i in range(1,n+1):
            number +=str(i)
        return number

print(repr(number_pattern(4)))
print(repr(number_pattern(12)))

Condition 1,2,6 are accepted rest remain unaccepted.

If you look into this, all you need to do is make sure that number +=' 'is not added to the last element, in your above case, element would be 4.

okay i got that done, now the only condition that isn’t satisfied is 7:

number_pattern should return "Argument must be an integer greater than 0. " when passed a non-positive integer.

updated code:

def number_pattern(n):
    if not isinstance(n,int):
        return ('Argument must be an integer value.')
    if n < 0 :
        return ('Argument must be an interger greater than 0.')
    else:
        number =" "
        for i in range(1,n+1):
            number +=str(i)
            number +=' '
        return number.strip()

print(repr(number_pattern(4)))
print(repr(number_pattern(12)))

nvm got it, literally a spelling mistake :sweat_smile:

Your current function accepts 0 but the user story mentions, integer greater than 0 is only allowed.