北理mooc学习笔记
Python新手入门(三):数据类型
字符串
表示
字符串两类共四种表示方式:
由一对单引号或双引号表示 一对三单引号或三双引号表示
字符串的使用:
索引:返回字符串中的单个字符 <字符串>[M]
切片:返回字符串中的一段字符子串 <字符串>[M:N]
使用[M:N:K]根据步长对字符串切片 (1)“12345678”[:3] 结果为 “123” (2)“12345678”[:-1] 结果为 “1234567” (3)“12345678”[1:8:2] 结果为 “1357” (4)“12345678”[::-1] 结果为 “87654321” 转义符:
用法 含义 \b 回退 \n 换行(光标移动到下行首) \r 回车(光标移动到本行首)
另:‘这里有一个双引号(")’ 同 ‘‘这里有一个双引号(")’’
操作符
用法 含义 x + y 连接两个字符串x和y n * x 或 x * n 复制n次字符串x x in s 如果x是s的字串,返回Ture,否则返回False
weekStr = "星期一星期二星期三星期四星期五星期六星期日"
weekID = eval ( input ( "请输入星期数字(1-7):" ) )
pos = ( week - 1 ) * 3
print ( weekStr[ pos: pos+ 3 ] )
weekStr = "一二三四五六日"
weekID = eval ( input ( "请输入星期数字(1-7):" ) )
print ( "星期" + weekStr[ weekID- 1 ] )
处理函数
函数及使用 描述 len(x) 返回字符串长度 len(“一二三456”) 结果为 6 str(x) 任意类型x所对应的字符串形式 str(1.23) 结果为 "1.23" str([1,2])结果为 “[1,2]” hex(x) 或 oct(x) 整数x的十六进制或八进制小写形式字符串 chr(u) 或 ord(x) 将Unicode编码返回对应字符,反之
处理方法
函数及使用 描述 str.lower 或 str.upper 返回字符串的副本,全部字符小写/大写 str.split(sep=None) 返回一个列表,由str根据sep被分割的部分组成 "A,B,C".split(",") 结果为 [‘A’,‘B’,‘C’] str.count(sub) 返回子串sub在str中出现的次数 str.replace(old,new) 返回字符串副本,所有old子串被替换为new str.center 字符串str蜂聚宽度width居中,fillchar可选 str.strip(chars) 从str中去掉左侧和右侧chars中列出的字符 str.join(iter) 在iter变量除最后元素外每个元素增加一个str ",".join(“123”) 结果为 “1,2,3”
格式化
格式化是对字符串进行格式表达的方法
.format()
方法,用法如下: <模板字符串>.format(<逗号分隔的参数>)槽机制(使用{ }表示,是一种占位信息符)
集合
集合元素之间无序,每个元素唯一 集合元素不可更改,不是可变数据类型 建立集合类型用 { } 或 set(),建立空集合类型必须用set()
操作符
操作符 描述 S I T 交 S - T 差 S & T 并 S ^ T 补 S <= T 或 S <T 返回True/False,判断S和T的子集关系 S >= T 或 S >T 返回True/False,判断S和T的包含关系
更新集合S的操作符 描述 S I= T 交 S -= T 差 S &= T 并 S ^= T 补
处理方法
操作函数或方法 描述 S.add(x) 如果x不在集合S中,将x增加到S S.discard(x) 移除S中元素x,如果x不在集合S中,不报错 S.remove(x) 移除S中元素x,如果x不在集合S中,产生KeyError异常 S.clear(x) 移除S中所有元素 S.pop(x) 随机返回S的一个元素,更新S,若S为空产生KeyError异常 S.copy(x) 返回集合S的一个副本 len(s) 返回集合S的元素个数 set(x) 将其他类型变量x转变为集合类型 x in S 判断S中的元素x,x在集合S中,返回True,否则返回False x not in S 判断S中的元素x,x不在集合S中,返回True,否则返回False
A = { "p" , "y" , 123 }
>> > A = { "P" , "y" , 123 }
for item in A:
print ( iyem, end= "" )
ans- > p123y
>> A
{ 'p' , 123 , 'y' }
>> > try :
while True :
print ( A. pop( ) , end= "" )
except :
pass
ans- > p123y
>> set A
ans- > set ( )
应用
ls = [ "p" , "p" , "y" , "y" , 123 ]
s = set ( ls)
lt = list ( s)
序列
具有先后关系的一组元素 是一维元素向量,元素类型可以不同 是一个基类类型,衍生出:字符串、元组、列表类型 元素间由序号引导,通过下标访问序列的特定元素 应用场景 (1)数据表示 (2)元素遍历 (3)数据保护
ls = [ "cat" , "dog" , "tiger" , 1024 ]
lt = tuple ( ls)
> lt
ans- > ( 'cat' , 'dog' , 'tiger' , 1024 )
操作符
操作符 描述 x in s 如果x是序列s的元素,返回True,否则返回False x not in s 如果x是序列s的元素,返回False,否则返回True s + t 连接两个序列s和t s * n 或 n * s 将序列s复制n次 s[i] 索引,返回s中的第i个元素,i是序列的序号 s[i: j] 或 s[i: j: k] 切片,返回序列s中第i到j以k为步长的元素子序列 len(s) 返回序列s的长度 min(s) 或 max(s) 返回序列s的最大/最小元素,s中元素需要可比较 s.count(x) 返回序列s中出现x的总次数
元组
是一种序列类型,一旦创建就不能修改 使用小括号( ) 或者 tuple()创建,元素间用逗号分隔 可以使用或不使用小括号
>> > creature = "cat" , "dog" , "tiger" , "human"
creature[ : : - 1 ]
ans- > ( 'human' , 'tiger' , 'dog' , 'cat' )
>> > color = ( 0x001100 , "bule" , creature)
color[ - 1 ] [ 2 ]
ans- > 'tiger'
列表
列表是一种序列类型,创建后可以随意被修改 使用方括号 [ ] 或 list() 创造,元素间用逗号分隔 方框号 [ ] 真正创建一个列表,赋值仅传递引用 列表中各元素类型可以不同,无长度限制 操作符
函数或方法 描述 ls[i] = x 替换列表ls第i元素为x ls[i: j: k] = lt 用列表lt替换ls切片后对应元素子列表 del ls[i] 删除列表ls中的第i元素 del ls[i: j: k] 删除列表ls中第i到第j以k为步长的元素 ls += lt 更新列表ls1,将列表lt元素增加到列表ls中 ls *= n 更新列表ls,其元素重复n次
函数或方法 描述 ls.append(x) 在列表ls最后增加一个元素 ls.clear() 删除列表ls中所有元素 ls.copy() 生成一个新列表,赋值ls中所有元素 ls.insert(i,x) 在列表ls的第i位置增加元素x ls.pop(i) 将列表ls中第i位置元素取出并删除该元素 ls.remove(x) 将列表ls中出现的第一个元素x删除
字典
映射是一种 键(索引) 和 值(数据) 的对应 字典是映射的表达 字典是键值对的集合,键值对之间无序 采用大括号 { } 和 dict() 创建,键值对用冒号表示
>> > d = { '中国' : '北京' ,'美国' : '华盛顿' }
d[ "中国" ]
ans- > '北京'
>> > de = { } ; type ( de)
ans- > < class 'dict' >
函数或方法 描述 del d[k] 删除字典d中键k对应的数据值 k in d 判断键k是否在字典d中,如果在返回Ture,否则返回False d.keys() 返回字典d中所有的键信息 d.values() 返回字典d中所有的值信息 d.items() 返回字典d中所有的键值对信息
d = { "中国" : "北京" , "美国" : "华盛顿" }
d. keys( )
ans- > dict_keys( [ '中国' ,'美国' ] )
函数或方法 描述 d.get(k,< default >) 键k存在,则返回相应值,不在则返回< default > d.pop(k,< default >) 键k存在,则取出相应值,不在则返回< default > d.popitem() 随机从字典d中取出一个键值对,以元组形式返回 d.clear() 删除所有的键值对 len(d) 返回字典d中元素的个数