python 基础学习 switch 语句

switch 语法结构

switch 语句用于编写多分支结构的程序,类似于if...elif...eles语句。

swtch 语句的表达的分支结果比if...elif...lese 语句表达的更清晰,代码的可读性更高。

####python并没有提供switch语句######

但是:python 可以通过字典实现switch语句的功能。

实现方法:

                        定义一个字典

                        调用字典的get()获取相应的表达式

范例:

>>> 6/4
1
>>> 6.0/4
1.5
>>> from __future__ import division
>>> 5/2
2.5

# __future__模块      division 精确的除法

下面是一个计算器:

#!/usr/bin/python
#coding:utf-8
from __future__ import division
def jia(x,y):
    return x+y
def jian(x,y):
    return x-y
def chu(x,y):
    return x/y
def cheng(x,y):
        return x*y
def operator(x,o,y):
    x =int(raw_input("plese somthing number:"))
    y =int(raw_input("plese somthing number:"))
    o = raw_input("plese somthing +/*-:")
    if o == ‘+‘:
        print jia(x,y)
    elif o == ‘*‘:
        print cheng(x,y)
    elif o == ‘/‘:
        print chu(x,y)
    elif o == ‘-‘:
        print jian(x,y)
    else:
        pass
print operator(‘x‘,‘o‘,‘y‘)

#注意三次判断是多余的,且如果符号错误,执行为空,效率不是很好

如果通过switch编写一个计算器

[[email protected] tools]# cat switch.py 
#!/usr/bin/python
#coding:utf-8
from __future__ import division

def jia(x,y):
    return x+y

def jian(x,y):
    return x-y

def chu(x,y):
    return x/y

def cheng(x,y):
    return x*y

operator = {"+":jia,"-":jian,"*":cheng,"/":chu}
print jia(2,4)
print jia
print operator["+"](3,4)                               #通过字典取值,省去判断的环节;
[[email protected] tools]# python switch.py 
6
<function jia at 0x7fc3ecb8fa28>
7
如果字典中没有值或值是错误的:print operator["("](3,4)
报错如:Traceback (most recent call last):
          File "switch.py", line 20, in <module>
            print operator["("](3,4)
        KeyError: ‘(‘
所以我们可以使用字典中get的方法:
Traceback (most recent call last): print operator.get["-"](3,4)
  File "switch.py", line 21, in <module>
    print operator.get["-"](3,4)
TypeError: ‘builtin_function_or_method‘ object is unsubscriptable

实现和if相同的操作:

[[email protected] tools]# cat switch.py
#!/usr/bin/python
#coding:utf-8
from __future__ import division

def jia(x,y):
    return x+y

def jian(x,y):
    return x-y

def chu(x,y):
    return x/y

def cheng(x,y):
    return x*y

operator = {"+":jia,"-":jian,"*":cheng,"/":chu}
def f(x,o,y):
    print operator.get(o)(x,y)                             #将字典中的key带入函数中,类似如if的判断
f(2,"-",4)
[[email protected] tools]# python switch.py
-2

时间: 2024-11-07 10:27:59

python 基础学习 switch 语句的相关文章

Python基础学习之语句和语法

语句和语法 python语句中有一些基本规则和特殊字符: 井号键"#"表示之后的字符为python注释: 三引号(''' ''')可以多行注释 换行"\n"是标准的行分隔符(通常一个语句一行): 反斜杠"\"继续上一行: 分号":"将两个语句连接在一行中 冒号":"将代码的头和体分开: 语句(代码块)用缩进的方式体现: 不同缩进深度分隔不同的代码块: python文件以模块的形式组织. 1.注释(#) Py

python 基础学习--循环语句--附代码

1:利用for循环,完成a=[1,7,4,89,34,2]的冒泡排序(冒泡排序:小的排前面,大的排后面.) a = [1, 7, 4, 89, 34, 2] for i in range(len(a) - 1): for j in range(len(a) - i - 1): if a[j] > a[j + 1]: a[j], a[j + 1] = a[j + 1], a[j] print(a) 2:输出99乘法表 for i in range(1, 10): list_1 = [] for j

python基础学习2

python中的运算符 1.算术运算符:用来做算术运算的符号 ①.+ :求和,也可以做连接符 ②. - :求差 ③. * : 求积 ④. / :求商 ⑤.% :取余 ⑥.//  :取整 ⑦.**  :次方 注意:只能是数值 print(3*3) #求积结果:9 print(9/2) #相除结果:4.5 print(3**4) #3的4次方,结果:81 print(9//4) #小数部分直接丢掉,取整结果:2 print(13%3) #取余结果:1 运行结果是 9 4.5 81 2 1 比较运算符

Python基础学习笔记

Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单. 2.易于阅读:Python代码定义的更清晰. 3.易于维护:Python的成功在于它的源代码是相当容易维护的. 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好. 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断. 6.可移植:基于其开放源代码的特性,Py

python基础学习07(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #file与input output #文件对象 #简单说来,就是写入和读取的方式 #file(),open()2个操作都是一样的,一般推荐open() #语法 # open(name[, mode[, bufferin

python基础学习08(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #异常 """ NameError: 尝试访问一个未申明的变量 ZeroDivisionError:  除数为零 SyntaxError: 解释器语法错误 IndexError: 请求的索引超出序列范

python基础学习12(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #python class #面向对象编程oop思想,3个特性:封装.继承.多态,在其他方面的功能,比如重载,模拟等,也可以自定义自己需要的类 #在python中,面向对象主要2个:类和类实例 #类与实例 #类与实例有关

python基础学习09(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #什么是函数 #就是引用,创建,使用 #例子 def foo(): print '233' foo() #返回与函数类型 def foo1():#是一个过程 print 'hello world!' foo1() foo

python基础学习11(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #执行环境 #可调用对象 """ 许多的python 对象都是我们所说的可调用的,即是任何能通过函数操作符“()”来调用的对象.要调用可调用对象, 函数操作符得紧跟在可调用对象之后.Python 有4