人生苦短,我选Python

前文传送门

小白学 Python(1):开篇

小白学 Python(2):基础数据类型(上)

小白学 Python(3):基础数据类型(下)

小白学 Python(4):变量基础操作

前言

前面我们讲了变量的基础操作,本文我们接着讲运算符。

运算符根据用途可以分为以下这么几类:

  • 算术运算符
  • 比较运算符
  • 赋值运算符
  • 逻辑运算符
  • 成员运算符
  • 身份运算符

本篇我们先介绍前两个,算术运算符和比较运算符。

算数运算符

算术运算符顾名思义就是我们做数字计算的时候用到的运算符,当然,加减乘除肯定都有,除此之外呢,还有程序中常见的取摸、取幂和取整除。详细如下表:

运算符 描述
+
-
*
/
% 取模 - 返回除法的余数
** 幂 - 返回x的y次幂
// 取整除 - 向下取接近除数的整数

我们来看几个简单的例子:

a = 5
b = 10 c = a + b
print("1. c 的值为:", c) c = a - b
print("2. c 的值为:", c) c = a * b
print("3. c 的值为:", c) c = a / b
print("4. c 的值为:", c) c = a % b
print("5. c 的值为:", c) c = a ** b
print("6. c 的值为:", c) # 改变 a 和 b 的值 a = 10
b = 5 c = a // b
print("7. c 的值为:", c)

计算结果如下:

1. c 的值为: 15
2. c 的值为: -5
3. c 的值为: 50
4. c 的值为: 0.5
5. c 的值为: 5
6. c 的值为: 9765625
7. c 的值为: 2

上面的栗子都整形的计算,如果是不同类型的数据运算,会发生隐式类型转换。

类型转换的规则由低等向高等转换。

bool(布尔) < int(整形) < float(浮点型) < complex(复数)

我们再看几个栗子:

a = 1
b = 1.5
c = a + b
print("8. c 的值为:", c, ",c 的类型为:", type(c)) d = True
e = c + d
print("9. e 的值为:", e, ",e 的类型为:", type(e)) f = 2 + 4j
g = e + f
print("10. g 的值为:", g, ",g 的类型为:", type(g))

计算结果如下:

8. c 的值为: 2.5 ,c 的类型为: <class 'float'>
9. e 的值为: 3.5 ,e 的类型为: <class 'float'>
10. g 的值为: (5.5+4j) ,g 的类型为: <class 'complex'>

注意: 在算术运算时,True代表1,False代表0

运算内置函数

内置的意思就是安装好就有,无需额外安装,就比如我们每次买回来的新手机都有一堆内置的软件:)

Python 提供的内置函数如下图:

我们这里选取一些和计算相关的常用的内置函数做一些简单的讲解和演示(个人觉得演示更加的重要):

函数 含义
abs(x) 返回一个数的绝对值。实参可以是整数或浮点数。如果实参是一个复数,返回它的模。
complex([real[, imag]]) 返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。
divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。
float([x]) 返回从数字或字符串 x 生成的浮点数。
pow(x, y[, z]) 返回 x 的 y 次幂;如果 z 存在,则对 z 取余(比直接 pow(x, y) % z 计算更高效)。两个参数形式的 pow(x, y) 等价于幂运算符: x**y。
round(number[, ndigits]) 返回 number 舍入到小数点后 ndigits 位精度的值。 如果 ndigits 被省略或为 None,则返回最接近输入值的整数。
sum(iterable[, start]) 从 start 开始自左向右对 iterable 中的项求和并返回总计值。 start 默认为 0。 iterable 的项通常为数字,开始值则不允许为字符串。
bin(x) 将一个整数转变为一个前缀为“0b”的二进制字符串。
oct(x) 将一个整数转变为一个前缀为“0o”的八进制字符串。
hex(x) 将整数转换为以“0x”为前缀的小写十六进制字符串。
chr(i) 返回 Unicode 码位为整数 i 的字符的字符串格式。
ord(c) 对表示单个 Unicode 字符的字符串,返回代表它 Unicode 码点的整数。
bool([x]) 返回一个布尔值,True 或者 False。

测试示例如下:

print("11. -1 的绝对值为:", abs(-1))

print("12. 创建的复数为:", complex(1, -2))

print("13. 商和余数为:", divmod(10, 3))

print("14. 浮点型转换:", float(1))

print("15. 10的3次幂为:", pow(10, 3))

print("16. 四舍五入为:", round(5.5))

print("17. 集合求和结果为:", sum({1, 2, 3 ,4}))

print("18. 整数20的二进制为:", bin(20))

print("19. 整数20的八进制为:", oct(20))

print("20. 整数20的十六进制为:", hex(20))

print("21. Unicode 为 97 的字符串:", chr(97))

print("22. 字符串 a 的 Unicode 码:", ord('a'))

print("23. 123 的 boolean 值为:", bool(123))

print("24. 空字符串的 boolean 的值为:", bool(''))

测试结果如下:

11. -1 的绝对值为: 1
12. 创建的复数为: (1-2j)
13. 商和余数为: (3, 1)
14. 浮点型转换: 1.0
15. 10的3次幂为: 1000
16. 四舍五入为: 6
17. 集合求和结果为: 10
18. 整数20的二进制为: 0b10100
19. 整数20的八进制为: 0o24
20. 整数20的十六进制为: 0x14
21. Unicode 为 97 的字符串: a
22. 字符串 a 的 Unicode 码: 97
23. 123 的 boolean 值为: True
24. 空字符串的 boolean 的值为: False

比较运算符

从字面意思来理解,比较运算符就是比较两个数值或者字符串类型的数据,返回一个布尔值。

比较运算符有以下几种:

运算符 描述
== 等于 - 比较对象是否相等
!= 不等于 - 比较两个对象是否不相等
> 大于 - 返回x是否大于y
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。
>= 大于等于 - 返回x是否大于等于y。
<= 小于等于 - 返回x是否小于等于y。

下面我们举几个栗子:

a = 5
b = 10 if (a == b):
print("25. a 等于 b")
else:
print("25. a 不等于 b") if (a != b):
print("26. a 不等于 b")
else:
print("26. a 等于 b") if (a < b):
print("27. a 小于 b")
else:
print("27. a 大于等于 b") if (a > b):
print("28. a 大于 b")
else:
print("28. a 小于等于 b") if (a <= b):
print("29. a 小于等于 b")
else:
print("29. a 大于 b") if (b >= a):
print("30. b 大于等于 a")
else:
print("30. b 小于 a")

结果如下:

25. a 不等于 b
26. a 不等于 b
27. a 小于 b
28. a 小于等于 b
29. a 小于等于 b
30. b 大于等于 a

示例代码

本系列的所有代码小编都会放在代码管理仓库 Github 和 Gitee 上,方便大家取用。

示例代码-Github

示例代码-Gitee

小白学 Python(5):基础运算符(上)的更多相关文章

  1. 小白学 Python(6):基础运算符(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  2. 小白学 Python(7):基础流程控制(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  3. 小白学 Python(9):基础数据结构(列表)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  4. 小白学 Python(12):基础数据结构(字典)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  5. 小白学 Python(14):基础数据结构(集合)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  6. 小白学 Python(16):基础数据类型(函数)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  7. 小白学 Python(23):Excel 基础操作(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  8. 小白学 Python(2):基础数据类型(上)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基础数据类型.啥?你问我为啥要先了解基础数据类型? 为了你的生命安全,还是乖乖听我 B ...

  9. 小白学 Python(3):基础数据类型(下)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串. ...

随机推荐

  1. C#中 CS1752无法嵌入互操作类型"OPCServerClass"。请改用适用的接口。

    使用C#+VS开发OPC程序是,调用Interop.OPCAutomation中的类时,提示无法嵌入互操作类型"OPCServerClass".请改用适用的接口. 首先说一下它的含 ...

  2. rocketmq学习(一) rocketmq介绍与安装

    1.消息队列介绍 消息队列本质上来说是一个符合先进先出原则的单向队列:一方发送消息并存入消息队列尾部(生产者投递消息),一方从消息队列的头部取出消息(消费者消费消息).但对于一个成熟可靠的消息队列来说 ...

  3. CCPC桂林

    在得知我们队伍前往桂林参加CPPC区域赛后,我是非常激动的,因为我们网络赛并没有得到名额,如果不是新都赠予我们名额,我们都没有出去打比赛的机会,同时,我们也不想浪费这个名额,我们也想打出成绩来,于是我 ...

  4. 14 (OC)* UIView和UILayer

    总接来说就是如下几点: 1:每个 UIView 内部都有一个 CALayer 在背后提供内容的绘制和显示,并且 UIView 的尺寸样式都由内部的 Layer 所提供.两者都有树状层级结构,layer ...

  5. java接收控制台输入

    java控制台输入语句: Scanner sc = new Scanner(System.in); 通过一个变量,例如 int r; r = sc.nextInt();   例子: public st ...

  6. 初识Matplotlib-01

    初识数据分析 大数据是一个含义广泛的术语,是指数据集,如此庞大而复杂的,他们需要专门设计的硬件和软件工具进行处理.该数据集通常是万亿或EB的大小.这些数据集收集自各种各样的来源:传感器,气候信息,公开 ...

  7. 为什么一个标准的反相器中 P 管的宽长比要比 N 管的大呢?

    和载流子有关.P 管是空穴导电,而 N 管是电子导电,电子的迁移率大于空穴.所以在同样的电场下,N 管的电流要大于 P 管,因此要增大 P 管的宽长比,使之对称,这样才能使得两者上升下降时间相等.高低 ...

  8. 转:LinkedHashMap和HashMap的比较使用

    import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.uti ...

  9. 错误:java.lang.NoClassDefFoundError: org/jaxen/JaxenException

    tomcat运行时候报错: java.lang.NoClassDefFoundError: org/jaxen/JaxenException at org.dom4j.DocumentFactory. ...

  10. chsime.exe cpu占用高

    打开管理员的命令提示符,运行 if exist "%SystemRoot%\System32\InputMethod\CHS\ChsIME.exe" (takeown /f &qu ...