挑战人工智能全栈第3天.....
运算符后续
比较运算符
-
==
:等于 -
!=
:不等于 -
<
:小于 -
>
:大于 -
<=
:小于等于 -
>=
:大于等于
比较运算符的运算结果为布尔值,比较运算符通常返回布尔类型的数, True, False
在Python中,is not
是一种身份运算符,用于判断两个对象是否不是同一个对象。它与 is
运算符相对,后者用于判断两个对象是否是同一个对象。
具体来说:
-
a is b
返回True
当且仅当a
和b
是同一个对象(即它们的身份相同)。 -
a is not b
返回True
当且仅当a
和b
不是同一个对象(即它们的身份不同)
注意:创建可变对象时,即使两个对象值相同,id仍不一样。而赋值不可变对象时,并没有创建新的对象,只是引用,即id仍相同
#例如
a = 10
b = a
print(a is b) #True
a = [1,2,3]
b = [1,2,3]
print(id(a) == id(b)) #False
判断对象是否为空时,应用is 或 is not
a = None
print (a is None) # True
逻辑运算符
-
and
:与(逻辑与)
两者同时为真,结果才为真
A and B
注意: 如果A判定为假 B将不会执行(短路效应)
-
or
:或(逻辑或)
两者只要有一个为真,结果就为真
同理: 如果A判定为真 B将不会执行(短路效应)
-
not
:非(逻辑非)
将表达式的结果取 非 操作
位运算符
Python中的位运算符主要用于处理整数类型的二进制位操作。以下是Python中的6种主要位运算符:
-
&
:按位与 -
|
:按位或 -
^
:按位异或 -
~
:按位取反 -
<<
:左移位 -
>>
:右移位
赋值运算符
-
=
:赋值 -
+=
:加法赋值,# 等价于 a = a + b -
-=
:减法赋值,# 等价于 a = a - b -
*=
:乘法赋值,# 等价于 a = a * b -
/=
:除法赋值,# 等价于 a = a / b -
%=
:取余赋值,# 等价于 a = a % b -
**=
:幂运算赋值,# 等价于 a = a ** b -
//=
:整除赋值,# 等价于 a = a // b
没有 a++、 a-- 这种自增自减运算符;
运算符的优先级
结合性规则
-
大多数运算符(如加法、减法、乘法、除法、逻辑与、逻辑或等)是从左到右结合的。
-
少数运算符(如幂运算、赋值运算符、逻辑非等)是从右到左结合的。
1 + 3 * 3 ** 2 + 4 // 2
1 + 3 * 9 + 4 // 2
1 + 27 + 4 // 2
1 + 27 + 2
28 + 2
30
print(2 ** 3 ** 2) #1024 先计算3的2次方 再计算2的9次方
数学函数
部分函数是python环境自带的,部分是math模块带的,部分是公共的
先引入math模块:
import math
-
math模块中定义的函数
函数 | 返回值 ( 描述 ) |
---|---|
abs(x) | 返回数字的绝对值,如abs(-10) 返回 10 |
math.ceil(x) | 返回数字的上入整数,如math.ceil(4.1) 返回 5 |
cmp(x, y) | 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x<y) 替换。 |
math.exp(x) | 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
math.fabs(x) | 以浮点数形式返回数字的绝对值,如math.fabs(-10) 返回10.0 |
math.floor(x) | 返回数字的下舍整数,如math.floor(4.9)返回 4 |
math.log(x,base) | 计算以 base 为底的 x 的对数。如果省略 base 参数,则默认计算自然对数(以 e为底)。如:math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
math.log10(x) | 返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
max(x1, x2,...) | 返回给定参数的最大值,参数可以为序列。 |
min(x1, x2,...) | 返回给定参数的最小值,参数可以为序列。 |
math.modf(x) | 返回一个元组,第一个元素是小数部分,第二个元素是整数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
math.pow(x, y) | x**y 运算后的值。 |
round(x ,n) | 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。 1.保留整数只有一个小数时:4舍6入5看齐,奇进偶不进 2.保留整数或小数超过一个小数时:看保留位的下下位是否存在 |
math.sqrt(x) | 返回数字x的平方根。 |
1. math.sqrt(x)
计算 x 的平方根。
import math
result = math.sqrt(16)
print(result) # 输出: 4.0
2. math.pow(x, y)
计算 x 的 y 次方。
import math
result = math.pow(2, 3)
print(result) # 输出: 8.0
3. math.exp(x)
计算 e 的 x 次方。
import math
result = math.exp(2)
print(result) # 输出: 7.3890560989306495
4. math.log(value,base)
计算以 base 为底的 value 的对数。如果没有指定 base,则计算e为底数的值。
import math
result = math.log(8, 2)
print(result) # 输出: 3.0
result = math.log(10)
print(result) # 输出: 2.302585092994046 (自然对数)
三角函数
先引入math库基础库:
import math
函数 | 描述 |
---|---|
math.acos(x) | 返回x的反余弦弧度值。 |
math.asin(x) | 返回x的反正弦弧度值。 |
math.atan(x) | 返回x的反正切弧度值。 |
math.atan2(y, x) | 返回给定的 X 及 Y 坐标值的反正切值。 |
math.cos(x) | 返回x的弧度的余弦值。 |
math.sin(x) | 返回的x弧度的正弦值。 |
math.tan(x) | 返回x弧度的正切值。 |
math.degrees(x) | 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 |
math.radians(x) | 将角度转换为弧度 |
#计算 x 的正弦值,x 以弧度表示。
import math
result = math.sin(math.pi / 2)
print(result) # 输出: 1.0
#计算 x 的余弦值,x 以弧度表示。
import math
result = math.cos(0)
print(result) # 输出: 1.0
import math
result = math.tan(math.pi / 4)
print(result) # 输出: 0.9999999999999999 (接近于 1)
result = math.degrees(math.pi / 2)
print(result) # 输出 90.0
result = math.radians(90)
print(result) # 输出 1.5707963267948966(即 π/2)
result = math.atan2(1, 1)
print(result) # 输出 0.7853981633974483(即 π/4)
result = math.atan2(1, -1)
print(result) # 输出 2.356194490192345(即 3π/4)
print(math.acos(1)) # 输出 0.0
print(math.asin(1)) # 输出 1.5707963267948966(即 π/2)
数学常量
先引入math库基础库:
import math
常量 | 描述 |
---|---|
math.pi | 数学常量 pi(圆周率,一般以π来表示)约等于 3.141592653589793 |
math.e | 数学常量 e,e即自然常数(自然常数) 2.718281828459045 |
蒙特卡洛算法:是一种基于随机抽样和统计学原理的数值计算方法,用于求解数学、物理、工程等领域中的复杂问题。
-
例如
计算圆周率π:
-
在单位正方形内随机生成点。
-
统计落在单位圆内的点的比例。
-
根据比例估计π的值。
条件语句
1.if
if condition:
# 当条件为真时执行这里的代码,否则不执行这里
year=1993
if year%4==0:
print("year能被4整除")
2.if-else
if condition:
# 当条件为真时执行这里的代码
else:
# 如果前面的条件都为假,执行这里的代码
year=1993
if year%4==0:
print("year能被4整除")
else:
print("year不能被4,400整除")
3.if-elif-else
if condition:
# 当条件为真时执行这里的代码
elif another_condition:
# 当上面条件为假,而这个条件为真时执行这里的代码
else:
# 如果前面的条件都为假,执行这里的代码
year=1992
if year%4==0:
print("year能被4整除")
elif year%400==0:
print("year能被400整除")
else:
print("year不能被4,400整除")
4.条件表达式
Python 中的三元表达式(或称条件表达式)的语法规则如下
<表达式1> if <条件> else <表达式2>
语法解释:
-
<条件>
:要判断的条件表达式,通常是一个布尔表达式(例如a > b
)。 -
<表达式1>
:当条件为True
时返回的值或执行的表达式。 -
<表达式2>
:当条件为False
时返回的值或执行的表达式。
示例:
x = 5
y = 10
# 使用三元表达式判断并赋值
result = "x is greater" if x > y else "y is greater"
print(result) # 输出: "y is greater"
if x > y:
result = "x is greater"
else:
result = "y is greater"
循环语句
while 语句
-
作用
根据一定的条件,重复的执行某个语句块
-
语法
while 真值表达式:
语句块1 (*此部分可能会重复执行)
else:
语句块2
-
说明
-
else 子句可以省略
-
else 子句 当且仅当 真值表达式为假Flase的时候 会执行 else 里的语句块2
-
如果 此 while 是因为 调用 break 语句而终止循环。则 else 子句里的语句不会执行
-
-
示例1
while 1 < 2:
print("hello world")
- 示例2
# 打印 5 行 "hello world"
i = 0
while i < 5:
print("hello world")
i = i + 1 # 也可写成 i += 1
else:
print("while 语句已经结束!")
无限循环
for 语句
-
作用
-
用来遍历可迭代对象的数据元素
-
遍历是指经历且只经历一遍
可迭代对象是指能够依次获取数据元素的对象
可迭代对象
-
字符串
-
列表 list
-
字典 dict
-
...
-
语法
for 变量列表 in 可迭代对象:
语句块1
else:
语句块2
-
语法说明
-
else 子句可以省略
-
else 子句的语句块2 只有在 可迭代对象不再能提供数据的时候才会执行
-
因为 语句块1 部分调用break 而终止循环式,else 子句部分不会执行。
-
range 函数
-
作用
用来生成一个能够得到一系列整数的可迭代对象(也叫整数序列生成器)
-
调用格式
range(stop) # stop 停止整数
range(start, stop) # start 开始整数
range(start, stop, step) # step 步长
注意:
range 函数调用会生成从 start 开始,到 stop 结束(不包含stop) 的一系列整数,整数的间隔 step
start 默认值为0, step 默认值为1
- 示例
range(4) # 生成 0 1 2 3
range(3, 6) # 生成 3 4 5
range(1, 10, 2) # 生成 1 3 5 7 9
range(5, 0, -2) # 生成 5 3 1
break 语句
-
作用
用于循环语句(while, for语句)中, 当break 执行是,她会终止包含他的当前循环。
-
说明
-
break 语句只能用在 while 语句或for语句的内部。
-
break 语句通常和 if 语句组合使用。
-
当break 语句执行后,此循环语句break 之后的所有语句都不会执行(else 子句里的语句也不执行)
-
break 语句只能终止包含他的当前循环,当有循环嵌套时,只能跳出离他最近的一个循环
-
continue 语句
-
作用
用于循环语句(while 语句和for语句)中, 不再执行本次循环内 continue 之后的语句,开始一次新的循环
-
说明
-
在for 语句中, 执行continue 语句,for语句将会从可迭代对象向中获取下一个元素绑定变量后再次进行循环
-
在while 中,执行continue 语句, 将会直接跳转到while 语句的真值表达式处,重新判断循环条件。
-
pass 语句
pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句