运算也是计算机语言中比较重要的一类,本节先讲算数运算符(后续会讲逻辑运算符)
有了输入、输出功能后,就能实现一些简单的人机交互功能。
注:以下将变量和变量值统称为变量,整数和浮点数统称为数(字),请注意区分!
输出
首先讲一下输出,这样我们就能在控制台上看到程序运行的结果。
基础语法:print(a) # a 可以是变量,可以是独立的字符串(要有引号)
例:
a = 10
print(a)
输出结果:
10
如果a是字符串,a=“b和c的值分别为:b,c”
里面含有你想要输出的变量(后面的b和c),那么我们有以下两种方法输出:
1.格式化输出
如果b(c同理)是整数,将
b
换成%d
如果b是浮点数,将
b
换成%lf
(或%f
)如果b是字符串,将
b
换成%s
输出方法为:print(“b的值为%d”%b) # 只输出1个变量值
以及:print("b和c的值分别为:%d,%d"%(b,c))# 输出2个及以上变量值
因此我们可以写成下面代码:
b = 10
c = 20
print("b和c的值分别为:%d,%d"%(b,c))
输出结果:
b和c的值分别为:10,20
2.自动格式化字符f
第一种方法不仅要弄清楚数据的类型,还要在后面的%(b,c)
中写出引用对象,比较麻烦。
而第二种方法既不需要明确数据类型,也不需要在后面写引用对象,只要在引号前加个格式化字符f
,以及在引号中把要输出的变量的外面加上大括号{}
即可。
例如:
print(f"b={b}")
因此我们可以改写上述代码,使得代码更加简洁易懂:
b = 10
c = 20
print(f"b和c的值分别为:{b},{c}")
输出结果:
b和c的值分别为:10,20
算数运算符
运算符可以对单个变量(值)使用,也可以对多个变量使用。本节讲述算数运算符,算数运算符必须有两个及以上的数(或字符串)才可运算。
加法
两个变量可以做加法。
case1:数字与数字加法
按照正常数学加法运算即可。不过要注意浮点数相加时由于计算机的特性(由于二进制及精度),会导致得到的结果与实际不符(会有误差)。
例:
a = 10
b = 20
print(a+b)
输出结果:
30
当然也可以数字和变量计算或者只用数字:
a = 10
print(a+10.1)
print(10+20.5)
输出结果:
20。1
30。5
但是浮点数相加可能并不会像你想象的那样,实际结果可能会有些误差:
print(0.1+0.2)
输出结果:0.30000000000000004
原因在于:计算机以二进制的形式存储数据,且这个二进制数据是有限的。而0.1和0.2在二进制中都不是整数,因此计算机截取了一部分相加,再转为十进制,因此也就有了误差。
其它一些有意思的尝试:
print(1+0.2)
print(1+1.2)
print(1+0.93)
输出结果:
1.2
3.3000000000000003
1.9300000000000002
case2:字符串与字符串
在字符串的加法中,是直接将字符串进行拼接。
例:
a = "ing"
print("str"+"ing")
print("str"+f"{a}")
输出结果:
string
string
字符串类型的数字也可以做加法:
print("1"+"2")
print("1"+"个")
输出结果:
12
1个
但是要注意:数字和字符串不能做加法!
print(1+"2")
TypeError: unsupported operand type(s) for +: 'int' and 'str'
减法
减法只能用在数与数之间。
例:
print(2-1)
print(1-2)
输出结果:
1
-1
乘法
乘法使用*
表示,需要注意的是,字符串与整数直接可以用乘法表示重复。
case1:数与数乘法
print(3*4)
print(1.1*2.2)
输出结果:
12
2.4200000000000004
cas2:整数与字符串乘法
print("Hello "*4)
print(3*"Hello ")
输出结果:
Hello Hello Hello Hello
Hello Hello Hello
但是要注意只能整数与字符串相乘,不能浮点数(即使是4.0也不行,因为4.0是浮点数)或者字符串与字符串相乘。
除法
普通除法
和正常数学上的除法一样,0不能做除数。
Python中除法用/
表示。
print(2/1)
print(3/2)
print(8/3)
输出结果:
2.0
1.5
2.6666666666666665
需要注意的是,即使得到数学计算结果是整数(2/1),程序也会将它转为浮点数(2.0)
除法取整
除法取整使用//
表示。
当两个数(整数或浮点数)相除时,会得到商和余数,即
因此除法取整得到的就是商p,也即:
a // b = p
例:
print(2//1)
print(3//2)
print(8//3)
print(-8//3)
输出结果:
2
1
2
-3
除法取余
和除法取整类似,除法取余是取的余数。
print(5%2)
print(8%3)
print(3.5%2)
输出结果:
1
2
1.5
幂次
Python原生支持幂次运算,不需要引入其它库。
使用格式:a**b
(注意不是^,^是逻辑运算符异或运算)
例:
print(2**5)
print(2.5**2)
print(3.14**2.71)
输出结果:
32
6.25
22.21668954600232
练习
上节练习
交换a,b,c三个变量的值为b,c,a。即若a=1,b=2,c=3交换后a=2,b=3,c=1。(如果更多变量呢?)
分析:只需引入一个中间变量d即可。
# 定义变量
a = 1
b = 2
c = 3
# 交换顺序
d = a
a = b
b = c
c = d
本节练习
输出下式数学表达式的结果:
\{3.14+[(2.71-1.41)*1.73)]\div 2.5 \}\mod 3比较\ln 7.77\ ,\ln 7.777\ ,e^{e-2}三者的大小
上一节:
下一节: