人工智能第五次笔记(python运算符)

一.运算符

  • 运算符用于执行某种操作并返回一个结果,Python中的运算符可以分为:
    算数运算符,比较运算符,逻辑运算符,赋值运算符,位运算符,身份运算符,成员运算符,三目运算符八种

1.1算数运算符

用于执行基本的数学运算

1.1.1常见的算数运算符

  • +:加法
  • -:减法
  • *:乘法
  • /:除法
  • %:取模(取余数)
  • **:幂运算
  • //:整除(取整数部分)
x1=5
x2=2
x3=(1,2)#元组
x4=(3,4)
x5=[1,2]
x6=[3,4]
print(x1+x2)
print(x3+x4)
print(x5+x6)
print(x1-x2)
print(x1*x2)
print(x1/x2)
print(x1%x2)
print(x1**x2)
print(x1//x2)

结果

7
(1, 2, 3, 4)
[1, 2, 3, 4]
3
10
2.5
1
25
2

1.1.2练习


# 已知从凌晨 0:0:0 到现在已经过了 63320 秒, 请问现在是 几时几分几秒?
s=63320
h=s//(60*60)
m=(s-h*(60*60))//(60)
s=s%60
print(h,"时",m,"分",s,"秒")

结果

173520

1.2比较运算符

用于比较两个值并返回布尔值 True 或 False

  • ==:等于
  • !=:不等于
  • <:小于
  • >:大于
  • <=:小于等于
  • >=:大于等于
# 比较运算符
x1=10
x2=30
print(x1==x2)#判断值是否相等
print("hello"=="hello")
print(x1!=x2)#判断值是否不相等

x1=100
x2=100
print(x1>x2)#大于
print(x1<x2)#小于
print(x1>=x2)#大于等于
print(x1<=x2)#小于等于
 注意: x1=<x2  x1=>x2  这两种写法不对

结果

False
True
True
False
False
True
True

1.3逻辑运算符

用于连接布尔值并返回布尔值
下面是and 和or的真值表

  • and
x的值 y的值 x and y的值
True True True
True False False
False True False
False False False

优先返回假值对象, 如果x 为假值,返回x, 否则返回y

  • or
x的值 y的值 x or y的值
True True True
True False True
False True True
False False False

优先返回真值对象, 如果x 为真值,返回x, 否则返回y

and

A and B
A是一个表达式 B也是一个表达式
如果A表达运行完毕后 的结果 拿来转换为布尔值 bool(A)
结果为False 那么B表达式就不运行 整个表达式A and B 的结果就为A表达式(False)
结果为True 整个表达式A and B 的结果就为B表达式

x1=20
x2=30
re=x1<18 and x2>18
print(re)

结果

False
x1=20
x2=30
re=x1>18 and x2>18#这里A(X1)的表达式bool值为Ture
print(re)

结果

Ture
x1=0
x2=200
re=x1 and x2
print(re)

结果

0

or

A or B
A是一个表达式 B也是一个表达式
如果A表达运行完毕后 的结果 拿来转换为布尔值 bool(A)
结果为True 那么B表达式就不运行 整个表达式A and B 的结果就为A表达式
结果为False 整个表达式A and B 的结果就为B表达式

x1=20
x2=30
re=x1>18 or x2>18
print(re)

x1=0
x2=200
re=x1 or x2
print(re)

结果

True
200

not

not 运算符是一元运算符

x1=[ ]
re=not x1
print(re)

结果

Ture

1.4赋值运算

用于给变量赋值

  • =:赋值

  • +=:加法赋值

  • -=:减法赋值

  • *=:乘法赋值

  • /=:除法赋值

  • %=:取模赋值

  • **=:幂运算赋值

  • //=:整除赋值

  • 注意:

​ 没有 a++、 a-- 这种自增自减运算符;

# 赋值运算符
x=10+20# = 号是一种运算符,这个运算符 会先执行右边的代码 然后把执行的结果赋值给左边的表达式
print(x)

x=10
x=x-2# 1.先执行 x-2  x是取值操作  2.然后再执行 x=10-2  x=8
print(x)

x=10
x-=5# x=x-5
print(x) 

x=10
x+=2
print(x)#12
x*=2
print(x)#24
x/=2
print(x)#12.0
x%=2
print(x)#0.0
x//=2
print(x)#0.0
# x++ #python没有++ --
# print(x)

结果

30
8
5
12
24
12.0
0.0
0.0

1.5位运算符

  • 用于对整数按位进行操作

1.5.1常见位运算符

  • &:按位与
  • |:按位或
  • ^:按位异或
  • ~:按位取反
  • <<:左移位
  • >>:右移位

位运算符都是通过转化为二进制来计算的

按位与(&)

  • 表达式:a & b

  • 功能:对于每一位,如果a和b的相应位都是1,则结果位为1,否则为0。

# 示例:计算两个二进制数的按位与
a = 0b1011  # 二进制表示的11
b = 0b1101  # 二进制表示的13
result_and = a & b  # 计算两者之间的按位与
print(bin(result_and))  # 输出:0b1001 (十进制为9)

按位或(|)

  • 表达式:a | b

  • 功能:对于每一位,只要a和b中至少有一位是1,则结果位为1,否则为0。

# 示例:计算两个二进制数的按位或
a = 0b1011
b = 0b1101
result_or = a | b  # 计算两者之间的按位或
print(bin(result_or))  # 输出:0b1111 (十进制为15)

按位异或(^)

  • 表达式:a ^ b

  • 功能:对于每一位,如果a和b的相应位不同(一个为1,另一个为0),则结果位为1,否则为0。

# 示例:计算两个二进制数的按位异或
a = 0b1011
b = 0b1101
result_xor = a ^ b  # 计算两者之间的按位异或
print(bin(result_xor))  # 输出:0b110 (十进制为6)

按位取反(~)

  • 表达式:~a

  • 功能:对操作数a的每一个二进制位进行取反,即将1变为0,0变为1。

# 示例:计算一个二进制数的按位取反
a = 0b1011
result_not = ~a  # 计算a的按位取反
print(bin(result_not))  # 输出:-0b1100

左移运算符(<<)

  • 表达式:a << b
  • 功能:将a的二进制表示向左移动b位,左边移出的部分会被丢弃,右边空出的位置补零。相当于乘以2^n次方
# 示例:将一个二进制数向左移动两位
a = 0b1011
result_left_shift = a << 2  # 将a向左移动两位
print(bin(result_left_shift))  # 输出:0b101100 (十进制为44)

右移运算符(>>)

  • 表达式:a >> b

  • 功能:

    • 将a的二进制表示向右移动b位
    • 对于无符号整数,右边移出的部分会被丢弃,左边空出的位置补零(通常补0);
    • 对于有符号整数,右移时取决于具体实现,可能是算术右移(符号位扩展)或者逻辑右移(补0)。
    • 同理,相当于除以2^n
# 示例:将一个有符号二进制数向右移动一位
a = -0b1000  # 十进制为-8
result_right_shift = a >> 1  # 将a向右移动一位
print(bin(result_right_shift))  # 输出:-0b100 (十进制为-4)

# 对于无符号数的例子
unsigned_a = 0b1000
unsigned_result_right_shift = unsigned_a >> 1
print(bin(unsigned_result_right_shift))  # 输出:0b100 (十进制为4)

1.6身份运算符

用于比较对象的内存地址(即身份)

  • is:判断对象是否相同
  • is not:判断对象是否不同

值和类型都相同时,存在一个内存空间里面

a = 1
b = 1
print(a == b)  #True, 比较的是值
print(a is b)  #True, 比较的是内存地址,同一个值放在一个内存里面

类型不同时就需要存放在两个内存空间里

a=1
b=1.0
a == b #True,值是相等的
a is b #False,需要放在两个内存空间里面,分别表示int和float

有序的列表list

a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) #True, 比较的是值
print(a is b) #False,比较的是内存地址
a = [1, 2, 3]
b = [1, 3, 2]
print(a == b) #False,比较的是值,列表是有序的,值不同
print(a is b) #False,比较的是地址
True
False
False
False

无序的集合Set

a = {1, 2, 3}
b = {1, 3, 2}
print(a == b) #True,比较的是值,Set是无序的,所以值相同
print(a is b) #False,比较的是地址

无序的字典Dict

a = {'name': '张三', 'age': 10}
b = {'age': 10, 'name': '张三'}
print(a == b) #True,比较的是值,字典是无序的,所以值相同
print(a is b) #False,比较的是地址

1.7 成员运算符

用于检查一个值是否是某个集合的成员

  • in:判断值是否存在于序列中

  • not in:判断值是否不存在于序列中

x1=1
x2=2
x3=[1,3,4]
print(x1 in x3)
print(x2 in x3)

结果

Ture
False

1.8 三目运算符

max = a if a>b else b

  • 如果 a>b 成立,就把 a 作为整个表达式的值,并赋给变量 max;
  • 如果 a> b 不成立,就把 b 作为整个表达式的值,并赋给变量 max。

1.9优先级

人工智能第五次笔记(python运算符)_第1张图片

你可能感兴趣的:(笔记,python,开发语言)