Loading

python基础2--数据类型

一、数字

数字类型包含整型、浮点型,还包含不太常用的长整型、复数。

二、 布尔型(bool)

True
False
v1 = bool("hello")
v2 = bool("")
print(v1,v2)

转布尔型False: None 0 "" [] {} () set{}

三、字符串

定义:在单引号\双引号\三引号内,由一串字符组成

msg='hello world'

1、索引步长切片

  • 索引 左从0 开始,右从-1开始
  • 切片 左包含右不包含
  • 步长 步长为负数从右向左取值

list_slicing1

msg='hello world'
print(msg[1:8]) #从下标为1的字符开始取,顾头不顾尾,所以得到ello wo,空格也是一个字符
print(msg[1:8:2]) #从下标为1的字符开始取,顾头不顾尾,步长为2,取一个跳过一个,得到el o
print(msg[0]) #取出下标为0的字符、就是第一个字符,得到h
print(msg[-1]) #取出最后一个字符,得到d
print(msg[::-1])	#逆序
print msg * 2 # 输出字符串两次
print msg + "TEST" # 输出连接的字符串

2、转义字符

在需要在字符中使用特殊字符时,python用反斜杠\转义字符。如下表:

转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车

取消转义的两种方式:

  1. 字符串前加r msg=r“\n hello”
  2. 反斜杠前再加一个反斜杠 msg="\\n hello"

3、成员运算

成员运算in和not in,看所取得字符是否在变量定义的字符串里

msg="hello world"
print("hello" in msg)

4、常用内置方法

  1. strip
name='*hello*'
print(name.strip('*')) #去掉hello两边的*
print(name.lstrip('*')) #去掉hello左边的*
print(name.rstrip('*')) #去掉hello右边的*
#和用户交互常用的情况如下
name=input('user: ').strip() #对用户输入的字符串去掉两边的空格
print(name)
  1. split
info='root:x:0:0::/root:/bin/bash'
res=info.split(':') #以冒号为分隔符对字符串进行分割,分割后会变成列表的形式
res1=info.split(':',1) #以冒号为分隔符对字符串进行分割,并指定分割最大次数为1
res2=info.rsplit(':',1) #从右进行切分,切分一次,结果是按照最后的冒号把字符串切为两部分
print(res) #['root', 'x', '0', '0', '', '/root', '/bin/bash']
print(res1) #['root', 'x:0:0::/root:/bin/bash']
print(res2) #['root:x:0:0::/root', '/bin/bash']
  1. join
l=['root', 'x', '0', '0']
res=':'.join(l) #把列表l里的元素通过冒号合并成一个字符串, 列表l里的元素必须全是字符串,否则报错
print(res)
  1. replace
msg='tom say my name is tom'
msg=msg.replace('tom','happier',1) #用tom替换happier,并且只替换一个
print(msg) # happier say my name is tom
  1. startswith,endswith
msg='happier is boy'
print(msg.startswith('happier')) #开头的是否是happier,返回True或者False,所以返回True
print(msg.endswith('boy')) #末尾的是否是boy,所以返回True
  1. lower,upper
print('AbcD'.lower()) #把字符串全部显示成小写,结果是abcd
print('aaa'.upper()) #把字符串全部显示成大写,结果是AAA
  1. isdigit,isdecimal,isnumeric
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节)
False: 汉字数字,罗马数字, 小数
Error: 无

isdecimal()
True: Unicode数字,全角数字(双字节)
False: 罗马数字,汉字数字, 小数
Error: byte数字(单字节)

isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 小数
Error: byte数字(单字节)
  1. encode

以 encoding 指定的编码格式解码 string

a='你好'
print(a.encode('gbk'))
# b'\xc4\xe3\xba\xc3'
  1. format
s="你好{}".format("世界")
print(s)

5、字符串格式化

参考字符串格式化

四、列表

定义:[]内可以有多个任意类型的值,逗号分隔

name=['zhao','qian','sun','li']

1、常用方法

  1. 方法append和extend,insert
name.append('ni') #列表里添加元素ni
l=['song','zhang']
name.extend(l) #列表里添加多个元素
print(name)
name.insert(1,'wang') #插入元素wang,下标为1
  1. remove和pop
name.remove('li') #删除元素li,但是拿不到取走的元素
print(name)
name.pop() #删除并拿到结果,取走一个值
  1. reverse
name.reverse() #将列表name元素倒向显示,结果为['li', 'sun', 'qian', 'zhao']
  1. sort排序
l=[1,10,4,11,2,]
l.sort() #对列表里的元素排序
print(l)
l.sort(reverse=True) #对列表里的元素倒向排序
print(l)
  1. count
print(name.count('li')) #统计元素li出现在列表里几次
  1. index
print(name.index('zhao')) #显示元素zhao对应的下标
  1. clear
name.clear() #清空列表

五、元组

与列表类型比,只不过[]换成(),存多个值,对比列表来说,元组不可变,主要是用来读

1、常用方法

  1. index
  2. count

六、字典

定义:key必须是不可变类型(int,float,str,tuple),value可以是任意类型,无序

1、常用方法

  1. keys,values,items
info={'name':'yhp','age':99}
for i,k in info.items():
print(i,k)
# 当循环字典时,默认循环的是key
  1. get
info={'name':'yhp','age':99}
msg= info.get('na',"不存在")
print(msg)
#获取不到不报错
  1. pop
name=infos.pop("name")
  1. update
info={'name':'yhp','age':99}
msg= {'name':'happier','addres':"China"}
info.update(msg)
print(info)
# {'name': 'happier', 'age': 99, 'addres': 'China'}

2、有序字典

from collections import OrderedDict

info = OrderedDict()
info['k2'] = 123
info['k1'] = 456

3、快速创建字典

info={}.fromkeys(['name','age','sex'],None) #快速创建字典,前面列表的每个元素会和none组成字典的一个元素

七、集合

1、定义和原则

空集合定义:a=set()

集合:可以包含多个元素,用逗号分割

集合的元素遵循三个原则:

  • 每个元素必须是不可变类型(可hash,可作为字典的key)
  • 没有重复的元素
  • 无序

2、常用方法

  1. add 添加元素

  2. update 批量更新

  3. discard 删除元素

  4. intersection 交集,等同于(&)

  5. union 并集,等同于(|)

  6. difference 差集,等同于(-)

  7. symmetric_difference 取对等差分集合,返回两个集合中不重复的元素集合

posted @ 2019-03-29 13:43  陌路麒麟  阅读(142)  评论(0编辑  收藏  举报