Python-3-Python变量与运算符

第三章:变量与运算符


3-1 变量的介绍

1. 变量只能包含字母、数字、下划线。变量名可以以字母或下划线开头,但绝不是数字开头。

2. 不能将python关键字作为变量名,常见python关键字有:

False    class      finally   is          return
True     continue   for       lambda      try
None     def        from      nonlocal    while
and      del        global    not         with
as       elif       if        or          yield
assert   else       import    pass        break
raise    except     in


3-2 Python常见运算符

运算符类型

算术运算符:+ - * / % //(取整) **(乘方)
赋值运算符:= += -= *= /= %= //= **=
比较关系运算符:== != <>(比较两个对象的值是否不相等,目前已淘汰) < > >= <= //返回bool类型结果
逻辑运算符:and or not //操作类型和返回类型都是bool类型
成员运算符:in not in //判断一个元素是否在另外一组元素中,返回bool类型
身份运算符:is is not //比较两个对象内存地址是否相等,返回bool类型
位运算符:& | ^ ~ << >>


3-3 Python常见运算符-算术运算符

1+True //2 True是1,False是0
'hello ' + 'world' //'hello world' 运算符不仅用于数字之间
a={1, 2, 3, 4}; b={1, 2}; a-b //{3, 4} a集合减去b集合

'python' * 3 //'pythonpythonpython'
[1, 2, 3] * 3 //[1, 2, 3, 1, 2, 3, 1, 2, 3] 列表乘以3
(1, 2, 3) * 3 //(1, 2, 3, 1, 2, 3, 1, 2, 3) 元组乘以3

10.0 % 3 //1.0 有浮点数返回的就是浮点数,可以使用 type() 查看


3-4 Python常见运算符-赋值运算符


3-5 Python常见运算符-比较(关系)运算符

数值比较
1 == 1.0 //True

!= 适用与python 2和3,<>这个不等于只能用于python2,python3中已经将其舍去

C:\Users\MM>python //python2.7环境,Ctrl+C退出
>>> 1<>1
False
>>> 1 != 1
False

C:\Users\MM>python_3.11 //python3环境,Ctrl+Z退出
>>> 1 != 1
False
>>> !<>1
SyntaxError: invalid syntax


字符串比较
'a' < 'b' //True 通过ASCII码比较的,获取ASCII码值 ord('a')=97,ord('b')=98
'abc' < 'acd' //True 逐个字符进行ASCII码比较

列表比较
[1, 2, 3] < [1, 3, 2] //True 逐个元素比较,遇到能判断大小的就退出了
['apple', 'orange'] < ['pear', 'orange'] //True 原理类似

集合
{1, 2, 3} == {3, 2, 1} //True 由于集合是无序的,所以是相等的
{1, 2, 3} < {3, 2, 1, -1} //True 左侧是右侧的子集,所以为真
{1, 2, 3} == {3, 2, 4} //False 非子集关系,无论是 == > < 都是False

字典
字典是不支持大小比较,若是比较会报错, 但是支持是否相等比较
{'lemon':5, 'apple':8} == {'lemon':5, 'apple':6} //False
{'lemon':5, 'apple':8} == {'apple':8, 'lemon':5} //True 字典也是无序


3-6 Python常见运算符-逻辑运算符

逻辑运算符(and or not) 的操作类型和返回类型都是bool类型,若操作数不是bool类型会先转为bool类型后运算。0、None、空值(空字符串、空列表、空元组、空字典、空集合) 返回False.

True and False //False
True or False //True
not True //False
not not True //True
not True and True //False 从左往右算
bool('') //False 空字符串
0 or [] //[] 两个都为false会返回第二个值,
1 and 2 //2 可是 2 and 1 返回1,and处理是若左右两边都是True会返回右边的值(不用关系返回的是哪个值,只用关心操作的结果)
not 0 //True


3-7 Python常见运算符-成员运算符

in / not in

字符串:
a='lemon'; a in 'hello lemon' //True
a='lemon'; a not in 'hello lemon' //False

列表:
a = 1; a in [1, 2, 3] //True

元组
a = 1; a in (1, 2, 3) //True

集合
a = 1; a in {1, 2, 3} //True

字典
字典的成员运算,针对的是字典 key:value 中的 key.
a = 'lemon'; a in {'lemon':5, 'apple':10} //True


3-8 Python常见运算符-身份运算符

is / is not

比较两个对象内存地址是否相等,返回bool类型。

数值:
a=1; b=1; a is b //True 可以使用 id(a) 查看内存地址

a=1.0; b=1; a is b //Flase
a=1.0; b=1; a == b //True

身份运算符与比较运算符的区别:前者比较两个对象内存地址是否相等,后者比较两个对象的值是否相等。

列表:
a=[1, 2, 3]; b=[1, 2, 3]; a is b //False
a=[1, 2, 3]; b=[1, 2, 3]; a == b //True 列表是有序的,调换元素的顺序会导致返回False,集合是无序的,调换也无所谓。


3-9 Python常见运算符-位运算符

4 & 5 //4
bin(4) //'0b100'
int('100', 2) //4 将2进制100转换为10进制


3-10 Python常见运算总结


3-11 扩展内容--值类型与引用类型

a=1; b=a; a=2; b //1 值类型,a是指向数字的,是不可变的
c=[1, 2, 3]; d=c; d[0]=4; c //[4, 2, 3] 引用类型,地址是一样的
c=[1, 2, 3]; d=c; c[0]=4; d //[4, 2, 3] id(c)和id(d)的地址是一样的

值类型(数字、str、tuple)是不变的,引用类型(list、dict、set)是可变的

 

posted on 2023-07-28 22:50  Hello-World3  阅读(7)  评论(0编辑  收藏  举报

导航