Использование оператора if в цикле for - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь заставить мою программу печатать числа в заданных символах


arv=input("Sisesta arv: ")
suurus=int(input("Sisesta suurus "))


arvulist=list(x.strip() for x in arv)


def rida_V(number):
    sektsioon=[]
    n=0
    kokku= ""
    for i in range(len(arv)):

        if number[i] in {"0","8","9","4"}:
            sektsioon.append("|" + " "*suurus + "|" + " "*suurus)
        elif number[i] in {"1","2","3","7"}:
            sektsioon.append(" " + " "*suurus + "|" + " "*suurus)
        elif number[i] in {"5","6"}:
            sektsioon.append("|" + " "*suurus + " " + " "*suurus)


    return sektsioon


for i in range(suurus):
    print("".join(rida_V(arvulist)))

она печатает

Sisesta arv: 1234
Sisesta suurus 4
     |         |         |         |    
     |         |         |         |    
     |         |         |         |    
     |         |         |         |    

, но я ожидаю, что она напечатает

Sisesta arv: 1234
Sisesta suurus 4
     |         |         |    |    |    
     |         |         |    |    |    
     |         |         |    |    |    
     |         |         |    |    |     

почему он не проходит через операторы if, когда он делает еще один цикл, я не могу разобраться с этим. как я могу это исправить?

1 Ответ

0 голосов
/ 07 октября 2019

В качестве незначительного предложения используйте списочные выражения вместо list(). Это правильно работает из моей командной строки:

arv=input("Sisesta arv: ")
suurus=int(input("Sisesta suurus "))
arvulist= [x.strip() for x in arv]
def rida_V(number):
    sektsioon=[]
    n=0
    kokku= ""
    for i in range(len(arv)):

        if number[i] in {"0","8","9","4"}:
            sektsioon.append("|" + " "*suurus + "|" + " "*suurus)
        elif number[i] in {"1","2","3","7"}:
            sektsioon.append(" " + " "*suurus + "|" + " "*suurus)
        elif number[i] in {"5","6"}:
            sektsioon.append("|" + " "*suurus + " " + " "*suurus)
    return sektsioon

for i in range(suurus):
    print("".join(rida_V(arvulist)))

Вывод:

Sisesta arv: 1234
Sisesta suurus 4
     |         |         |    |    |
     |         |         |    |    |
     |         |         |    |    |
     |         |         |    |    |
...