Python学习笔记【week01day3下】算术运算符与表达式、比较运算符(ASCII与字符转换)、赋值运算符、逻辑运算符(短路原则)、位运算符

算术运算符与表达式、比较运算符【ASCII与字符转换】、赋值运算符、逻辑运算符【短路原则】、位运算符

1. 算术运算符与表达式

记住概念就好,没啥好多讲的。
算术运算符

 假设变量 a = 10, b = 20
+  :加 两个对象相加   例如 a + b = 30
-  :减 标识负数/一个数减去另一个数  a - b = -10
*  :乘 两个数相乘/返回一个被重复若干次的字符串 a*b=200
/  : 除 b除以a  b/a = 2
%  : 取模 返回除法的余数  b%a = 0
** :幂,返回x的y次幂  a**b=10^20
// : 取整 返回商的整数部分  9//2=4, 9.0//2.0=4.0

被除数 除以  除数  =  商 ... 余数

算术运算表达式

3+2  3-1  8**9  5%3
功能:进行相关符号的数学运算,不会改变变量的值
值:相关的数学运算的结果

2. 比较运算符

比较返回True 或 False, 没啥好多讲的。
(重点)特别注意:当变量为字符串比较时,(跟长度无关)比较的是字符串从左到右的单个字符,将单个字符对应的ASCII码进行比较
在这里插入图片描述
只需要记住几个关键码:
0 48
9 57
A 65
Z 90
a 97
z 122

可以使用ord 和chr两个内置函数用于字符与ASCII码之间的转换
>>> ord('a')
97
>>> chr(97)
a

作业:

3. 赋值运算符

注意: 可以这么写,但“=” 前后的个数必须相同
num1, num2 = 10,20
num3, num4 = (10,20)
num5, num6 = [10,20]
num1 = 10, num2 = 20, num3 = 10, num4 = 20, num5 = 10, num6 = 20

4. 逻辑运算符

  1. and (与运算) 如果有多个and,一直进行到最后一个真值
    print(True and True) True
    print(True and 1) 1
    print(True and “hello”) hello

  2. or (或运算) 取到第一个真值就结束

  3. 对比and与or, 一个是取得最后一个真值,一个是取到第一个真值就结束

  4. 引出“短路原则"(重点)
    表达式1 and 表达式2 and 表达式3 … 如果表达式1为假,则整个表达式的值为假,后面的表达式则没有计算的必要
    表达式1 or 表达式2 or 表达式3 … 如果表达式1为真,则整个表达式的值为真,后面的表达式的值就没有计算的必要

  5. 优先级
    ( ) > not > and > or

5. 位运算符

注意:进行位运算的时候,我们需要把数值转换为二进制数来进行计算

&   按位“与” :两个相应位都为1,则该位的结果为1,否则为0
|   按位“或” : 两个二进位有一个为1时,结果位就为1
^	按位“异或” : 当两对应的二进位相异时,结果为1
~	按位“取反” : 对数据的每个二进制位取反,即把1变为0,把0变为1
<<	左移 : 运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,低位补0 注意:向左移动,右边空出来的补0,左移其实就是乘以2的位数次幂
>>	右移: 把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数注意:如果最高位0,右移后,用0补空位,如果最高位1,右移后,用1补空位,右移其实就是除以2的位数次幂

重点注意:

  1. 【~】按位“取反
    ~3 = -4
    0000 0011 (3本身对应的二进制)
    1111 1100 (将0000 0011按位取反,注意这里要包含符号为)此时变成了补码(计算机只认识补码)
    1111 1011 (将 补码1111 1100 -1)此时变成了反码1111 1011
    1000 0100 (将1111 1011反码除掉符号位外(最高位)取反变成原码1000 0100 。特别注意:正数的反码是它本身,负数的反码是除符号位外取反,这里最高位是1,说明是负数)
    -4 (将二进制原码1000 0100转换成对应的十进制数字为 -4)

  2. 左移运算符【<<】(相当于乘以2的n次方,n为移动值)
    在这里插入图片描述

  3. 右移运算符【>>】(相当于取整,除以2的n次方,n为移动值)
    在这里插入图片描述

6. 成员运算符

in:如果在指定的序列中找到返回值True,否则返回False

>>>a = 10
>>>list1 = [1, 2, 4, 5]
>>>list2 =[20, 10, 15]
>>>print(a in list1)
False
>>>print(a in list2)
True

not in:如果在指定的序列中没有找到值返回True,否则返回False

>>>a = 10
>>>list = [1, 2, 4, 5]
>>>list2 =[20, 10, 15]
>>>print(a not in list)
True
>>>print(a not in list2)
False

7. 身份运算符

is:is判断两个标识符是不是引用自一个对象

>>> a = 1000
>>> b = a
>>> print( a is b)
True

is not:判断两个标识符是不是引用自不同的对象

>>>a =1000
>>>b = 1000
>>>print(a is not b)
False

注意:在[-5, 257)的整数取值范围内,python的内部具有缓存机制,因此在比较这个数值以内的数据可能就会有些问题。
引用网友的提问
在这里插入图片描述
及网友的解答:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值