Как создать вертикальную гистограмму, используя встроенные модули python? - PullRequest
0 голосов
/ 28 февраля 2020

В основном мне нужно создать вертикальную гистограмму, которая будет каскадно двигаться вниз. Мой код пока:

a = 1
b = 8
c = 6
d = 7

x = [a, b, c, d]
z = max(x)
print(z)
i = 0
while i < z:
    i += 1
    a -= 1
    b -= 1
    c -= 1
    d -= 1
    if a >= 0:
        print("*".ljust(5), end="")
    if b >= 0:
        print("*".ljust(5), end="")
    if c >= 0:
        print("*".ljust(5), end="")
    if d >= 0:
        print("*".ljust(5))

вывод получен:

*    *    *    *    
*    *    *    
*    *    *    
*    *    *    
*    *    *    
*    *    *    
*    *    
*    

Требуемый вывод:

*   *   *   *
    *   *   *
    *   *   *
    *   *   *
    *   *   *   
    *   *   *
    *       *
    *

ps: я новичок во всем этом, поэтому, пожалуйста, извините мое невежество ?

1 Ответ

0 голосов
/ 28 февраля 2020

Ваш код почти работает как есть, но * s перемещаются между столбцами.

Если я изменю * s на переменную, для которой они предназначены, ваш текущий вывод будет выглядеть так:

a   b   c   d
b   c   d
b   c   d
b   c   d
b   c   d
b   c   d
b   d
b

Вам просто нужно напечатать несколько пробелов, когда ваши условия подходят, False. Таким образом, каждый становится

if a >= 0:
    print("*".ljust(5), end="")
else:
    print(" ".ljust(5), end="")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...