Python中落到实处switch功用实例深入分析,python学习笔记三

前言

Python中落到实处switch作用实例深入分析,pythonswitch

前言

明日在念书python的经过中,开掘python未有switch那个语法。于是就想在python中怎么样技能落到实处这些作用吗?

正文

本文中大家对switch的选取模拟为常规的数据库的增加和删除改查操作的对应,如’select
对应’select action’等。

1.简单的if-else

正如大家所知,python中有if语句,而且当时学习C的时候,学到if-else时引出的的代替品正是switch,两个能够健全的相互代替,须求专注的是在python中else
if简化成了elif。如下所示:

#!/usr/bin/env python
user_cmd = raw_input("please input your choice:\n")
if usercmd == "select"
 ops = "select action" 
elif usercmd == "update"
 ops = "update action" 
elif usercmd == "delete"
 ops = "delete action" 
elif usercmd == "insert"
 ops = "insert action" 
else 
 ops = "invalid choice!"
print ops
`</pre>

 2.运用字典

此地大家选取到了字典的函数:dict.get(key,
default=None)。key–字典中要索求的值,default–假设钦定键的值不设有的时候,重临该暗中同意值。如下所示:

#!/usr/bin/env python
usercmd = raw_input("please input your choice:\n")
dic = {'select':'select action','update':'update action','delete':'delete action','insert':'insert action'}
defaultitem = 'invalid choice!'
ops = dic.get(usercmd,defaultitem)
print ops

3.施用lambda函数结合字典

lambda的貌似格局是关键字lambda后边跟二个或多少个参数,紧跟多少个冒号,以往是贰个表明式。lambda是一个表明式而不是一个口舌。它亦可产出在Python语法不允许def出现的地点,这里就不再多加描述。如下所示:

#!/usr/bin/env python
usrcmd = raw_input("please input your choice:\n")
dic = {'select': lambda : "select action",
  'update': lambda : "update action",
  'delete': lambda : "delete action",
  'insert': lambda : "insert action"}
print cho[usr_cmd]()

总结

以上就是本文关于Python中贯彻switch作用实例分析的全体内容,希望对大家享有协助。感兴趣的相爱的人能够持续参照本站别的相关专项论题,如有不足之处,应接留言提出。感激朋友们对本站的支撑!

前言
前几日在学习python的进程中,发掘python未有switch这么些语法。于是就想在python中怎么着技术落到实处这…

函数

  • 函数正是大功告成一定功效的一个语句组,那组语句能够视作三个单位选取,并且给它取贰个名字。

  • 亚洲必赢官网 ,能够因而函数名在程序的两样地点屡屡推行(那平日堪当函数调用),却没有须求在富有地点都重复编写这个讲话。

2.5 运算符与表明式

今日在就学python的长河中,开采python未有switch那么些语法。于是就想在python中怎么着才具兑现这么些作用吗?

自定义函数

  • 用户自个儿编写的

  2.5.1 算术运算符和算术表明式

正文

预订义的Python函数

  • 系统自带的某个函数,还大概有一部分和第三方编写的函数,如别的技术员编写的有的函数,对于这么些现有的函数用户能够平素拿来使用。

  算术运算符包罗四则运算符、求模运算符和求幂运算符。

本文中大家对switch的利用模拟为常规的数据库的增加和删除改查操作的应和,如’select
对应’select action’等。

缘何使用函数

  • 降落编制程序的难度
    • 常备将贰个繁杂的大主题素材分解成一层层更简约的没不正常,然后将小标题继续划分成更加小的难点,当难点细化为丰硕简单时,我们将得以分而治之。那时,大家可以使用函数来拍卖特定的难题,种种小意思消除了,大题材也就消除了。
  • 代码重用
    • 大家定义的函数能够在一个先后的三个岗位运用,也足以用于八个程序。其它,大家还足以把函数放到八个模块中供别的程序猿使用,同期,我们也足以行使其它程序定义的函数。那就制止了重复劳动,提供了工效。

算术运算符

1.简单的if-else

函数定义和调用

  • 当我们温馨定义贰个函数时,平常选择def语句,其语法格局如下所示:

    def 函数名 (参数列表): #可以没有参数函数体
    
    def add(a, b):
        print a + b
    
  • 调用函数的相似格局是:

    函数名(参数列表)
    
    add(1, 2)
    

加减乘除:+  -  *  /    表达式:x+y   x-y   x*y  x/y

正如小编辈所知,python中有if语句,而且当时学习C的时候,学到if-else时引出的的代替品正是switch,两个可以圆满的交互代替,须要注意的是在python中else
if简化成了elif。如下所示:

情势参数和事实上参数

  • 在概念函数时函数前面圆括号中的变量名字为作“格局参数”,或简称为“形参”

  • 在调用函数时,函数名背后圆括号中的变量名称为作“实际参数”,或简称为“实参”

求模:%    表达式:x%y

#!/usr/bin/env python
user_cmd = raw_input("please input your choice:\n")
if usercmd == "select"
 ops = "select action" 
elif usercmd == "update"
 ops = "update action" 
elif usercmd == "delete"
 ops = "delete action" 
elif usercmd == "insert"
 ops = "insert action" 
else 
 ops = "invalid choice!"
print ops
`</pre>

缺省参数(私下认可参数)

  • 暗中同意参数只好从右至左给定,假使需求首先个参数给暗中同意值,其余参数不给,那么把第贰个参数移到终极贰个就可以。

    def add(a, b = 2):
        print a + b
    
    add(3)                  #result : 5
    

求幂: **    表达式:x**y

 2.应用字典

一些变量和全局变量

  • Python中的任何变量都有其特定的成效域。

  • 在函数中定义的变量一般只可以在该函数内部使用,这么些只好在先后的一定部分行使的变量大家称为局地变量。

  • 在三个文本顶上部分定义的变量能够供该文件中的任何函数调用,那几个可以为总体程序所选取的变量称为全局变量。

    x = 100         #全局变量,可以在文件任何地方调用
    
    def func():
        x = 200     #局部变量,只能在函数内部调用
        print x
    
    func()          #输出200
    print x         #输出100
    

注意:与C、Java语言不用,Python不辅助自增运算符和自减运算符。比如,i++、i–是谬误的语法

此间大家运用到了字典的函数:dict.get(key,
default=None)。key–字典中要寻觅的值,default–假如钦命键的值不存在时,再次回到该默许值。如下所示:

Python中落到实处switch功用实例深入分析,python学习笔记三。global语句

  • 强制申明为全局变量

    x = 100
    
    def func():
        global x    #强制声明x为全局变量,导致值被覆盖
        x = 200
    
    func()
    print x         #输出200
    
print("1+1=",1+1)
print("2*3=",2*3)
print("3%2=",3%2)
print("2**3=",2**3)

[root@Dannyserver danny]# python 2.py 
1+1= 2
2*3= 6
3%2= 1
2**3= 8
#!/usr/bin/env python
usercmd = raw_input("please input your choice:\n")
dic = {'select':'select action','update':'update action','delete':'delete action','insert':'insert action'}
defaultitem = 'invalid choice!'
ops = dic.get(usercmd,defaultitem)
print ops

函数重返值

  • 函数被调用后会再次回到三个内定的值

  • 函数调用后暗中认可再次回到None

  • return返回值

  • 重回值可以是自由档案的次序

  • return施行后,函数终止

  • 分别再次来到值和打字与印刷

    def add(a, b):
        return a + b
    
    ret = add(1, 2)     #将函数返回结果赋值给变量ret
    print ret           #输出3
    

 

3.采纳lambda函数结合字典

向函数字传送入元组和字典

  • func (*args)

    def func(x, y):
        print x, y
    
    t = (1, 2)
    func(*t)
    
  • func (**kw)

    def func(name='jack', age=30):
        print name,age
    
    d = {'age': 22, 'name' : 'mike'};
    func(**d)
    

瞩目:在Python第22中学56%和python3中的1/4结实略有不一致,python2以为1和2是整型,相除后的结果会被截断,由此获得值为0。python3中能获得准确结果0.5

lambda的形似格局是不能缺少字lambda前面跟三个或八个参数,紧跟多个冒号,未来是一个表明式。lambda是三个表达式而不是贰个言辞。它能够出现在Python语法分裂意def出现的地点,这里就不再多加描述。如下所示:

拍卖多余实参

  • def func(*args, **kw)

    def func(x, *args, **kw):
        print x
        print args
        print kw
    
    func(1, 2, 3, 4, 5, y=10, z=20)
    
    #输出
    1
    (2, 3, 4, 5)
    {'y': 10, 'z': 20}
    

python的算术表达式具有数学表明式的结合性和优先性。及从左至右,先乘除,再加减,有括号先运算括号内的。

#!/usr/bin/env python
usrcmd = raw_input("please input your choice:\n")
dic = {'select': lambda : "select action",
  'update': lambda : "update action",
  'delete': lambda : "delete action",
  'insert': lambda : "insert action"}
print cho[usr_cmd]()

lambda表达式

  • 佚名函数

    • lambda函数是一种高效定义单行的小不点儿函数,是从Lisp借用来的,能够用在别的索要函数的地方。

      lambda x,y:x*y
      
    • 利用Python写一些试行脚本时,使用lambda可以节省定义函数的经过,让代码越发简明。

    • 对此有个别架空的,不会其余地点再复用的函数,不时候给函数起个名字也是个难点,使用lambda不须要考虑命名的标题。
    • 行使lambda在一些时候让代码更易于通晓。

 

总结

lambda基础

  • lambda语句中,冒号前是参数,能够有多个,用逗号隔绝,冒号左边的再次回到值。lambda语句构建的实在是三个函数对象

    g = lambda x:x**2
    print g
    <function <lambda> at 0x0000000002643A58>
    

2.5.2 关系运算符和涉及表明式

如上就是本文关于Python中落到实处switch功效实例解析的全体内容,希望对大家持有扶助。感兴趣的意中人能够三番五次参照本站别的连锁专项论题,如有不足之处,迎接留言提议。多谢朋友们对本站的援助!

lambda应用实例

  • reduce为逐次操作list里的每项,接收的参数为2个,最后回来的为贰个结实。

    sum = reduce(lambda x,y:x*y, range(1,6))
    print sum
    

  同C语言同样

你或然感兴趣的稿子:

  • python中Switch/Case完结的演示代码
  • 浅谈python为什么不要求三目运算符和switch
  • Python分支协会(switch)操作简要介绍

switch语句

  • switch语句用于编写多分支社团的顺序,类似与if…elif…else语句。
  • switch语句表达的道岔协会比if…elif…else语句表述的更清晰,代码的可读性越来越高。
  • 然而python并未提供switch语句

<  >  <=  >=  ==  !=

switch实现

  • python能够由此字典完毕switch语句的效益。
  • 福寿齐天格局分为两步
    • 首先,定义一个字典
    • 附带,调用字典的get()获取相应的表明式

低于、大于、小于等于、大于等于、等于、不对等

函数调用

  • 经过字典调用函数

    def add(a, b):
        return a + b
    
    def sub(a, b):
        return a - b
    
    def mul(a, b):
        return a * b
    
    def div(a, b):
        return a / b
    
    operator = {'+': add, '-': sub, '*': mul, '/': div}     #通过字典实现switch语句的功能
    
    def calc(a, o, b):
        return operator.get(o)(a, b)
    
    print calc(4, '+', 2)
    print calc(4, '-', 2)
    print calc(4, '*', 2)
    print calc(4, '/', 2)
    

 

2.5.3 逻辑运算符和逻辑表达式

and  :逻辑与  表达式:x and y

or  :逻辑或  表达式:x || y

not  :逻辑非  表达式:not x

print(not True)
print(False and True)
print(True and False)
print(True or False)

[root@Dannyserver danny]# python 2.py 
False
False
False
True

 

3.Python的支配语句

3.1 条件决断语句

  python中的条件判别语句有——if语句、if else语句

3.1.1 if 条件语句

语法1:

if (表达式):

  语句1

else:

  语句2

 

语法2:

if (表达式1):

  语句1

elif (表达式2):

  语句2

elif(表达式n):

  语句n

else:

  语句m

 

  python调节台输入函数:input()捕获用户的固有输入并将其转为字符串。

语法:input([prompt]) -> string

prompt是调整台出口的提示文字,提醒用户输入,重临值为字符串。假设输入的是数字,重回的依旧字符串,使用前需求调用int()调换一下。例:

x = input("x:")
x = int(x)
x = x + 1
print(x)

[root@Dannyserver danny]# python 2.py 
x:3
4

留意:假若不调用int()把字符串格式化为数字,计算表达式时会提醒错误

 例1:

a=input("a:")
a=int(a)
b=input("b:")
b=int(b)
if(a>b):
        print(a,">",b)
elif(a<b):
        print(a,"<",b)
else:
        print(a,"=",b)

 例2:

score=float(input("please input the score:"))  #接受用户输入并格式化为float类型,当输入的为小数时,使用int格式化会报错
if (90<=score<=100):
        print("A")
elif (80<=score<90):
        print("B")
elif (60<=score<80):
        print("C")
else:
        print("D")

 

瞩目:else子句后须要加五个冒号,使python解释器能识别出else子句对应的代码块。在python2中还有raw_input()函数用于吸收接纳用户输入,功用与Python3的input()一样。而python第22中学的input()接收的值不改换为字符串类型,而是保存原始类型,在python3中早已删除。

 

3.1.2 if语句嵌套

if语句嵌套是指在if语句中可以包蕴一个或多个if语句。

例:

x=0
y=99
if(x>=0):
        if(x>0):
             y=1
        else:
             y=0
else:
        y=-1
print ("y=",y)

 

3.1.3 switch语句的替代方案

  switch语句用于编写多分支协会的次序,类似于if…elif…else语句。C语言中switch语句的构造如下所示。

 switch(表达式) {

  case  常量表达式1:语句1

  case  常量表明式2:语句2

  …

  case  常量表达式n:语句n

  default:语句m

}

  switch语句表示的分段组织比if…elif…else语句更明显,代码可读性更加高。不过python并未提供switch语句,python能够通过字典完毕switch语句的功用。

  完毕格局分为两步。首先,定义叁个字典。字典是由键值对组合的会晤,然后,调用字典的get()获取相应的表明式。

下边这段代码通过算术运算的暗号,获取算术运算的表达式。

#使用字典实现switch语句
from __future__ import division
x=1
y=2
operator="*"  #定义变量
result={        #定义字典
        "+" : x+y,
        "-" : x-y,
        "*" : x*y,
        "/" : x/y
}
print(result.get(operator)) #调用get()方法,get()参数即变量operator的值,此处为乘号*

[root@Dannyserver danny]# python 2.py 
2

  还会有一种选择switch分支语句的方案是创造两个switch类,管理程序的流转。这种达成格局比较复杂,涉及面向对象、for循环、中断语句、遍历等文化。

  注意:switch语句形成代码不易维护,使源文件臃肿。面向对象的规划中不经常对switch语句进行重构,把switch语句分解为多少个类。当然,对于分段流程简便的switch,能够动用字典来兑现。使用字典更易于管理switch,而switch类回到了C、Java的老路上,而且写法更复杂了,不推荐应用。

 

3.3 循环语句

  python中的循环语句有while、for。

3.3.1 while循环

  python中while循环的格式如下所示。

while(表达式):

  …

else:

  …

while循环的实施进度:当循环表达式为真时,依次实践while中的语句。知道循环表达式的值为False,程序的流程转到else语句。当中else子句能够省略,表明式两侧的括号也能够总结。

留意:while循环中的else子句也属于循环的一某个,最后三回巡回截至后将实施else子句。

例1:

#while循环

numbers=input("输入几个数字,用逗号分隔:").split(",")
print(numbers)
x=0
while(x<len(numbers)):   #当x的值小于输入数字的个数时,执行循环
        print (numbers[x])
        x+=1    #一个循环结束时给x加1

 

[root@Dannyserver danny]# python 3.py 
输入几个数字,用逗号分隔:3,4,5
['3', '4', '5']
3
4
5

 

例2:

#带else子句的while循环
x=float(input("输入x的值:"))
i=0
while(x!=0):   #python3中不等于抛弃了<>,一律使用!=
        if(x>0):
           x -= 1
        else:
           x += 1
        i=i+1
        print("第%d次循环:" %i,x)
else:
        print("x等于0:",x)

 

[root@Dannyserver danny]# python 4.py 
输入x的值:5
第1次循环: 4.0
第2次循环: 3.0
第3次循环: 2.0
第4次循环: 1.0
第5次循环: 0.0
x等于0: 0.0
[root@Dannyserver danny]# python 4.py 
输入x的值:-5
第1次循环: -4.0
第2次循环: -3.0
第3次循环: -2.0
第4次循环: -1.0
第5次循环: 0.0
x等于0: 0.0

 注意:在动用循环语句时,应留神循环语句的布尔值,幸免出现死循环。

 

3.3.2 for循环

  for循环用于遍历三个汇合,格式如下:

for 变量 in 集合:

  …

else:

  …

  for … in
…循环平日与range()函数一齐使用,range()再次来到一个列表,for..in…遍历列表中的成分。range()函数声明如下:

class range(object)

  range(stop) -> range object

range(start,stop[,stop]) -> range object

例:range(1,5,2)表示从1开首到5了结,每一回扩张2个单位,不包蕴5。

  range()重临一个range对象,列表的成分值由3个参数决定;参数start表示列表初步的值,默许值为0;参数stop表示列表停止的值,改参数不能缺少;参数setp表示步长,每一遍递增或递减的值,暗中认可值为1。

for x in range(-1,2):
        if (x>0):
            print("正数:",x)
        elif (x==0):
            print("零:",x)
        else:
            print("负数:",x)
else:
        print("循环结束")

只顾:在C、Java语言中,援救如下结构的for循环

for(表达式1;表达式2;表达式3)

  语句块

只是在python中不帮忙那样的for循环。要是急需编制类似成效的循环,能够运用while循环。例:

x=0
while x<5:
        print(x)
        x=x+2

上述成效也足以用range+for的办法贯彻,例:

for x in range(0,5,2):
        print(x)

代码看上去更简短一点,当然这里只是完结了理念的for循环。假如要用原则表明式用作循环的规格,可以组织range()函数来贯彻。

 

网站地图xml地图