目录
-
数值运算符
在Python中常用的数值运算符有8个,具体请见下表:
运算符 | 描述 | 示例 |
+ | 加法运算 | >>>a+b 13 |
- | 减法运算 | >>>a-b 3 |
* | 乘法运算 | >>>a*b 16 |
/ | 除法运算 | >>>a/b 4 |
// | 整除运算,产生两个数的整数商,即不大于商的最大整数 | >>>a//b 1 |
% | 取余运算,两个数之商的余数 | >>>a%b 2 |
-a | 取a的负值 | >>>-a -6 |
a**b | 幂方运算,计算a的b次方 | >>>a**b 8 |
例题:六年级一班共有25名学生,老师带了48张白纸,请问每个学生可以分到几张白纸,还剩几张?如果每个学生分2张,那么老师还缺几张 ?
解析:
student = 25
paper = 48
print(f"每个学生可以分到{paper//student}张纸")
print(f"老师还剩{paper%student}张纸")
print("如果每个学生分两张,那么老师还缺{}张纸".format(student*2-paper))
上述代码运行结果为:
每个学生可以分到1张纸
老师还剩23张纸
如果每个学生分两张,那么老师还缺2张纸
在数学中,有大括号{},中括号[],小括号(),但是在数值运算中,没有大括号和中括号,只有小括号。如果一个表达式中需要用到多层括号,就可以用小括号套小括号的方法,如下:
((1+3)*5+7)/(9-7)%3
//输出结果为:
1.5
在变量赋值运算中,常常也会用到表达式,其结果就是变量的值。如下:
a = 5
b = 2
c = a + b
c
7
在表达式进行赋值时,如果在表达式中出现变量本身,那么变量就以当前的值先进行运算,然后将运算结果再赋值给变量,如下:
a = 5
a = a + 2
a
7
在上例中,a=a+2相当于a=5+2,我们常将
a = a+n
这种形式的表达式简写为:a += n
对于+,-,*,/,//,%,**等运算都可以这样来表达:
a = 20
a -= 5
a
15
a *= 2
a
30
例题:将5800秒转化为时分秒的形式。
解析:
S=5800
print("{}时{}分{}秒".format((S//3600),(S%3600)//60,(S%3600)%60))
上述代码运行结果为:
1时36分40秒
-
数值运算函数
在Python中,预装的函数称为内置函数,我们可以直接使用这些函数来进行特定的数值运算,与运算符不同的是函数中存在参数,就像print()函数和format()方法一样,括号内是需要处理的数值或者变量。
print(*object,sep='',end='\n')
1.abs()函数
abs()函数是计算绝对值的函数,同数学内的绝对值是同一个含义,如:
|20| = |-20| = 20
对于复数来说,abs()是求模函数,同数学内的求模相同,如:
在使用abs()函数时,把需求绝对值或者求模的变量或者表达式放入括号内就可以了,语法如下:
abs(n)
例如:
a = 20
abs(a)
20
abs(-a)
20
a = 3+4j
abs(a)
5.0
2.divmod()函数
divmod()函数是计算商与余数的函数,语法如下:
divmod(m,n)
该函数是计算m与n的整数商和余数,并且通过元组形式返回整数商和余数。
在divmod()返回的元组中,第一个是整数商,第二个是余数,通常我们会把这两个值赋给两个不同的变量,如:
a,b = divmod(m,n)
a就是m和n的整数商,相当于:a = m // n
b就是m和n的余数,相当于b = m % n
3.max()函数和min()函数
max()函数是计算任意多个数字里面的最大值,而min()函数是计算任意多个数字里面的最小值。
S = [1,3,8,9,25,66,87,20,2099]
print(max(S))
print(min(S))
2099
1
4.pow()函数
pow()函数是计算幂次方运算的函数,语法如下:
pow(m,n)
相当于 m**n,即m的n次方
pow()函数可以有三个参数,如下:
pow(m,n,%t)
通常计算m的n次方的最后t位。如下:
pow(3,10,100)
49
5.round()函数
round()函数返回浮点数x的四舍五入值。语法如下:
round( x [, n] )
参数
x -- 数值表达式。
n -- 数值表达式,表示从小数点位数。
示例:
print('round(80.123456789,2):',round(80.123456789,2))
print('round(100.0000123456,2):',round(100.0000123456,6))
输出结果为:
round(80.123456789,2): 80.12
round(100.0000123456,2): 100.000012
练习:
1.某工厂一共有30个工人,现在需要生产500个产品,如果每个工人生产的一样多,问每个工人需要生产多少个,还剩下多少个产品没人上产 ?
解析:
peoples = 30
products = 500
m,n = divmod(products,peoples)
print(f"如果每个工人生产的一样多,每个工人需要生产{m}个,还剩{n}产品没有人生产.")
运行结果为:
如果每个工人生产的一样多,每个工人需要生产16个,还剩20产品没人生产.
2.银行存款年利率为3%,陽陽存入本金500元,请问7年后陽陽能取回本金和利息共计多少元 (保留小数点后两位)?
提示,本金和利息合计计算公式如下:
解析:
rmb = 500
years = 7
interesr_rate = 3
rmb_and_interesr_rate = round((rmb * (((100+interesr_rate)/100)**years)),2)
print(f"7年后陽陽的本金和利息共计{rmb_and_interesr_rate}元")
运行结果为:
7年后陽陽的本金和利息共计614.94元