我试图做一个选择菜单,每个菜单做不同的事情,例如,如果您选择数字1,将会很好地工作,但是,如果您选择2或其他数字,首先会尝试运行1,而我不难道每个选项都以“独立”的形式出现吗?
示例(这将起作用):
choice = input ("""
1. Make thing 1
2. Make thing 2
3. Make thing 3
4. Exit
Please select your choice:""")
if choice == "1":
print("thing 1")
if choice == "2":
print("thing 2")
if choice == "3":
print("thing 3")
if choice == "4":
print("thing 4")
但是例如,如果1以后有更多编码,并且您想使用选项2,则python也将运行1 ...
有人可以帮助我吗? =)
谢谢大家!最好的社区!
Python缺少switch / case语句(例如C / C ++),在其中您可以让它执行多个(相邻)条件条件,然后在处理进一步的条件之前使其为break
。在Python中,您需要使用if-elif-else语句进行模拟,或者相应地在条件条件下使用比较运算符(例如==
,<') and/or boolean operators ( like
和,
or`)。
这是C语言切换/案例switch/case in python的示例:
switch(n) {
case 0:
printf("You typed zero.\n");
break;
case 1:
case 9:
printf("n is a perfect square\n");
break;
case 2:
printf("n is an even number\n");
case 3:
case 5:
case 7:
printf("n is a prime number\n");
break;
case 4:
printf("n is a perfect square\n");
case 6:
case 8:
printf("n is an even number\n");
break;
default:
printf("Only single-digit numbers are allowed\n");
break;
}
这是在Python switch/case in python中模拟开关/案例的第一步。
if n == 0: print "You typed zero.\n" elif n == 1 or n == 9 or n == 4: print "n is a perfect square\n" elif n == 2 or n == 6 or n == 8: print "n is an even number\n" elif n == 3 or n == 5 or n == 7: print "n is a prime number\n" elif n > 9: print "Only single-digit numbers are allowed\n"
这是一种更好的“ Pythonic”方式switch/case in python:
options = {0 : zero,
1 : sqr,
4 : sqr,
9 : sqr,
2 : even,
3 : prime,
5 : prime,
7 : prime,
}
def zero():
print "You typed zero.\n"
def sqr():
print "n is a perfect square\n"
def even():
print "n is an even number\n"
def prime():
print "n is a prime number\n"
options[num]()