如何用字符串输入来中断while
?我正在尝试这个,但是第一个if被忽略了:
from itertools import cycle;
ewe=cycle([0]);
Nom_join="";
Principal_loop=True;
Cont_Error1=0;
while(Principal_loop==True):
for i in ewe:
Nom_join=input("give me a name to search: -> ");
if (Nom_join==""):
print("you cant do that");
Cont_Error1+=1;
elif(Nom_join==" "):
print("you cant do that");
Cont_Error1+=1;
elif(Nom_join.isdigit()):
print("you cant do that")
Cont_Error1+=1;
elif(Nom_join=="*"):
Principal_loop=False;
else:
break;
答案 0 :(得分:0)
尝试在break
之后添加Principal_loop=False
语句。是的,请删除分号并在运算符之前和之后添加空格以符合PEP 8 guidelines。另外,在条件语句后也没有括号。
from itertools import cycle
ewe = cycle([0])
Nom_join = ""
Principal_loop = True
Cont_Error1 = 0
while Principal_loop == True:
for i in ewe:
Nom_join = input("give me a name to search: -> ")
if Nom_join == "":
print("you cant do that")
Cont_Error1 += 1;
elif Nom_join == " ":
print("you cant do that")
Cont_Error1 += 1
elif Nom_join.isdigit():
print("you cant do that")
Cont_Error1 += 1
elif Nom_join == "*":
Principal_loop = False
break
else:
break
我真的不确定为什么您需要启动一个无限零循环...还可以进行许多其他简化。这样做似乎更简单:
Cont_Error1 = 0
while True:
Nom_join = input("give me a name to search: -> ")
if Nom_join in {"", " ", "*"} or Nom_join.isdigit():
print("you can't do that")
Cont_Error1 += 1;
else:
break