设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 1022|回复: 1
收起左侧

如何在Python中正确使用SwitchCase语句

[复制链接]
发表于 2020-8-11 18:10:25 | 显示全部楼层 |阅读模式
  计算机中的开关案例声明 编程语言是一种功能强大的工具,它使程序员可以根据表达式或变量的结果完全控制程序的流程。开关条件特别用于在程序运行期间执行与表达式结果有关的不同代码块。如果结果是某个值,则程序将执行特定的过程;如果结果是另一个值,则程序将执行另一条过程,依此类推。
  首先向您展示switchcase语句如何在Java中起作用,以便您了解在Java中期望得到什么。Pythonswitchcase语句,尽管实现方式可能有所不同,但概念仍然相同。继续学习本教程您可以使用任何喜欢的PythonIDE或代码编辑器。Java切换案例演示,介绍如何在一年中的几个月之间进行切换以及如果在switch语句中找不到匹配项,则提供默认结果。
  publicstaticvoidswitch_demo(String[]args){intmonth=7;
  StringmonthString;switch(month){case1: monthString="January";break;case2: monthString="February";break;case3: monthString="March";break;case4: monthString="April";break;case5: monthString="May";break;case6: monthString="June";break;case7: monthString="July";break;case8: monthString="August";break;case9: monthString="September";break;case10:monthString="October";break;case11:monthString="November";break;case12:monthString="December";break;default:monthString="Invalidmonth";break;
  }
  System.out.println(monthString);
  }
  让我们分解上面的switchcase语句:
  步骤1:编译器首先为switch语句生成一个跳转表
  步骤2:switch语句仅对变量或表达式求值一次。
  步骤3:switch语句查看评估的结果,并根据结果决定执行哪个代码块。
  Python开发人员GuidoVanRossum相信一种简单的编程语言可以绕开其他编程语言中发现的系统漏洞和障碍,因此他想创建一种具有更复杂的语法短语的简单语法。
  他从未想象过,如今,Python编程语言可以成为设计科学机器学习应用程序的标准语言时需要使用的编程语言。
  在Python中切换案例
  Python 没有内置的switch语句,就像您可以找到的编程语言一样 取而代之的是,PHP和Java确实像Python程序员一样会使用if-else-if块,但由于跳转表比if-else-if梯形图更有效,因此切换案例的使用效率很高。
  这样做的原因是,它不是按顺序评估每个条件,而是查看评估的表达式或变量,然后直接跳转到要执行的代码的相关分支。
  使用if-else-if梯子进行切换,以查找圆柱体的表面积,文字区域和体积。
  defswitch():
  r=int(input("EnterRadius:"))
  h=int(input("EnterHeight:"))
  print("ress1forSurfaceArea\npress2forLiteralArea\npress3forVolume\n")
  option=int(input("youroption:"))ifoption==1:www.zpedu.com/it/rjyf/
  result=2*3.17*r*(r+h)
  print("\nSurfaceAreaOfCylinder=",result)elifoption==2:
  result=2*3.17*r*h
  print("LiteralAreaOfCylinder=",result)elifoption==3:
  result=3.17*r*r*h
  print("VolumeOfCylinder=",result)else:
  print("Incorrectoption")
  switch()
  说明:在上面的示例中,如果选项为1,则计算圆柱体的表面积;如果选项为2,则计算文字表面积,最后计算选项3,计算圆柱体的体积。
  使用类切换案例语句以将文字转换为字符串“month”
  classPythonSwitchStatement:defswitch(self,month):
  default="Invalidmonth"returngetattr(self,'case_'+str(month),lambda:default)()defcase_1(self):return"January"defcase_2(self):return"February"defcase_3(self):return"March"defcase_4(self):return"April"defcase_5(self):return"May"defcase_6(self):return"June"defcase_7(self):return"July"defcase_8(self):return"August"defcase_9(self):return"September"defcase_10(self):return"October"defcase_11(self):return"November"defcase_12(self):return"December"
  s=PythonSwitchStatement()
  print(s.switch(1))
  print(s.switch(3))
  print(s.switch(13))
  Theoutputwillbe:
  ___________________
  January
  March
  Invalidmonth
  ___________________
  说明:首先,创建一个名为PythonSwitchStatement定义一个switch()方法。它还针对特定的不同情况定义了其他功能。
  的switch()方法采用参数'month'并将其转换为字符串,然后将其附加到大小写文字中,然后将其传递给getattr()方法,然后返回该类中可用的匹配函数。
  如果找不到匹配项,则getattr()方法将返回lambda函数作为默认值。
  字典映射替换
  #Functiontoconvertnumberintostring
  #Switcherisdictionarydatatypehere
  defnumbers_to_strings(argument):
  switcher={0:"zero",1:"one",2:"two",
  }
  #get()methodofdictionarydatatypereturns
  #valueofpassedargumentifitispresent
  #indictionaryotherwisethesecondargumentwill
  #beassignedasthedefaultvalueofthepassedargumentreturnswitcher.get(argument,"nothing")
  #Driverprogramif__name__=="__main__":
  argument=0
  printnumbers_to_strings(argument)
  使用字典映射功能切换器的示例
  defone():return"January"deftwo():return"February"defthree():return"March"deffour():return"April"deffive():return"May"defsix():return"June"defseven():return"July"defeight():return"August"defnine():return"September"deften():return"October"defeleven():return"November"deftwelve():return"December"defnumbers_to_months(argument):
  switcher={1ne,2:two,3:three,4:four,5:five,6:six,7:seven,8:eight,9:nine,10:ten,11:eleven,12:twelve
  }#Getthefunctionfromswitcherdictionary
  func=switcher.get(argument,lambda:"Invalidmonth")#Executethefunctionprintfunc()
  使用字典映射返回值的示例
  b={'a':122,'b':123,'c':124,'d':125
  }#takeuserinput
  inp=input('inputacharacter:')#-1isthedefaultvalueiftherearenokeysthatmatchtheinput
  print('Theresultforinpis:',b.get(inp,-1))
  使用字典映射来切换星期几
  defweek(i):
  switcher={0:'Sunday',1:'Monday',2:'Tuesday',3:'Wednesday',4:'Thursday',5:'Friday',6:'Saturday'
  }returnswitcher.get(i,"Invaliddayoftheweek")
  然后拨打week()使用不同的值来找出星期几。
  即week(2),输出将是星期二,week(4),输出将是星期四,而week(5.5)将输出“星期几无效”
  结论
  Python没有内置的switch-case构造,但是您可以使用字典映射代替switchcase。
  Python开发人员出于充分的理由不包括switch-case结构。
  尽管许多程序员和开发人员一直在努力在Python中包含切换用例构造,但是无论是否考虑他们的建议,Python切换用例替代方案都可以提供更好的服务。

发表于 2021-1-20 13:46:43 | 显示全部楼层
很好的资料,感谢分享。
沙发 2021-1-20 13:46:43 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-3-29 01:52 , Processed in 0.065138 second(s), 10 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表