美文网首页
2018年6月13日【Python学习笔记】

2018年6月13日【Python学习笔记】

作者: SlashLife | 来源:发表于2018-06-13 18:52 被阅读0次

    一、运算符

    运算符:算数运算符、比较运算符、赋值运算符、逻辑运算符

    1.比较运算符:>、<、>=、<=、==、!=(不等于)

    所有比较运算符的结果都是布尔值

    • x>y:比较x是否大于y,如果是结果就是true,否则结果就是false
      print(10>5)
      print(6>10.8)
      print('abcdef'>'bcd')  比较字符串的大小时,不是比较两个字符串的长度,而是从两个字符串的第一个字符开始比较,
      如果第一个字符串的第一个字符大于第二个字符串的第一个字符,结果就是true,否则就是false。
      如果两个字符串的第一个字符相等才去比较他们的第二个字符,以此类推
      print('abc'>'aba')
      print('abc'>'abcd')
      print('abc'>'abc')
      
    • x<y:比较x是否小于y,如果是,结果就是true,否则结果是false
        print(10<5)
        print(6<10.8)
        print('abc'<'aba')
      
    • x>=y:比较 x是否大于或等于y。x大于y或者x等于y,结果是true,否者是false
        print(10>=5)
        print(10>=10)
      
    • x<=y:比较x是否小于等于y。x小于y或者x等于y,结果是true,否则是false
       print(10<=5)
       print(10<=10)
      
    • x==y:比较x和y是否相等,如果相等就是true,否则结果是false
       a=10
       b=20
       print(a==10)
       print(a==b)
      
    • x!=y:比较x和y是否不相等,如果不相等就是true ,否则就是false
       print(a!=10)
       print(a!=b)
      

    2.赋值运算符:==,+=,-=,=,/=,//=,*=,%=

    所有的赋值运算符,左边必须是变量,

      a=20
      b=a   如果a的值是基本数据类型(数字、字符串),直接将a里面存的值赋给b,如果值是对象,传递的是变量中存储的地址
    
    表达式(本身有值的语句):10,a,10+a,10>20,10+20/4*3等
      a+10
      print(a)
    
    • +=
      a+=10    相当于a=a+10
      print(a)
      或
      a+=1
      print(a)
      
    • -=
      a-=10    相当于a=a-10
      print(a)
      
    • *=
      a*=2    相当于a=a*2
      print(a)
      
    • /=
      a/=2    相当于a=a/2
      print(a)
      
    • //=
      a//=2    相当于a=a//2
      print(a)
      
    • **=
      a**=2     相当于a=a**2 就是a的2次方
      print(a)
      

    3.逻辑运算符:and(与),or(或),not(非)

    逻辑运算符中表达式的值都是布尔值

    • 表达式1 and 表达式2:两个表达式的值都为true,结果才是true,否者是false。(and-->并且的意思)
      print(True and True)
      print(True and False)
      print(False and True)
      print(False and False)
      

    举例:

      age=40
      face=90
      要求:年龄大于18小于50,并且颜值不能低于80分
      result=age>18 and age<50 and face>=80
      print(result)
    
    • 表达式1 or 表达式2:两个表达式的值都为false,结果才是false,否则都是true
      print(True or True)
      print(True or False)
      print(False or False)
      print(False or False)
      

    举例:

      grade=8.0
      score=80
      奖学金要求:绩点大于8.0或者测评大于90
      result=grade>8.5 or score>90
      print(result)
    
    注意
      奖学金新要求:1.绩点大于9.7   2.成绩8.5-9.7,测评分大于85
      python里可以这样写8.5<=grade<=9.7 ,但是只是限于数字的比较。
      运算表达式中,加()可以改变运算顺序
      result=grade>9.7 or (8.5<=grade<=9.7 and score>85) 
      print(result)
    
    • not 表达式:如果表达式的值为true,结果就是false;表达式的值为false,结果就为true。
      print(not True)
      print(not False)
      

    举例:

      及格的要求:成绩不小于60.
      grade=8   给变量赋值时,后面的值会覆盖前面的值
      result= not (grade<6)
      print(result)
    

    举例:

      进入游乐场年龄的要求:不大于12岁并且要不小于2岁
      age=18
      result=(not age>12) and (not age<2)
      print(result)
    

    二、运算符的优先级

    1.赋值运算符的优先级最低

      result = True and False or True
      print(result)
    
    注意:
      赋值运算符<逻辑运算符<比较运算符<加减<乘、除、取余、整除、幂运算<+(正号)、-(负号)
      可以加括号改变运算的运算顺序(遇到括号就先算括号里的)
    

    举例:

      a=True and False
      print(a)
    
      result=-10 and 2
      print(result)
    
      result=0>-10 and 2<5
      print(result)
    
      result=2+10>3
      print(result)
    

    三、字符串

    由单引号或者双引号括起来的文本

      'acdf'
      '234'
      '\nhu90'
      '我是字符串@ss'
    
    • 1、python中的字符串都是Unicode字符串

    Unicode编码:就是一种对字符的编码方式(将字符编码成对应的数字,方便计算机储存)
    Unicode编码又叫万国码,支持目前几乎所有的语言文字编码
    Unicode包含ASCII码
    数据存储在计算机中是以二进制的形式存的(二进制是数字)
    编码的作用就是将字符串转换成对应的数字

    将Unicode码换换成字符

      char=chr(0x4e01)
      print(char)
    

    将字符转换成Unicode码

      code = ord('范')
      print(code)
    
      for x in range(0x2c80,0x2CFF):
          print(chr(x),end=' ')
    

    字符串比较大小的时候,实质就是比字符的Unicode编码的大小

    • 2.字符串的长度

    就是指字符串中字符的个数

      'abc'   #长度为3
      ' yu'    #长度为3   空格也有长度
    

    len(字符串):获取字符串的长度

      str1='你好,python'
      length=len(str1)
      print(length)
      print(len('范'))
    
    • 3.获取字符/子串

      str1='Hello,python'
      
    a.获取某一个字符

    格式:字符串变量[下标]
    下标:从0开始的数字,代表的是某一字符在字符串中的偏移量(位置)(范围:0~字符串长度-1)
    注意:下标不要越界,否则会Indexerror报错

      print(str1[0])   获取第0个字符
      print(str1[5])   获取从0开始的第5个字符
    
      print(str1[20])   IndexError: string index out of range下标越界
      下标也可以是负数:也不能越界
    
      print(str1[-1])   获取的是倒数第一个字符(最后一个)
      print(str1[-2])    获取倒数第二个字符
      print(str1[len(str1)-1])   获取最后一个字符
    
    b.获取字符串中某一部分的字母(获取子串)

    格式:字符串变量[开始下标:结束下标] --->获取从开始下标到结束下标前的所有字符

      str1='Hello,python!'
    

    注意:开始下标对应的字符可以取到,结束下标对应的字符是取不到的

      print(str1[1:4])   获取从下标是1开始,到下标是(4-1)的所有的字符
      print(str1[6:10])   获取从下标是6开始,到下表是9的所有的字符
    
      开始下标不写,默认就是0
      print(str1[:5])    获取从开始到下标是4为止的所有字符
    
      结束下标不写,就会取到最后一个字符
      print(str1[-4:])
      print(str1[6:])
    
      如果结束下标在开始下标的前面,就会取不到字符(不能倒着取)
      print(str1[5:1])
    
      如果不写就是获取全部,但意义不大,后面其他会用到
      print(str1[:])
    
    • 4.字符串的运算符:+,*,in,not in,

    +:字符串的+操作,就是字符串连接
      str2='aaa' + 'bcd'
      print(str2)
    
      str1='Hello'
      str2='world'
      str3=str1+'\t'+str2
      print(str3)
    
      str2+='!'    #str2=str2+'!'
      print(str2)
    
    :字符串中的操作,就是字符串重复多少次
      str1='abc'*10    #abc重复10次
      print(str1)
    
    字符串1 in 字符串2:判断字符串2是否包含字符串1.(显示的是布尔值)
      str1='Hello'
      print('he'in str1)    #判断'he'是否在str1里面(判断str1中是否包含'he')
    
    字符串1 not in 字符串2:判断字符串1是否不在字符串2中
      print('ae' not in str1)
    

    四、print函数的使用

    print()函数可以打印括号里的任何内容
    调用print函数打印完后会换行

      print(10)
      str1='aaa'
      print(str1)
    

    同时打印多个内容(多个内容间用逗号隔开);打印的时候,多个内容之间用一个空格隔开的

      print('aa',100,str1)
    
    • 1.格式化输出

    print('%s %d %c'%(var1,var2,var3)):输出字符串的时候,在字符串中使用字符串格式符表示变化的内容。然后在%后面的括号里面,依次使用表达式给前面的字符串赋值

    %s:字符串 %d:整数 %f:浮点数 %c:字符
      name='张三'
      age=18
      我是xxx,今年xx岁
      print('我是%s,今年%d岁'%(name,age))
    
    %f
      print('余额:%f万元'%(10.25))
      $.2f保留小数点的后两位     三位就是%.3f
      print('余额:%.2f万元'%(10.25))
    

    python中的字符,就是指长度为1的字符串

      print('%c'%('a'))   
      print('%c'%(0x4e00))   #打印的是中文的:一
      可以打印unicode编码
    
    %o
      print('%o'%(10))
    
    %X/%x
      print('%x,%X'%(15,15))
    
    • 2.通过设置print函数的sep参数,可以改变print函数在同时打印多个内容时的分割符(默认是空格)

      name='张三'
      age=18
      我是xxx,今年xx岁
      print('我是',name,',今年',age,'岁',sep='')  #打印多个数据的时候,数据之间没有间隙
      print('我是',+name+,'今年',age,'岁') #注意:加号两边只能都是数字或者都是字符串,不能一个数字一个字符串
      print('aa',100,'bbb',sep=',')   #打印多个数据的时候,数据之间以','隔开
      
    • 3.设置print函数的结束字符串,默认是'\n'

      print('Hello',end=' ')
      print('World')
      注意:设置sep和end参数,只是当次有效
      

    五、字符串的内置函数

    • capitalize() 将字符串的第一个字符转换为大写(不会改变原来的字符串,而是返回一个新的字符串)

      str1='python student'
      newStr=str1.capitalize()
      print(str1,newStr)
      
    • 2.title()将字符串中每个单词的首字母变成大写(不会改变原来的字符串,而是返回一个新的字符串)

    单词的区分,和英语区分单词的方式是一样的(以空格、标点符号分开的字符串)

      newStr=str1.title()
      print(str1,newStr)
    
    • 3.center(width,fillchar) 将字符串变成指定的长度,并且原字符串内容居中,剩余的位置使用指定的字符fillchar填充

      str1='abc'
      newStr=str1.center(11,'-')
      print(newStr)
      

    六、补充

    • 1.find ( )检测字符串

    用法格式:str1.find(str2) #在str1中 检索字符串str2是否存在,存在,返回str2的初地址,不存在,返回-1.
    str1.find(str2,x)#x是表示下标的变量,意为:从下标为x的位置开始检索str2是否存在于str1中.
    str.find(str2,x,y)#y表示下标整型变量, 意为:从下标x开始,检测到下标y结束

      str1 = "hello,world,nihao,shijie"
      str2 = "ll"
      str1.find(str2)
      2
      str1.find(str2,1)
      2
      str1.find(str2,2)
      2
      str1.find(str2,3)
      -1
      str1.find(str2,1,6)
      2
      str1.find(str2,1,4)
      2
      str1.find(str2,1,3)
      -1
    
    • 2.rfind( )反向(从右至左)检测字符串 str2最后出现的 下标

    str1.rfind(str2)#从 str1中从右至左检测str2是否存在

    str1.rfind(str2,x,y)#【x,y)定位检索的位置,之后正常反向检索,输出字符串首字母下标。

      str1.rfind(str2)
      2
      str1.rfind(str2,0)
      2
      str1.rfind(str2,2)
      2
      str1.rfind(str2,2,3)
      -1
      str1.rfind(str2,2,5)
      2
    
    • 3.count()方法语法:

    str.count(str1) #计数 str中,子串”str1“出现的次数
    str.count(str1,x) #计数 str中从下标x开始,子串”str1“出现的次数
    str.count(str1,x,y) #计数 str中从下标x开始,子串”str1“出现的次数

      str = "hello,world,nihao,shijie"
      count(",")
    
    • 4.split()方法语法

    str.split( )#默认切片条件为:所有的空字符,包括空格、换行(\n)、制表符(\t)等
    str.split(str1,num)#切片条件为:检索到str1,切片次数为num
    利用re模块进行切片(同时包含多个分隔字符的检索)代码如下:

      import re
      a=str#待检测字符串
      x=re.split(   此处为多个输入的分隔符      ,a)
      print(x)
    
    • 5.max()方法语法 max(str)#输出字符串中的最大字符
    • 6.min()方法语法 min(str)
      str = "abcdshjshf"
      max(str)
      's'
      min(str)
      'a'
      str = "12345676789"
      max(str)
      '9'
      min(str)
      '1'
      
    • 7.lower()方法语法:

    str.lower()#直接将字符串str中的所有大写字母转换成小写字母

      str = "ZGAHHHhihhoioai"
      str.lower()
      'zgahhhhihhoioai'
    
    • 8.replace()方法语法:

    str.replace(old,new)#直接将老字符串替换为新的字符串
    str.replace(old,new[,max])#指定参数max,以为替换次数不超过max;

      str = "this is in china"
      str.replace("is",'was',1)
      'thwas is in china'
      str.replace("is",'was',2)
      'thwas was in china'
    

    9,index()方法语法:
    str.index(str1)用法同find(),只是如果被检测的字符串中不含想要查找的内容的话,会报一个异常

      str.index("is")
      2
      str.index("wax")
      Traceback (most recent call last):
       File "<stdin>", line 1, in <module>
      ValueError: substring not found
    
    • 10.rindex()类似于index(),方向为从右至左
    • 11.lstrip()方法语法:rstrip()同用法

    str.lstrip()#截掉字符串左边的空格(有多少,截掉多少)

      str = " this is China"
      str.lstrip()
      'this is China'
      str = "zhang   "
      str.rstrip()
      'zhang'
    

    相关文章

      网友评论

          本文标题:2018年6月13日【Python学习笔记】

          本文链接:https://www.haomeiwen.com/subject/jtfseftx.html