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

2018-06-13  本文已影响0人  SlashLife

一、运算符

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

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

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

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

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

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

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

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

举例:

  age=40
  face=90
  要求:年龄大于18小于50,并且颜值不能低于80分
  result=age>18 and age<50 and face>=80
  print(result)

举例:

  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)

举例:

  及格的要求:成绩不小于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'

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编码的大小

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

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

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

  str1='你好,python'
  length=len(str1)
  print(length)
  print(len('范'))
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[:])
+:字符串的+操作,就是字符串连接
  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)

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))

五、字符串的内置函数

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

  newStr=str1.title()
  print(str1,newStr)

六、补充

用法格式: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

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

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(",")

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

  import re
  a=str#待检测字符串
  x=re.split(   此处为多个输入的分隔符      ,a)
  print(x)

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

  str = "ZGAHHHhihhoioai"
  str.lower()
  'zgahhhhihhoioai'

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

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

  str = " this is China"
  str.lstrip()
  'this is China'
  str = "zhang   "
  str.rstrip()
  'zhang'
上一篇 下一篇

猜你喜欢

热点阅读