簡體   English   中英

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

[英]Print the same string * x in reverse multiple times?

所以為了解決一個練習,我需要像這樣打印字符串“X”*用戶輸入值:

XXXXXXXX
 XXXXXXX
  XXXXXX
   XXXXX
    XXXX
     XXX
      XX
       X

我的代碼是這樣做的:

XXXXXXXX
XXXXXXX
XXXXXX
XXXXX
XXXX
XXX
XX
X

我試過這個 function 但不知不覺它沒有做我需要的,它只是逐個字符地反轉:

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

這是我到目前為止沒有 function 反轉的原始代碼

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

我在這件事上浪費了很多時間。希望你們能幫助我。 感謝您的時間。

您可以在前面添加空格:

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

output:

XXXXXXXXXX
 XXXXXXXXX
  XXXXXXXX
   XXXXXXX
    XXXXXX
     XXXXX
      XXXX
       XXX
        XX
         X

您可以使用str.rjust代替純字符串乘法:

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, ' '))

作為替代方案,使用字符串格式:

print(f'{"*" * n: >{width}}')

f 弦需要 python 3.6+。 作為替代str.format()可以使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM