2020年3月11日 第二章 基本数据类型、运算符和表达式 -1

2020-03-15  本文已影响0人  anivad

第二章 基本数据类型、运算符和表达式 -1

1.基本数据类型

2.运算符

3.常用内置函数

4.表达式、赋值语句与运算符的优先级

5.math库

数据类型概述

数据类型

Python我们身边的计算器

数值类型

数值类型的运算

数值类型

数值类型

>>> 3+5
8            #整数
>>> 3.14*2  
6.28         #浮点数
>>> 5+6j    #复数
(5+6j)

整数类型

>>> 127     #十进制数127
127
>>> 0b1111111    #二进制数
127
>>> 0o177   #八进制数
127  
>>> 0x7f     #十六进制数
127
>>>    #无论输入的是几进制,输出默认都以十进制显示数据

浮点数类型

>>> 77.56+88.98
166.54000000000002
>>> 3.14*2.5
7.8500000000000005
>>> 9.6e5
960000.0
>>> 12.56**20
9.5453704557821e+21

数值类型的运算

数值运算操作符

+、-、%、//、*、/、+-(正负号)、**

数值运算函数

math库

数值运算操作符

数值运算符优先级 ,由低→高

+、-%//*、/+-(正负号)**

运算符 描述
x+y 加法,x与y之和
x-y 减法,x与y之差
x*y 乘法,x与y之积
x/y 除法,x与y之商
x//y 整除(地板除),x与y之整数商,即:不大于x与y之商的最大整数。如5/3返回1;-5/3返回-2
x%y 取余,x与y之商的余数,也成为模运算
-x 负号,x的负值,即:x*(-1)
+x 正号,x本身
x**y 乘方,x的y次幂,即:x^y,如:2**3返回8

注意

>>> 77.56+8
85.56
>>> 6/3
2.0
>>> 8%3
2
>>> 8.0%3
2.0
>>>- 8%3
1
>>> 8%-3
-1
#用户输入一个整数,由计算机判断该数是偶数还是奇数
N=int(input("N="))
if N%2 == 0:
print("该数是偶数!")
else:
print("该数是奇数")

注意: x//y 返回不大于x与y之商的最大整数即结果向- ∞舍入

>>> 50//4
12
>>> 50.0//4
12.0
>>> -50//4
-13
>>> -50.0//4
-13.0

强调

>>> x=25
>>> x%=2   #相当于x=x%2
>>>print( x)
1
>>> y=7.0
>>> y*=3   #相当于y=y*3
>>> print(y)
21.0

数值运算函数

Python解释器自身提供了一些预装函数,用于完成对参数的特定运算,称为“内置函数”,其中包括的主要用于数值运算的函数如下表所示:

函数 说明
abs(x) 返回x的绝对值,x可以为整数、浮点数或整数,x为复数时,返回它的模
divmod(x,y) 返回x//y和x%y的结果
pow(x,y[,z]) 幂函数,返回x**y和或(x**y)%z的值
round(x[,n]) 对x进行四舍五入,保留n位小数;若省略n,则返回整数;若n为复数,则对小数点前n位进行四舍五入
max(x1,x2,......xn) 返回多个参数中的最大值,n的值没有限定
min(x1,x2,......xn) 返回多个参数中的最小值,n的值没有限定
sum([x1,x2,......xn]) 返回数值型序列中所有元素的和
>>> x=-25
>>> y=4
>>> abs(x)
25
>>>divmod(x,y)
(-7,3)
>>> pow(x,y)
390625
>>> pow(x,y,2)
1
>>> round(15.364,1)
15.4
>>>round(15.364,-1)
20.0
>>> max(10,20,15.38)
20
>>> min(10,20,15.38)
10
>>> sum((10,20,15.38))
45.38

math库

math库

常数 说明
math.e 自然对数,值为2.718281828459045
math.pi 圆周率pi,值为3.141592653589793
>>> import math
>>> math.pi*2**2
12.566370614359172
>>> PI=math.pi
>>> round(PI,3)*2**2
12.568

Math库的常用函数

函数 说明
math.fabs(x) 返回x的绝对值
math.ceil(x) 返回不小于x的最小整数(向上取整)
math.floor(x) 返回不大于x的最大整数(向下取整)
math.trunc(x) 返回x的整数部分
math.modf(x) 返回x的小数和整数
math.fmod(x,y) 返回x与y的余数,注意与%返回结果略有不同
math.sqrt(x) 返回x的平方根
math.pow(x) 返回x的y次方
math.fsum([x,y,...]) 返回序列中各元素之和
math.factoria(x) 返回x的阶乘

【例2-1】常用math库函数举例

>>> import math
>>> math.fabs(-5)       #返回-5绝对值,结果为浮点数5.0
5.0
>>> math.ceil(5.2)      #返回不小于5.2的最小整数
6
>>> math.ceil(-5.2)     #返回不小于-5.2的最小整数
-5
>>> math.floor(5.2)         #返回不大于5.2的最大整数
5
>>> math.floor(-5.2)    #返回不大于-5.2的最大整数
-6
>>> math.trunc(5.6)     #返回5.2的整数部分
5
>>> math.modf(5.2)      #返回5.2的小数和整数
(0.20000000000000018, 5.0)
>>> math.fmod(5,3)      #返回5除以2的余数
2.0

【例2-1】常用math库函数举例

>>> math.sqrt(3)          #返回正数的平方根
1.7320508075688772
>>> math.sqrt(-3)         #负数出错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: math domain error
>>> math.pow(5,3)          #返回5的3次方
125.0
>>> 0.1+0.2+0.3         
0.6000000000000001
>>> math.fsum([0.1, 0.2, 0.3])     #精确求和
0.6
>>> math.factorial(5)    #返回5的阶乘
120

【例2-2】math库函数应用实例。分别输入三角形的三条边长,求三角形的面积、周长、最长边长和最短边长。

提示

  1. 根据海伦公式,p=(a+b+c)/2,S=√[p(p-a)(p-b)(p-c)]
  2. 假设输入的三条边满足 a>0 and b>0 and c>0 and a+b>c and b+c>a and a+c>b
#E2-2.py
import math
a=float(input("a="))
b=float(input("b="))
c=float(input("c="))
p=(a+b+c)/2
area=math.sqrt(p*(p-a)*(p-b)*(p-c))
circum=a+b+c
max_side=max(a,b,c)
min_side=min(a,b,c)
print("面积:",area)
print("周长:",circum)
print("长边为:",max_side)
print("短边为 :",min_side)

math库的其它函数(了解)

函数 说明
math.gcd(x,y) 返回整数x和y的最大公约数
math.degrees(x) 将弧度转换为度
math.radians(x) 将度转换为弧度
math.sin(x) 返回x(弧度)的三角正弦值
math.asin(x) 返回x的反三角正弦值
math.cos(x) 返回x(弧度)的三角余弦值
math.acos(x) 返回x的反三角余弦值
math.tan(x) 返回x(弧度)的三角正切值
math.atan(x) 返回x的反三角正切值
math.atan2(x,y) 返回x/y的反三角正切值

赋值语句

>>> a=3
>>> b=5
>>> a+b
8
>>> a,b=3,5
>>> a+b
8
>>> a=3;b=5
>>> a+b
8
>>> x=y=9
>>> x
9
>>> y
9

【例2-3】编写程序输入两个数分别赋给变量x和y,交换变量x和y的值,并输出

#方法一
x=float(input("x="))
y=float(input("y="))
t=x
x=y
y=t
print("x=",x)
print("y=",y)
#方法二
x=float(input("x="))
y=float(input("y="))
x,y=y,x
print("x=",x)
print("y=",y)
上一篇下一篇

猜你喜欢

热点阅读