Python 在if语句中使用嵌套for循环时没有输出
我试图根据用户输入打印出一系列模式。但是,当我添加if语句或while循环时,即使选择了正确的数字,也不会得到任何输出。如果我不向其添加循环,则模式可以工作。我是python新手,不明白为什么它不打印任何内容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
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: "))