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
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.
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)))