慕课网python学习笔记3

本文深入探讨Python中变量的概念、命名规则及作用,详细解析各类运算符的使用方法,包括赋值、比较、逻辑、成员和身份运算符,以及位运算符的二进制运算原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是变量
定义一个变量就是
A = [1,2,3,4,5,6] =表示赋值符号
表示将[1,2,3,4,5,6]赋值给A
赋值时候命名的可读性一定要非常强
变量的作用最主要是方便你调用一个很常用的列表。以便简化你的代码。一定要重视变量名的命名,做到通俗易懂有意义。
变量的命名规则
1.变量名可以由字母,数字,下划线组成。
2.变量名的开头不可以是数字。
3.系统关键字不能用在变量名中。(保留关键字)例如 and,if,import.
type不是保留关键字,但是不建议做变量名。why?(如果type做变量名,接下来就不能使用type函数了)
type = 3(如果接下来使用type函数,type(1)就相当于3(1),没有这种操作的)
4.变量名分大小写。
5.没有变量类型限制。不像其他语言,需要int a = 3,之后若a = ‘e’会报错,python不需要在变量名字前写int double等关键字,a = 3后也可以进行操作a = ‘1’
Python动态语言的最大特性。
a=1
b=a
a=3
print(b) b不会改变
a=[1,2,3,4,5]
b=a
a[0]=‘1’(a[0]就相当于前面所说的[1,2,3,4,5] [0])
print(b) b改变了 why?
值类型与引用类型
值类型一般情况下是一个不可变的量,当值类型的量赋值到变量A的时候,变量A就等于这个值。当B等于A的时候,相当于把这个值类型的量同时赋值给B,那么变量B与变量A就同时指向同一个值。这时,我们再把变量A重新赋值一个新的值类型的量时,变量B是不变的,因为没有任何操作让变量B重新被赋值,所以变量B依然是最开始的值类型的量而不会跟随着变量A而改变。
引用类型的量时可以变的。当我们把一个引用类型的量赋值给A的时候,A就等于了这个引用类型的量,当我们把B等于A时,变量B野等于这个引用类型的值(同时指向同一个可变值)。所以,当我们把引用类型的值改变的时候,A和B会同时改变。

值类型有:int(整数),tuple(元祖),str(字符串){不可改变}
引用类型有:list(列表),set(集合),dict(字典){可变}
id() 显示某一个变量再内存里面的地址。
修改了一个字符串后,例如a=‘hello’,a=a+python,字符串的地址就改变了,因为字符串是一个不可改变的量
在这里插入图片描述
而列表是一个可改变的量,修改了列表后,列表的内存地址并没有改变。
在这里插入图片描述
列表的可变与元组的不可变
列表中添加元素:例如b.append(4) 在列表中添加一个4元素
b=[1,2,3]
b.append(4)
print(b)
[1, 2, 3, 4]
元组里不能执行append()操作,因为元组是不可变的
在这里插入图片描述
能用tuple就用tuple能够增加代码的稳定性,但是要动态的改变元素时用list
在这里插入图片描述
最后一行代码是可以实现的!因为虽然元组是不可改变的,但是我们改变的是元组里的列表,列表是可以改变的。
运算符号
在这里插入图片描述
在这里插入图片描述
两个乘号代表立方运算,如24=16,25=32
赋值运算符
python不需要定义变量,变量只是一个名字
赋值运算符:
=:进行赋值
b+=a(b=b+a):在其他语言中还可以写作c++(自增运算符),但是在python中不可以
b-=a(b=b-a):在其他语言中还可以写作c–(自减运算符),但是在python中不可以
剩下的运算符作用类似,参考上面的思维导图
比较运算符
1.比较(关系)运算符
== 比较两组数据类型是否相等
!=

两个变量之间的大小相比
<

<=
2.可以比较的变量:
数字,字符串,bool
3.比较运算符的关键点是返回bool。
4.课后练习
b=1
b+=b>=1
print(b) 得2
因为先算b大于等于1结果是true,结合之前的int(true)=1,可得b+=true=2
5.比较单个字符时’a’,‘b’,比较的是字符对应的Ascll码,可以通过ord()函数进行查看
比较字符串‘abc’、‘abd’,比较字符串中的每一个字母单独作比较,不可以通过ord()函数查看
字符串、列表、元组都可以进行比较,也是每个元素单独一次进行比较,相同则比较下一位,不同则较大的元素所在的数据大(1,2,3)<(1,3,2)True
6.bool类型是Number类型的一种
逻辑运算符
逻辑运算符主要操作bool类型,返回结果也是bool类型
and(且)、or(或)、not(非)
1 and 1会被认为是 True and True
‘a’ and 'b’会被认为是True and True
not ‘a’ 就会返回 False
int float 取值为0,认为是F,非0认为T
字符串 空字符串 认为是F,非空是T
list、tuple、set、dict 空被认为是F,非空为T
[1] or []
[1]
逻辑运算符返回是布尔类型,可以使用非bool类型进行表示
逻辑运算符操作是布尔类型,可以使用非bool类型进行表示
[] and [1]
[]
and–编译器只有读到最后,才可以知道录入完全。
1 or 2
1
但是对于 or 运算符 就不一定需要读到最后,编译器追求效率。
比如1 or 0,编译器读到1就已经知道是真了(因为是or),所以就返回1,1 or 2也是如此
但是0 or 1就不一定,因为编译器要根据后一位数判断是真还是假
在这里插入图片描述
成员运算符
成员运算符返回值为bool类型
a =1
a in [1,2,3,4,5]
True
b=6
b in [1,2,3,4,5]
False
列表、元组、集合、字符串都可以
字典的成员运算针对key:value中的key,不是value
b=1
b in {‘c’:1}
False
b=‘c’
b in {‘c’:1}
True
身份运算符
身份运算符:
is
not is
返回结果是布尔类型
is比较的是两个变量的身份(内存地址)是否相等
== 比较的是两个变量的值是否相等
在这里插入图片描述
如何判断变量的值,身份与类型
a = {1,2,3} b={2,1,3}
a==b True (集合是无序的)
a is b False (内存地址不一样)

c=(1,2,3) d=(2,1,3)
c==d =>False (元组是有序的)
c is d =>False (内存地址不一样)
type() 类型判断
a = ‘hello’
type(a) == str
True 不推荐
isinstance(a,str)
True 推荐
isinstance(a,(int,str,float)) a是不是元组中三种类型中的一种
True
为什么不推荐type做类型判断?
因为type不能判断子类的类型,isinstance是可以的。
值(value),身份(id)和类型(type)是对象的三个特征。
在这里插入图片描述
位运算符
位运算符:&(按位与),|(按位或),^(按位异或),~(按位取反),<<(左移动),>>(右移动)
位运算:就是把其他进制转换成二进制进行按位与、或、非等的运算
例如:2 & 3 转换成二进制的为10 & 11,1与1对比和0与1对比得出的结果为10转换成十进制结果为2。&运算符的定义两个二进制对比都为1结果为1,两个结果中有一个为0或者两个都为0则为0
a = 2
b = 3
a & b
2
|运算符的定义:二进制对比中只要有一个1结果就为1
a = 2
b = 3
a | b
3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值