失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python学习笔记2 基本数据类型

Python学习笔记2 基本数据类型

时间:2024-01-06 12:54:13

相关推荐

Python学习笔记2 基本数据类型

第2章 基本数据类型

2.1 数字(Number)

1.Python3支持int、float、bool、complex

2.type()函数可用来查询变量所指对象类型

a=20type(a)# <class ‘int’>isinstance(a,int)# True

3.isinstance也可用来查询变量所指对象类型,instance与type区别:type()不会认为子类是一种父类类型,isinstance会认为,如:

class A:passclass B(A):passisinstance(A(),A)# Truetype(A())==A# Trueisinstance(B(),A)# Truetype(B())==A# False

4.数字格式化

(1)%

(2)format()函数

1)^, <, > 分别是居中、左对齐、右对齐,后面带宽度

2): 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

3)+ 表示在正数前显示 +,负数前显示 -;(空格)表示在正数前加空格

4)b、d、o、x 分别是二进制、十进制、八进制、十六进制。

5.数学常量与函数

2.2 字符串

1.特点

使用单引号’或双引号”指定,使用三引号(‘’’或”””)可指定一个多行字符串,且字符串中可包含换行符、制表符及其他特殊字符

注意:字符串不能改变,向一个索引位置赋值是错的,如word[0]=’m’

2.字符串切片(正序:0…n-1;倒序:-1…-n)

(1)切片语法:变量[头下标:尾下标:步长]

(2)适用于字符串、列表、元组,列表和元组都是有序的集合,都能够通过索引值获取到对应的数据,字典是一个无序的集合,使用键值对保存数据

3.字符串格式化输出

(1)%

print(“我叫 %s 今年 %d 岁!”%(‘Coco’,1))# 我叫 Coco 今年 1 岁!

(2)str.format()

基本语法是通过 {} 和 : 代替 %

1)format 函数可以接受不限个参数,位置可以不按顺序。

”{1} {0} {1}”.format(“hello”,”world”)# ‘world hello world’

2)设置参数

>>>print(“姓名:{name},年龄:{age}”.format(name=”Coco”,age=1))# 姓名:Coco,年龄:1stu_dict={“name”:”Coco”,”age”:1} # 通过字典设置参数print(“姓名:{name},年龄:{age}”.format(**stu_dict))# 姓名:Coco,年龄:1stu_list=[‘Coco’,1 ] # 通过列表索引设置参数print(“姓名:{0[0]},年龄:{0[1]}”.format(stu_list)) # “0”是必须的# 姓名:Coco,年龄:1

3)传入对象

class AssignValue(object):def __init__(self,value):self.value = valuemy_value = AssignValue(6)print(“value is : {0.value}”.format(my_value)) # “0”是可选的

4.常用字符串处理

·连接/重复:+/*

·字符串长度 len(str)

·最大/小字母:max(str)/min(str)

·复制字符串:b = a;b = a[:]

·查找字符串:find() 找不到时,返回-1;index() 找不到时,崩溃

·连接字符串:“+”、operator.concat(str1,str2)、’’.join()

·替换字符串: +和[:]控制实现 #替换字符串头

·翻转字符串:s[::-1]

·比较字符串:operator.eq(s[:3], s_1[:3]) #指定长度比较(模块operator

·字符串比较,不区分大小写:operator.eq()与upper()或lower()共同完成

·小字符串在大字符串中出现的次数 str.count(substr,beg=0,end=len(string))

·分割字符串:split(){join的逆过程}当参数缺省时,默认按照空格划分出目标个数的字符串,内容不为缺省,则会产生空字符串

·判断一个字符串是否是另一个字符串的子串(re模块):

 1)re.search()判断前一个字符串是否是后一个字符串的子串,如果是,返回前一个字符串在后一个字符串中的位置,并显示匹配的具体内容,如果匹配不成功,返回None。

 2)不区分大小写,re.IGNORECASE; 使用时s = re.search(a, b, re.IGNORECASE)

·查找两个字符串中的最大匹配长度(diffla模块):

 1)SequenceMatcher函数,get_matching_blocks方法来看两个字符串中所有匹配的序列。

 2)print(s.find_longest_match())查看字符串的最大匹配序列。find_longest_match()要求第二个字符串长度不超过200,否则会出现错误。

 3)s.get_opcodes()返回元组,代表了从a字符串到b字符串,经历的变化。

2.3 列表

1.特点

使用中括号[]指定,有序,可重复,可读写,元素类型可以不同

2.基本操作

连接/重复:+/*

定义:names = [‘One’,“Two”,‘Three’,’Four’,’Five’]

长度:len(names)

最大:max(names)

最小:min(names)

切片:names[1:4] #取下标1-4之间的元素(不包括4)

追加:names.append(“Six”)

删除:del names[2]

修改:names[2] = “Second”

拷贝:names.copy()

清空:names.clear()

统计:names.count(“Four”)

排序:names.sort()

翻转:names.reverse()

扩展:names.extend(b)

获取下标:names.index(“Four”)

插入:names.insert(2,“Three前插入”)

移除列表中某个值的第一个匹配项:list.remove(obj)

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值:list.pop([index=-1])

3.列表推导式

[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]

4.列表遍历

2.4 元组

1.特点

使用小括号()指定,有序,可重复,只读,元素类型可不同

注意:空元组:tup=(),一个元素元组需要在后面加逗号:tup=(20,),不加逗号为整型

2.语法

names = (“alex”,“jack”,“eric”)

3.基本操作

连接/重复:+/*

长度:len(tuple)

元素最大值:max(tuple)

元素最小值:min(tuple)

删除整个元组:del tuple

2.5 集合

1.特点

使用大括号{}指定或set()函数创建,无序,不可重复,可读写,可变,不存在哈希值

注意:创建一个空集合必须用set(),不能用{},因为{}为创建空字典

2.基本功能

(1)消除重复元素

(2)关系测试 if ‘Rose’ in student: print(“Rose 在集合中”)

3.集合运算

(1)union(并集): print(a|b)

(2)intersection(交集):print(a&b)

(3)difference(差集):print(a-b)

(4)sysmmetric difference(对称差集):print(a^b)

4. 集合推导式

{表达式 for 变量 in 列表} 或者 {表达式 for 变量 in 列表 if 条件}

如,squared = {x**2 for x in [1, 1, 2]} print(squared) # Output: set([1, 4])

5. 基本操作

长度:len(s)

添加一项:s.add(‘x’)

添加多项:s.update([10,37,42])

删除一项:s.remove(‘H’),元素不存在会错误;s.discard(‘H’),元素不存在不会错误

随机删除:s.pop(),交互模式中pop是删除集合中第一个元素

清空集合:s.clear()

复制集合:s.copy()

测试 x 是否是 s 的成员:x in s

测试 x 是否不是 s 的成员:x not in s

测试是否 s 中的每一个元素都在 t 中:s.issubset(t) ,s <= t

测试是否 t 中的每一个元素都在 s 中:s.issuperset(t) ,s >= t

返回一个新的 set 包含 s 和 t 中的每一个元素:s.union(t) ,s | t

返回一个新的 set 包含 s 和 t 中的公共元素:s.intersection(t) ,s & t

返回一个新的 set 包含 s 中有但是 t 中没有的元素:s.difference(t) ,s - t

返回一个新的 set 包含 s 和 t 中不重复的元素:s.symmetric_difference(t) ,s ^ t

6.frozenset

冻结的集合,不可变,存在哈希值,可以作为字典的key,也可以作为其它集合的元素。一旦创建便不能更改,没有add,remove方法。

2.6 字典

1.特性

键值对,使用大括号{}指定,无序,可重复,可读写,key唯一,自动去重

2.语法

(1)info = {‘stu1101’: “TengLan Wu”,‘stu1102’: “LongZe Luola”,‘stu1103’: “XiaoZe Maliya”}

(2)构造函数dict()可以直接从键值对序列中构建字典

dict([(‘Runoob’,1),(‘Google’,2),(‘Taobao’,3)]

3.基本操作

print(info.keys()) # 输出所有键print(info.values()) # 输出所有值:len(info) # 长度info["stu1104"] = “aqiu" # 增加info['stu1101'] = “tom" # 修改info.pop("stu1101")# 标准删除del info[‘stu1103’]# 换个删除方式info.popitem() # 随机删除info.clear() # 清空字典del info# 删除字典"stu1102" in info # 查找info.get("stu1102")# 获取

4.字典推导式

(1)例:大小写key合并

mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}mcase_frequency = {k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys() if k.lower() in ['a','b'] }print mcase_frequency # {'a': 17, 'b': 34}

(2)例:快速更换key和value

mcase = {'a': 10, 'b': 34}mcase_frequency = {v: k for k, v in mcase.items()}print mcase_frequency# {10: 'a', 34: 'b'}

5.字典遍历

(1)遍历key值:在使用上,for key in a和 for key in a.keys():完全等价。

a = {'a': '1', 'b': '2', 'c': '3'} for key in a: print(key+':'+a[key])# a:1 b:2 c:3 for key in a.keys(): print(key+':'+a[key])# a:1 b:2 c:3

(2)遍历value值

for value in a.values(): print(value)# 1 2 3

(3)遍历字典项

for kv in a.items(): print(kv) # ('a', '1') ('b', '2') ('c', '3')

(4)遍历字典健值

for key,value in a.items(): print(key+':'+value)# a:1 b:2 c:3 for (key,value) in a.items(): print(key+':'+value) # a:1 b:2 c:3

2.7 序列类型间转换

转数字:int(x),float(x),complex(real,imag),hex(x),oct(x)

转列表:list(s):内容基本不会变化,只是改为标志[]

转元组:tuple(s):内容基本不会变化,只是改为标志()

转集合:set(s):内容基本不会变化,只是改为标志{}

转字典:dict(d):d必须是一个序列(key,value)元组

转字符串:str(x):在外侧强制加上字符串的标志(‘’/’’ ‘’/’’’ ‘’’)

注意:

(1)str转list或tuple时,str的内容会被拆解,用str的split方法可分割成list类型:

s = 'I Love Python's# ‘I Love Python’ls = s.split()ls# [‘I’,’Love’,’Python’]

(2)list或者tuple转str时,用.join()可以合并成str类型:

li=['人','生','苦','短','I','like','python']li# ['人','生','苦','短','I','like','python']''.join(li)# '人生苦短Ilikepython'

2.8 索引及切片

1.索引:[0~n-1],如,取出列表s中第3个元素:x=s[2]

2.切片:1~3个参数,说明:如果前2个参数中有负数,如果负数小于-n就归0,如果在-n~0就理解为0~n-1之间转圈圈(即倒序[-n~-1]);没有第3个参数时,切片只能从左向右,此时若第一个参数大于等于第二个参数(两参数同号),则返回空数组,第3个参数<0时,切片方向可以被改变,此时没有上述限制。

如:

array=[2,3,4,5,6]array[1:]# 从下标为1的元素选择到最后一个元素,返回 [2,4,5,6]array[:3]# 从下标为0的元素选择到下标为2的元素,不包括下标3的元素,返回[2,3,4]array[::2]# 从下标为0的元素开始到最后一个元素为止,步长为2array[1:-2] # 从下标1开始,到下标(n-1)之前的所有元素,返回[3,4]array[-2:3] # 没有第3个参数,第一个参数大于等于后一个,返回空数组[]array[-13:3] # 第一个参数归0,返回[2,3,4]array[::-1] # 从头到尾,将数组反转,返回[6,5,4,3,2]array[-1::-2] # 从尾到头,步长为2,返回[6,4,2]

如果觉得《Python学习笔记2 基本数据类型》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。