多次打印相同的字符串* x?

问题描述 投票:0回答:3

因此,为了解决练习,我需要打印字符串“ X” *这样的用户输入值:

XXXXXXXX
 XXXXXXX
  XXXXXX
   XXXXX
    XXXX
     XXX
      XX
       X

我的代码执行此操作:

XXXXXXXX
XXXXXXX
XXXXXX
XXXXX
XXXX
XXX
XX
X

我已经尝试过此功能,但是显然它没有满足我的需要,只是一个字符一个字符地反转:

x = int(input())
times = x
def reverse(s): 
  str = " " 
  for i in s: 
    str = i + str
  return str

for x in range(x):
    s=((times - x ) *" X"  )
    print(reverse(s))

这是我到目前为止编写的原始代码,没有反向功能

x = int(input())
times = x
for x in range(x):
    print((times - x ) *"X" )

我在这方面浪费了很多时间。希望你们能帮助我。谢谢您的时间。

python
3个回答
1
投票

您可以在前面添加空间:

for x in range(times):
    print(' '*x + 'X'*(times - x ))

输出:

XXXXXXXXXX
 XXXXXXXXX
  XXXXXXXX
   XXXXXXX
    XXXXXX
     XXXXX
      XXXX
       XXX
        XX
         X

0
投票

代替纯字符串乘法,您可以使用str.rjust

str.rjust

0
投票

使用for x in range(times, 0, -1): print((x*'x').rjust(times) xxxxxxxx xxxxxxx xxxxxx xxxxx xxxx xxx xx x

str.rjust()

作为替代,使用字符串格式:

width = 10
for n in range(width, 0, -1):
    print(f'{"*" * n}'.rjust(width, ' '))

f字符串需要python 3.6+。作为替代print(f'{"*" * n: >{width}}') ,可以使用。

© www.soinside.com 2019 - 2024. All rights reserved.