在for循环中使用if语句

时间:2019-10-07 20:37:13

标签: python for-loop if-statement

我正在尝试让我的程序打印给定符号中的数字


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 :(得分:0)

作为次要建议,请使用列表推导而不是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
     |         |         |    |    |
     |         |         |    |    |
     |         |         |    |    |
     |         |         |    |    |