zoukankan      html  css  js  c++  java
  • 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
    

      比较运算符:用来比较(值只可能是布尔类型[真True或假False])

        ==    >    <    >=    <=    !=(不等于)

        注意:== 比较字符串时,比较的是字符串的内容,其他比较都是数值(字符串的长度)

    score = 80
    print(score > 90)
    print(score == 80)
    print(score >= 60)
    print(score != 80)
    

      运行结果:

    False
    True
    True
    False
    

      赋值运算符

        =    +=(可以做连接符)    -=    *=    **=    /=    %=    //=

        注意:赋值运算符的左侧一定是个变量,右侧一定要有个数据

        = :将右边的值给左边;其他:将两边的结果给左边

    num = 3 #赋值
    num += 6  #赋值
    print(num)
    num2 = 3 #赋值
    num2 = num2 + 6 #赋值,等同于 num+=6(num+=6效率高些)
    print(num2)
    a = 10
    a -= 5 #等同于 a = a - 5
    print('-=的值:',a)
    b = 10
    b *= 5 #等同于 b = b * 5
    print('*=的值:',b)
    c = 12
    c /= 5 #等同于 c = c / 5
    print('/=的值:',c)
    d = 11
    d %= 5 #等同于 d = d % 5
    print('%=的值:',d)
    e = 10
    e **= 5  #等同于 e = e * e * e * e * e
    print('**=的值:',e)
    f = 11
    f //= 5  #等同于 f = f // 5
    print('//=的值:',f)
    
    #+= 用于连接字符串
    strVale = '我爱你'
    strVale+='北京'
    print(strVale)
    

      运行结果:

    9
    9
    -=的值:5
    *=的值:50
    /=的值:2.4
    %=的值:1
    **=的值:100000
    //=的值:2
    我爱你北京
    

      逻辑运算符:判断2个布尔值的关系

        and且(&)    or或(|)    not非

        注意:逻辑运算符 两侧必须是布尔值

    score = 80
    sex = '男'
    print(score>=60 and sex=='女')  #建议此方法
    print((score>=60) & (sex=='女'))
    print(score>=60 or sex=='男')  #建议此方法
    print((score>=60) | (sex=='男'))
    print(not(score>=60))
    

      运行结果:

    False
    False
    True
    True
    False
    

      位运算法符

        &    |    ^


    python表达式和语句

        python表达式和语句没有明显的划分

        python表达式:是值,变量和操作符(或叫运算符)的组合。单独的一个值是一个表达式,单独的变量也是一个表达式

        python语句:是一段可执行代码。常见的有赋值语句、if语句、while语句、for语句、return语句、import语句等等...

    python赋值

        变量名在首次赋值时会被创建,变量名在引用(使用)前必须先赋值

    1、普通赋值

        请参照:python中的运算符 -> 赋值运算符,的讲解!

    2、序列赋值

        python把赋值运算符右侧元组(列表)内的值和左侧元组(列表)内的变量相互匹配,然后每一次赋一个值

        注意:左右元素的个数要相等,一一对应!

    #序列赋值
    a,b=1,2  #元组赋值 等同于  (a,b) = (1,2)
    print(a,b)
    [c,d] = [100,200]  #列表赋值
    print(c,d)
    e,f,g = '我爱你'
    print(e,f,g)
    

      运算结果:

    1 2
    100 200
    我 爱 你
    

      扩展解包赋值

        一个带星号的变量名 ,收集了序列中没有赋值给其他名称的所有项

        注意:只能存在一个*号,多个*会造成无法区分范围

    a,b,c = '你好啊'
    print(a,b,c)
    a1,b1,*c1 = '你好啊TOM'
    print(a1,b1,c1)  #你 好 ['啊', 'T', 'O', 'M']
    a2,*b2,c2 = '你好啊TOM'
    print(a2,b2,c2)  #你 ['好', '啊', 'T', 'O'] M
    #a3,*b3,*c3 = '你好啊TOM'  #报错,只能有一个 * 号
    #print(a3,b3,c3)
    

      运行结果:

    你 好 啊
    你 好 ['啊', 'T', 'O', 'M']
    你 ['好', '啊', 'T', 'O'] M
    

      多目标赋值(不建议使用)

    num1,num2 = 3,4  #第一种方式
    print(num1)
    print(num2)
    num3 = num4 =5  #第二种方式
    print(num3)
    print(num4)
    

      运行结果:

    3
    4
    5
    5
    

      条件语句 (if 语句控制程序的执行)

        通过一条或多条语句的执行结果(True或False)来决定执行的代码块

        if 语句的判断条件可以用>、<、==、>=、<=来表示其关系。

        如果判断条件有多个时,可以使用and/or连接。

        注意:

        python 并不支持 switch 语句,所以多个条件判断, 只能用 elif 来实现。

        Python程序语言指定任何非0和非空(None)值为true,0 或者 None为false。

        每个选择分支,执行内容可以多行,以缩进来区分表示同一范围。

    1、if 语句:格式一

        if 判断条件:

            执行语句……

        解释:判断条件成立(值为True),执行执行语句;否则不执行执行语句。

    sex = '男'
    if sex == '男':
        print('语句执行...')
    print('程序语句结束!')
    print('----------------')
    if sex == '女':
        print('语句执行...')
    print('程序语句结束!')
    

      运行结果:

    语句执行...
    程序语句结束!
    ----------------
    程序语句结束!
    

      if 语句:格式二

        if 判断条件:

            执行语句1…… 

        else:

            执行语句2……

        解释:其中"判断条件"成立时(非零),则执行后面的语句(执行语句1),else 为可选语句,当"判断条件"不成立时,执行(执行语句2)相关语句

        注意:此格式的if语句,肯定有一个分支会被执行...

    #肯定有一个会被执行...
    sex = '男'
    if sex == '男':
        print('sex的值是男')
    else:
        print('sex的值是女')
    print('----------------')
    sex = '男'
    if sex == '女':
        print('sex的值是女')
    else:
        print('sex的值是男')
    

      运行结果:

    sex的值是男
    ----------------
    sex的值是男
    

      

    if 语句:格式三

        当判断条件为多个值时,可以使用以下形式:

        if 判断条件1: 

            执行语句1…… 

        elif 判断条件2: 

            执行语句2…… 

        elif 判断条件3: 

            执行语句3…… 

        else: 

            执行语句4…… 

    score = 70
    if score > 100:
        print('非常优秀')
    elif score >80 :
        print('大于80分,优良')
    elif score >=60:
        print('大于等于60分,良好')
    else:
        print('不及格')
    

      运行结果:

    大于60分,良好
    

      if 语句:格式四

        如果判断条件有多个时,可以使用and/or连接。

        当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比and/or要优先判断。

    # 判断值是否在0~10之间
    num01 = 9
    if num01 >= 0 and num01 <= 10:
        print ('Yes')
    else:
        print ('no')
    print('----------------')
    # 判断值是否在0~5或者10~15之间
    if (num01 >= 0 and num01 <= 5) or (num01 >= 10 and num01 <= 15):
        print ('hello')
    else:
        print ('undefine')
    

      运行结果:

    Yes
    ----------------
    undefine
    

       python 复合布尔表达式计算采用短路规则,即如果通过前面的部分已经计算出整个表达式的值,则后面的部分不再计算。

    a=0
    b=1
    #没报错,说明 b / a > 2没执行
    if ( a > 0 ) and ( b / a > 2 ):
        print ("yes" )
    else:
        print ("no")
    #报错, b / a > 2 执行啦
    a=0
    b=1
    if ( a > 0 ) or ( b / a > 2 ):
        print ("yes")
    else :
        print ("no")
    

      运行结果:

    no
    Traceback (most recent call last):
      File "../demoTest02.py", line 152, in <module>
        if ( a > 0 ) or ( b / a > 2 ):
    ZeroDivisionError: division by zero
    

      if 语句:格式五

        在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。

        if 表达式1: 

            语句 

            if 表达式11: 

                语句 

            elif 表达式22: 

                语句 

            else: 

                语句 

        elif 表达式2: 

            语句 

        else: 

            语句

        注意:只有进入外层的if,才有可能执行内层的if

    score = 90
    sex = '男'
    if score > 80:
        print('进入国家队')
        if sex == '男':
            print('男子队')
        else:
            print('进入女子队')
    else:
        print('淘汰掉...')
    

      运行结果:

    进入国家队
    男子队
    

      if 语句:格式六 (不建议使用)

        可以在同一行的位置上使用if条件判断语句

    var = 100
    # if后面只有一条语句,可以写在一行
    if ( var  == 100 ) : print ("变量 var 的值为100")
    

      运行结果:

    变量 var 的值为100

        注意:Python程序语言指定任何非0和非空(None)值为true,0 或者 None为false

    if True:
        print('123')
    if 124:
        print('123')
    

      运行结果:

    123
    123
    

      循环语句 (允许执行一个语句或语句组,多次)

        Python提供了两种循环语句:while循环 for循环

    while循环

        判断条件为True时执行一次执行语句,然后再次判断条件。直到判断条件假False时,循环结束。

        注意:使用while循环时别忘了写条件控制语句(循环退出的条件),否则会变为死循环。

        while 判断条件:

            执行语句……

        案例1:输出0到10的整数

    num01 = 0
    while num01 <= 10 :
        print(num01)
        num01 += 1   #条件控制语句
    print('循环结束...')
    

      运行结果:

    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    循环结束...  
    

      案例2:输出0到10的偶数 

    #输出0到10的偶数
    num01 = 0
    while num01 <= 10 :
        if num01 % 2 ==0:
            print(num01)
        num01 += 1   #条件控制语句
    print('循环结束...')
    

      运行结果:

    0
    2
    4
    6
    8
    10
    循环结束..
    

      案例3:while … else 在循环执行结束后执行 else 语句块

    #while … else 在循环执行结束后执行 else 语句块
    num01 = 0
    while num01 <= 10 :
        if num01 % 2 ==0:
            print(num01)
        num01 += 1   #条件控制语句
    else:
        print('循环结束...')
    

      运行结果:

    0
    2
    4
    6
    8
    10
    循环结束..
    

      案例4:while 后面只有一条语句,可以写在一行

    #while 后面只有一条语句,可以写在一行
    #不知道循环次数时,条件用True,内部控制循环退出...
    #本案例的执行结果是,死循环......
    while True: print('循环中.....')
    

      for循环

        for  变量  in 序列: 

            语句

     注意:in:判断一个变量是否在序列中

    1、简单应用

    nums = [1,5,7,2,10]
    for item in nums:
        print(item)
    

      运行结果:

    1
    5
    7
    2
    10
    

      range() 代表整数区间

    #range()只有一个参数:左边界默认从0开始,右边界为指定的值的前一个数
    num1 = range(3)
    for item in num1:
        print(item)
    print('-------------')
    #range()有两个参数,分别指定左右边界,但右边界为指定的值的前一个数
    num2 = range(1,3)
    for item in num2:
        print(item)
    print('-------------')
    #range()有三个参数,第三个参数代表步长
    num3 = range(1,10,2)
    for item in num3:
        print(item)
    

      运行结果:

    0
    1
    2
    -------------
    1
    2
    -------------
    1
    3
    5
    7
    9
    

      else中的语句会在循环正常执行完的情况下执行

    #获得序列的索引
    numbers = [1,5,7,2,10]
    for item in range(len(numbers)):
        print(item)
    else:
        print('循环结束')
    

      运行结果:

    0
    1
    2
    3
    4
    循环结束
    

      循环嵌套

      外套环循执行一次,内层循环一轮

      打印图形,外层控制行数,内层控制每行的*的个数

      ①、简单案例

    for x in ['田径队', '游泳队', '篮球队']:
        for y in ['第一名', '第二名', '第三名']:
            print (x + y)
    

      运行结果:

    田径队第一名
    田径队第二名
    田径队第三名
    游泳队第一名
    游泳队第二名
    游泳队第三名
    篮球队第一名
    篮球队第二名
    篮球队第三名
    

    打印4行5列矩形*号

    #打印4行5列矩形*号
    for x in range(4):
        for y in range(5):
            print('*',end="")
        print()
    

      运行结果:

    *****
    *****
    *****
    *****
    

      打印8行直角三角形*号

    #打印8行直角三角形*号
    for j in range(1,9):
        for i in range(j):
            print("*",end="")
        print()
    

      运行结果:

    *
    **
    ***
    ****
    *****
    ******
    *******
    ********
    

      打印乘法口诀表

    #打印乘法口诀表
    for j in range(1,10):
        for i in range(1,j):
            print("{0}*{1}={2};	".format(i,j,j*i),end="")
        print()
    

      运行结果:

    1*2=2;  
    1*3=3;  2*3=6;  
    1*4=4;  2*4=8;  3*4=12;  
    1*5=5;  2*5=10;  3*5=15;  4*5=20;  
    1*6=6;  2*6=12;  3*6=18;  4*6=24;  5*6=30;  
    1*7=7;  2*7=14;  3*7=21;  4*7=28;  5*7=35;  6*7=42;  
    1*8=8;  2*8=16;  3*8=24;  4*8=32;  5*8=40;  6*8=48;  7*8=56;  
    1*9=9;  2*9=18;  3*9=27;  4*9=36;  5*9=45;  6*9=54;  7*9=63;  8*9=72;
    

      循环控制语句

    1、break语句用来终止所在的循环语句

    #num的值会随着循环增大,在增大到5的时候,遇到break,循环退出
    num = 0
    while True:
        if num == 5:
            break
        print(num)
        num += 1
    print('-------------------')
    #在嵌套循环中,break只退出,break语句所在的循环,导致整个内层循环只执行了一次
    for j in range(3):
        for x in range(3):
            print('hello...')
            break
    

      运行结果:

    0
    1
    2
    3
    4
    -------------------
    hello...
    hello...
    hello...
    

      continue语句用来跳出所在循环体的本次循环,继续下一次循环

    #到8就跳过
    num02 = 0
    while num02 <= 10:
        if num02 ==8:  
            num02 +=1
            continue #在num02等于8时,退出当次循环,继续下一次循环
        print(num02 )
        num02 +=1
    print('程序结束')
    

      运行结果:

    0
    1
    2
    3
    4
    5
    6
    7
    9
    10
    程序结束
    

      



  • 相关阅读:
    Max Sum Plus Plus HDU
    Monkey and Banana HDU
    Ignatius and the Princess IV HDU
    Extended Traffic LightOJ
    Tram POJ
    Common Subsequence HDU
    最大连续子序列 HDU
    Max Sum HDU
    畅通工程再续
    River Hopscotch POJ
  • 原文地址:https://www.cnblogs.com/zhuhuibiao/p/12008157.html
Copyright © 2011-2022 走看看