문제

Having bit of trouble with a program i made. i am getting it to display a diamond but i have a problem, here is my code:

a = input("Enter width: ")
a = int(a)
b = a
for i in range(a):
  i = i + 1
  b = a - i
  text = " " * b + " " + "* " * i
  print(text[:-1])
for i in range(a):
  i = i + 1
  b = a - i
  text = " " * i + " " + "* " * b
  print(text[:-1])

Thanks for all the help! this is the answer

도움이 되었습니까?

해결책

That's because print doesn't return the string, it returns None.

>>> print(print("foo"))
foo
None

Perhaps you wanted to do this:

text = " " * i + " " + "* " * b
print (text[:-1])

To remove the trailing white-space better use str.rstrip:

>>> "foo ".rstrip()
'foo'

help on str.rstrip:

>>> print (str.rstrip.__doc__)
S.rstrip([chars]) -> str

Return a copy of the string S with trailing whitespace removed.
If chars is given and not None, remove characters in chars instead.

다른 팁

You can write your slice like this (not on the print return value):

("* "*b)[:-1]

or, you can use join:

' '.join(['*']*b)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top