第一章 python语言基础

1.5 Python中的对象

1.5.1 对象的身份

  • 一般用对象在内存中的存储位置作为对象的身份,用于唯一标识对象。
  • 用id()获取对象的标识
a=123
id(a)

1.5.2 对象的类型

  • 对象的类型表示对象可以存储什么类型的值
  • 用type()获取对象的类型
type(a)

1.5.3 对象的值

  • 对象所表示的数据
  • 用print()返回

1.5.4 对象的引用

  • 常见的赋值操作b=6,就是对象的引用
    • 如果变量b不存在,那么就创建变量b来代替对象6。
    • 如果变量b存在,那么就将变量b和对象6进行连接.

1.5.5 对象的共享引用

  • 当多个变量都引用了相同的对象,称为共享引用。
a=1
b=a
b=2
#print(b)->1

由于变量仅是对对象的一个引用,因此改变a的引用并不会导致b的变化。

a=[1,2,3]
b=a
a[0]=0
#print(a)->[0,2,3]
#print(b)->[0,2,3]

列表是可变的,创建后允许修改、插入或删除其中的元素。

1.5.6 对象是否相等的判断

  • ==测试两个被引用的对象的值是否相等
  • is用于比较两个引用所指向的对象是否是同一个对象。
a=[1,2,3]
b=a
a is b->True
c=[1,2,3]
a is c->False
a==c->True
d=[1,2,4]
a==d->False

当对象为一个较小的数字或较短的字符串时,为另外一种情况:

a=8
b=8
a is b ->True

这是Python的缓存机制造成的,小的数字和短字符串被缓存并复用,所以a,b指向同一个对象。

1.6 Python中的变量

  • 变量名只能时字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 以下关键字不能声明为变量名
and; as; assert;
break;
class;continue;
def;del;
elif;else;except;exec;
finally;for;from;
global;
if;import;in;is;
lambda;
not;
or;
pass;print;
raise;return;
try;
while;
with;
yield;

1.7 基本数据类型

1.7.1 number(数值)

1. 内置数据类型

  • int
  • float
  • bool (True和False,分别对应的是1和0)
  • complex(复数)
    • 3+4i->complex(3,4)

2. 运算符

  • +,-,*,/
  • //(整除)
  • **(整除)
  • %(取余)

3. 数学函数

  • abs(x) 绝对值
  • exp(x) e的x次幂
  • max(x,y,z,...)
  • min(x,y,z,...)
  • pow(x,y) 计算x的y次幂
  • round(x[,n]) 代表舍入到小数点后的位数
  • math.floor(x) x的向下取整
  • math.log(x) x的自然对数
  • math.log10(x) 返回以10为底的x的对数
  • math.sqrt(x) 返回数字x的平方根

4. 变量赋值

  • 可以为多个变量赋值 a=b=c=1
  • 可以为多个对象指定变量 a,b,c=1,2,3
  • 一个变量可以通过赋值指向不同类型的对象
  • 在混合计算值,整形回转换为浮点型

1.7.2 string(字符串)

1.创建字符串

  • ''
  • ""

2.字符串运算符

  • 连接 +
  • 重复 *
  • 索引 []
  • 截取字符串 [:]
  • in
  • not in

3.字符串常用的方法

  • str.capitalize() 第一个字符大写
  • str.center(width) str居中,并使用空格填充至长度为width的新字符串
  • str.count(substr[,start[,end]]) 统计substr出现的次数,不指定开头和结束的位置,就从头统计到尾
  • str.find(substr[,start[,end]]) 返回substr在str中指定范围第一次出现的第一个字母的标号
  • str.index(substr[,start[,end]]) 查找substr第一次出现的位置,与find不同,未找到则抛出异常

  • str.isalnum() 判断str是否有字母和数字组成
  • str.isalpha() 判断str是否只由字母组成
  • str.isdecimal() 判断str是否只包含十进制字符
  • str.isdigit() 判断str是否只包含数字
  • str.isnumeric() 判断str是否只由数字组成
  • str.islower() 判断str是否由小写字母组成
  • str.isupper() 判断str是否由大写字母组成
  • str.isspace() 判断str是否只由空白字符组成
  • str.istitle() 检查字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
  • str.join(seq) 将seq中的所有元素合并为一个新的字符串
  • str.lower() 将str中所有大写字符转换为小写
  • max(str)返回字符串中最大的字母
  • min (str) 返回字符串中最小的字母
  • str.replace(oldstr,newstr[,count]) 将str中的oldstr字符串替换成newstr字符串,替换最多不超过count次
  • str.split(str1,num) 仅分隔num个子字符串
  • str.swapcase() 转换str中的大小写
  • str.upper() 将字符串中的小写字母转换为大写字母

1.7.3 list(列表)

  • 列表是用[a,b,c]来表示的
  • 列表是可变的,允许增删改
  • 列表中的运算的数据类型可不同,也可以嵌套
  1. 列表创建
  • 构造方法来创建
list1=list()
list1=list("ch")
->list1=['c','h']
  • 直接创建
lista=[]
listb=['1',2,10.2]
  1. 列表截取
  • list[start:end] ->截取的片段是下标start到下标end-1的元素所构成的一个子列表
  • start以0从头开始,以-1从末尾开始
  1. 修改列表
x=[1,1,3,4]
# 将列表中第二个1改为2
x[1]=2 ->x=[1,2,3,4]
# 为列表中添加一个元素5
y=x+[5] ->y=[1,2,3,4,5]
# 在列表末尾添加一个元素6
y[5:]=[6] ->y=[1,2,3,4,5,6]
# 在列表中插入序列
number=[1,6]
number[1:1]=[2,3,4,5]->number=[1,2,3,4,5,6]
# 在列表中删除元素
names=['o','a','b','c','d']
# 删除names的第二个元素
del names[1]
# 删除names的第二个至第四个元素
names[1:4]=[]
# 删除整个列表
del names
  1. 列表序列操作
  • 判断在序列 x in s
  • 判断不在序列 x not in s
  • 连接i按个序列 s1+s2
  • s复制n次 s*n
  • 获取列表长度 len(s)
  • 返回序列s的最大元素 max(s)
  • 返回序列s的最小元素 min(s)
  • 返回序列s中所有元素之和 sum(x)
  • 比较两个序列 <,<=,>,>=,==,!=
  1. 列表的一些常用函数
  • 反转序列对象:reversed()函数
a=[1,2,3]
list(reversed(a)) ->[3,2,1]
  • 排序函数:sorted(iterable[,key][,reverse])
# 按绝对值排序
sorted([1,-2,-3],key=abs) ->[1,2,3]
# 按小写进行排序
sorted(['Aoo','Bob','Coc'],key=str.lower)
# 按小写进行排序,反向排序
sorted(['Aoo','Bob','Coc'],key=str.lower,reverse=True)
  • 打包函数:zip()
a,b,c=[1,2,3],['a','b','c']
list(zip(a,b))->[(1,'a'),(2,'b'),(3,'c')]
  • 枚举函数:enumberate()
seasons=['abc','bcd','cde']
list(enumerate(seasons))->[(0,'abc'),(1,'bcd')]
  1. 列表对象的常用方法
  • list.append(x): 在列表末尾添加新的对象
  • list.count(x): 返回x在列表中出现的次数
  • list.extend(seq): 在末尾一次性追加seq序列中的所有元素
  • list.index(x):返回列表中一个值为x的元素的下标
  • list.pop([index]):删除并返回列表指定位置的元素
  • list.remove(x):移除列表中x的第一个匹配项
  • list.reverse():反向列表中的元素
  • list.sort(key=None,reverse=None):对列表进行排序,key参数的值为一个函数,reserve表示逆序
  • list.clear():删除列表中的所有元素
  • list.copy():复制列表
  1. 列表推导式
  • [2*x for x in range(1,11)]
  • [2*x for x in a if x%2==0]

1.7.4 tuple(元组)

  • 元组是写在括号之间,用逗号分开的元素序列,元组中的元素类型可以不相同。
  • 元组的元素是不可变的,创建之后就不能改变其元素。
  • 列表是可变的,创建后允许修改、插入、或删除。
  1. 访问元组
tuple1=()
tuple2=(20,)
tuple3=('abc',1,8+6j)
  1. 修改元组
  • 元组属于不可变序列,元组中的元素是不允许修改的。

1.7.5 dictionary(字典)

  1. 创建字典
  • {键:值
  1. 访问字典里的值
  • 字典变量[key]
  • dict1.values() 输出字典的所有值
  • dict1.keys() 输出字典的所有键
  • dict1.items() 输出字典的所有元素
  1. 字典元素添加、修改与删除
  • 字典添加新元素的方法是增加新的“键:值”对:school['class1']=10
  • 使用del命令可以删除字典中指定的元素,也可以删除整个字典:del school['class1'];del school
  • 使用pop()方法删除指定键的字典元素并返回该键所对应的值:dict2.pop('four')
  • 使用字典对应的clear()方法删除字典内所有元素:dict2.clear()
  1. 字典对象的常用方法
  • dict1.clear():删除字典内所有元素

  • dict1.copy():返回字典的一个浅拷贝,只复制父对象,不复制对象内部的子对象

  • dict1.fromkeys(seq[,value]):创建一个新字典,以seq中的元素作为字典的键,value为所有键对应的初始值

  • dict1.get(key):返回指定键key对应的值

  • dict1.items():返回键值对

  • dict1.keys():返回字典所有的键

  • dict1.update(dict2):将dict2的键值对更新到dict1中

posted @   Trouvaille_fighting  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示

目录导航