卢鹏博
发布于 2025-06-08 / 17 阅读
0
0

Python学习笔记(二)—— 输出与算数运算符

运算也是计算机语言中比较重要的一类,本节先讲算数运算符(后续会讲逻辑运算符)

有了输入、输出功能后,就能实现一些简单的人机交互功能。

注:以下将变量和变量值统称为变量,整数和浮点数统称为数(字),请注意区分!

输出

首先讲一下输出,这样我们就能在控制台上看到程序运行的结果。

基础语法: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)

除法取整

除法取整使用//表示。

当两个数(整数或浮点数)相除时,会得到商和余数,即

a\div b = p......r(0\leq r <p)

因此除法取整得到的就是商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}三者的大小


上一节:https://blog.math-enthusiast.top/archives/1748877417556

下一节:https://blog.math-enthusiast.top/archives/1749012839856


评论