目录
一、Python表达式问题求解
1.1 具体表达式的转换
1.2 Python数学函数
Python外围库非常丰富。math
模块中定义了非常丰富的数学函数,可以在命令提示符下运行下述命令查看所有预定义的数学函数:
import math
help(math)
print(dir(math))
下面列出一些常用的数学函数:
-
abs(x)
:返回整数的绝对值,如abs(-10)
返回10
。 -
ceil(x)
:返回数字的向上取整,如math.ceil(4.1)
返回5
。 -
exp(x)
:返回e
的x
次幂,如math.exp(1)
返回2.718281828459045
。 -
fabs(x)
:返回浮点数的绝对值,如math.fabs(-10)
返回10.0
。 -
floor(x)
:返回数字的向下取整,如math.floor(4.9)
返回4
。 -
log(x,base)
:如math.log(math.e,math.e)
返回1.0
,math.log(100,10)
返回2.0
。 -
log10(x)
:返回以10
为基数的x
的对数,如math.log10(100)
返回2.0
。 -
max(x1,x2,...)
:返回给定参数的最大值,参数可以为序列。 -
min(x1,x2,...)
:返回给定参数的最小值,参数可以为序列。 -
modf(x)
:以元组的形式返回,(小数部分,整数部分)。两部分的数值符号与x
相同,整数部分以浮点型表示。 -
pow(x, y)
:xy
运算后的值。 -
round(x [,n])
:返回浮点数x
的四舍五入值,如给出n
值,则代表舍入到小数点后的位数。 -
sqrt(x)
:返回数字x
的平方根,返回类型为实数,如math.sqrt(4)
返回2.0
。 -
acos(x)
:返回x
的反余弦弧度值。 -
asin(x)
:返回x
的反正弦弧度值。 -
atan(x)
:返回x
的反正切弧度值。 -
atan2(y, x)
:返回给定的X
及Y
坐标值的反正切值。 -
cos(x)
:返回x
的弧度的余弦值。 -
hypot(x, y)
:返回欧几里德范数sqrt(x2+y2)
。 -
sin(x)
:返回x
弧度的正弦值。 -
tan(x)
:返回x
弧度的正切值。 -
degrees(x)
:将弧度转换为角度,如degrees(math.pi/2)
, 返回90.0
。 -
radians(x)
:将角度转换为弧度
除了上述常用的数学函数,math
库中还定义了两个常用的数学常量:
-
pi
——圆周率,一般以π
来表示。 -
e
——自然常数。
一般有两种常用方法来使用math
中的函数:
import math
# from math import *
print(math.ceil(4.5))
5
1.3 变量与赋值
在Python
中,变量是而且仅是一个名字而已。赋值语句用赋值运算符=
将右边符号(常量、变量、表达式、函数调用等)所代表的对象与左边的名字进行关联。这种关联不是一对一的,因此,一个对象可以有一个、多个,甚至没有名字与它关联。
Python
语法规定变量名(又称为标识符)可以包含大写字母、小写字母和数字(但不能以数字开头),以及特殊字符_
(下划线)。Python
中标识符是区分大小写的,例如,R
和r
是不同的标识符。
Python
保留了一些标识符作为保留关键字,这些关键字具有特定含义,不能被用作变量名,包括:and
、as
、assert
、break
、class
、continue
、def
、del
、elif
、else
、except
、exec
、finally
、for
、from
、global
、if
、import
、in
、is
、lambda
、not
、or
、pass
、print
、raise
、return
、try
、with
、while
、yield
等。
Python
允许多重赋值,语句x, y = 2, 3
表示将x
与2
关联,y
与3
关联。多重赋值带来很多方便,例如可用一条语句实现两个变量值的交换,运行下面的代码,可以看到变量x
和y
的值进行了交换:
x, y = 2, 3
x, y = y, x
print('x=', x)
print('y=', y)
x= 3
y= 2
1.4 数据和运算类型
数据类型
对象是Python
程序操作的核心,每个对象都有一个类型,它规定了程序可以对该类型对象进行哪些操作。类型分为标量的和非标量的。标量对象是不可分割的单个对象。非标量对象——例如字符串(String
)——通常不是单个的整体,而是有可分解的内部结构的。
Python
有4
种类型的标量对象:
-
int
对象用来表示整数。int
类型的对象可通过字面直接看出,如3
、9001
或-72
等。 -
float
对象用于表示实数。float
类型的对象也可通过字面很容易地看出来,如23.0
、9.48
或-72.28
。也可用科学计数法表示float
类型的对象,例如,3.9E3
代表3.9×103
,等同于3900
。 -
bool
是用来表示布尔值,即“真”或“假”,在Python
中分别用常量True
和False
表示。 -
None
对象表示空值。
对象和运算符可以构成表达式,表达式运算后会得到一个值,称为表达式的值,这个值就是具有某种类型的一个对象。例如,表达式7+2
表示int
类型的对象9
,而表达式7.0+2.0
表示float
类型的对象9.0
。Python
中==
运算符用于比较两个表达式的值是否相等,而!=
运算符用于比较两个表达式的值是否不相等。
算术运算符
int
和float
类型的运算符及其说明如下所示:
-
i+j
:表示对象i和j的和。如果i
和j
都是int
类型,运算结果为int
类型,如果至少有一个为float
类型,结果为float
类型。 -
i-j
:表示对象i
与j
的差。如果i
和j
都是int
类型,运算结果为int
类型,如果至少有一个为float
类型,结果为float
类型。 -
i*j
:表示对象i
与j
的乘积。如果i
和j
都是int
类型,运算结果为int
类型,如果至少有一个为float
类型,结果为float
类型。 -
i//j
:表示整数除法。例如8//2
的值为int
类型4
,9//4
的值为int
类型2
。即整数除法只取整数商,去掉小数部分。 -
i/j
:表示对象i
除以对象j
,无论i
和j
的类型是int
还是float
,结果都为float
,如10/4
结果为2.5
。 -
i%j
:表示int
对象i除以int
对象j
的余数,即数学的“模”运算。 -
i**j
:表示对象i
的j
次方。如果i
和j
都是int
类型,运算结果为int
类型,如果至少有一个为float
类型,结果为float
类型。 -
比较运算符
>
(大于)、>=
(大于等于)、<
(小于)和<=
(小于等于)的含义与其在数学上的含义一样。
算术运算符通常有优先级。例如,表达式x+y*2
的计算过程是先算y
乘以2
,然后将结果与x
相加。计算的顺序可以使用括号来改变,例如,(x+y)*2
表示先计算x
加y
,然后将结果乘以2
。
bool
类型上的运算有:
-
a and b
:与(and
)运算,如果bool
类型对象a
和b
都为True
,结果为True
,否则结果为False
。 -
a or b
:或(or
)运算,如果bool
类型对象a
和b
至少有一个为True
,结果为True
,否则结果为False
。 -
not a
:非(not
)运算,如果bool
类型对象a
为True
,结果为False
;如果为False
,结果为True
。