zoukankan      html  css  js  c++  java
  • python学习笔记三——控制语句

    2.5 运算符与表达式

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

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

    算术运算符

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

    求模:%    表达式:x%y

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

    注意:与C、Java语言不用,Python不支持自增运算符和自减运算符。例如,i++、i--是错误的语法

    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

    注意:在Python2中1/2和python3中的1/2结果略有不同,python2认为1和2是整型,相除后的结果会被截断,因此得到值为0。python3中能得到正确结果0.5

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

    2.5.2 关系运算符和关系表达式

      同C语言一样

    <  >  <=  >=  ==  !=

    小于、大于、小于等于、大于等于、等于、不等于

    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()相同。而python2中的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()函数来实现。

  • 相关阅读:
    LwIP源代码文件目录解析
    规划2014!
    test
    111
    df
    第一次北京之行
    Android02--debug.keystore的注册信息
    Android01--开发环境搭建
    dfd
    1007
  • 原文地址:https://www.cnblogs.com/dannylinux/p/8185046.html
Copyright © 2011-2022 走看看