Python 在if语句中使用嵌套for循环时没有输出

Python 在if语句中使用嵌套for循环时没有输出,python,for-loop,if-statement,nested,Python,For Loop,If Statement,Nested,我试图根据用户输入打印出一系列模式。但是,当我添加if语句或while循环时,即使选择了正确的数字,也不会得到任何输出。如果我不向其添加循环,则模式可以工作。我是python新手,不明白为什么它不打印任何内容 num_draw = input("Please enter the number of the design you would like[1-6] or -1 to quit: ") #while num_draw != -1: if num_draw == 1: for

我试图根据用户输入打印出一系列模式。但是,当我添加if语句或while循环时,即使选择了正确的数字,也不会得到任何输出。如果我不向其添加循环,则模式可以工作。我是python新手,不明白为什么它不打印任何内容

num_draw = input("Please enter the number of the design you would like[1-6] or -1 to quit: ")

#while num_draw != -1:
if num_draw == 1:

    for i in range(0, 5):
        for j in range(0, i+1):
            print("* ",end="")
        print()
elif num_draw == 2:
#2
    size = 5
    isize = size - 2
    print ('*' * size)
    for i in range(isize):
        print ('*' + ' ' * isize + '*')
    print ('*' * size)

elif num_draw == 3:

    for i in range(5):
        for j in range(5):
            print(" *"[(j + i + 1)%2], end=' ')
        print()
elif num_draw == 4:

    for i in range(0, 5):
        for j in range(0, i+1):
            print("* ",end="")
        print()


elif num_draw == 5:
    for i in range(0, 5):
        for j in range(5, i, -1):
            print("@ ", end="")
        print()


elif num_draw == 6:
    k = 8
    for i in range(0, 5):
        for j in range(0, k):
            print(end=" ")
        k = k - 2
        for j in range(0, i+1):
            print("* ", end="")
        print()

你几乎是对的。问题是键盘输入的类型总是
str
(默认情况下为字符串),您将其与
int
(整数)类型的数字进行比较。例如,如果您输入
1
,则
num\u draw='1'
,因此您要检查
如果'1'==1:
,则为
False
。类似地,您的
if
elif
都不是
True
,因为您将
str
类型与
int
类型进行比较

要使代码正常工作,请将输入类型转换为
int
,如下所示:

num_draw = int(input("Please enter the number of the design you would like[1-6] or -1 to quit: "))
输出

Please enter the number of the design you would like[1-6] or -1 to quit: 

1
* 
* * 
* * * 
* * * * 
* * * * * 

如前所述,您的
输入
必须是
int
,才能进行适当的比较。至于你的while循环
whilenum\u draw!=-1:
正确,但您需要在循环中移动
输入
提示,以便用户可以重新选择选项。设置
num\u draw='x'
只是为了创建一个限定条件来启动循环

num_draw = 'x'
while num_draw != -1:
    num_draw = int(input("Please enter the number of the design you would like[1-6] or -1 to quit: "))