第二部分 Python入门

什么是计算机语言

计算机就是一台用来计算机的机器,人让计算机干什么计算机就得干什么!
需要通过计算机的语言来控制计算机(编程语言)!
计算机语言其实和人类的语言没有本质的区别,不同点就是交流的主体不同!
计算机语言发展经历了三个阶段:

机器语言

  • 机器语言通过二进制编码来编写程序效率好,编写起来太麻烦

符号语言(汇编)

  • 使用符号来代替机器码
  • 编写程序时,不需要使用二进制,而是直接编写符号
  • 编写完成后,需要将符号转换为机器码,然后再由计算机执行
    符号转换为机器码的过程称为汇编
  • 将机器码转换为符号的过程,称为反汇编
  • 汇编语言一般只适用于某些硬件,兼容性比较差

高级语言

  • 高级语言的语法基本和现在英语语法类似,并且和硬件的关系没有那么紧密了
  • 也就是说我们通过高级语言开发程序可以在不同的硬件系统中执行
  • 并且高级语言学习起来也更加的容易,现在我们知道的语言基本都是高级语言
  • C、C++、C#、Java、JavaScript、Python 。。。

编译型语言和解释型语言

计算机只能识别二进制编码(机器码),所以任何的语言在交由计算机执行时必须要先转换为机器码,也就是像 print(‘hello’) 必需要转换为类似 1010101 这样的机器码 根据转换时机的不同,语言分成了两大类:

编译型语言

  • C语言
  • 编译型语言,会在代码执行前将代码编译为机器码,然后将机器码交由计算机执行
  • a(源码) —编译—> b(编译后的机器码)
  • 特点:
    执行速度特别快
    跨平台性比较差

解释型语言

  • Python JS Java
  • 解释型语言,不会在执行前对代码进行编译,而是在执行的同时一边执行一边编译
  • a(源码)—解释器—> 解释执行
  • 特点:
    执行速度比较慢
    跨平台性比较好

Python的介绍

Python是解释型语言

Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比于C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。

Life is short you need Python (人生苦短,我用Python)

Python的用途:
WEB应用
Facebook 豆瓣 。。。
爬虫程序
科学计算
自动化运维
大数据(数据清洗)
云计算
桌面软件/游戏
人工智能
。。。

Python开发环境搭建

开发环境搭建就是安装Python的解释器
Python的解释器分类:
CPython(官方)
用c语言编写的Python解释器
PyPy
用Python语言编写的Python解释器
IronPython
用.net编写的Python解释器
Jython
用Java编写的Python解释器

Python的交互界面

当我们通过命令行来输入Python,所进入到的界面就是Python的交互界面

image.png

结构:

  1. 版本和版权声明:
  2. Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
  3. Type "help", "copyright", "credits" or "license" for more information.
  4. 命令提示符:
  5. >>>
  6. 在命令提示符后可以直接输入Python的指令!输入完的指令将会被Python的解释器立即执行!
  7. 安装Python的同时,会自动安装一个Python的开发工具IDLE,通过IDLE也可以进入到交互模式
  8. 但是不同的是,在IDLE中可以通过TAB键来查看语句的提示。
  9. IDLE实际上就是一个交互界面,但是他可以有一些简单的提示,并且可以将代码保存

交互模式只能你输入一行代码,它就是执行一行,所以他并不适用于我们日常的开发!
仅可以用来做一些日常的简单的测试!

我们一般会将Python代码编写到一个py文件中,然后通过python指令来执行文件中的代码

相关概念

1.表达式

  1. 表达式就是一个类似于数学公式的东西<br /> 比如:10 + 5 8 - 4<br /> 表达式一般仅仅用了计算一些结果,不会对程序产生实质性的影响<br /> 如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出

2.语句

  1. 在程序中语句一般需要完成某种功能,比如打印信息、获取信息、为变量赋值。。。<br /> 比如:<br /> print()<br /> input()<br /> a = 10<br /> 语句的执行一般会对程序产生一定的影响<br /> 在交互模式中不一定会输出语句的执行结果

3.程序(program)

  1. 程序就是由一条一条的语句和一条一条的表达式构成的。

4.函数(function)

  1. 函数就是一种语句,函数专门用来完成特定的功能<br /> 函数长的形如:xxx()

函数的分类:

内置函数:
  1. Python解释器提供的函数,可以在Python中直接使用

自定义函数
  1. 由程序员自主的创建的函数<br /> 当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数

函数的两个要素:

  1. **参数**<br /> ()中的内容就是函数的参数。有参数,也可以有多个参数,多个参数之间使用,隔开<br /> **返回值**<br /> 返回值是函数的返回结果,不是所有的函数都有返回值

基本语法

1.在Python中严格区分大小写
2.Python中的每一行就是一条语句,每条语句以换行结束
3.Python中每一行语句不要过长(规范中建议每行不要超过80个字符)
“rulers”:[80],
4.一条语句可以分多行编写,多行编写时语句后边以\结尾
5.Python是缩进严格的语言,所以在Python中不要随便写缩进
6.在Python中使用#来表示注释,#后的内容都属于注释,注释的内容将会被解释器所忽略
我们可以通过注释来对程序进行解释说明,一定要养成良好的编写注释的习惯
注释要求简单明了,一般习惯上#后边会跟着一个空格

字面量和变量

字面量就是一个一个的值,比如:1,2,3,4,5,6,‘HELLO’。字面量所表示的意思就是它的字面的值,在程序中可以直接使用字面量

变量(variable)变量可以用来保存字面量,并且变量中保存的字面量是不定的。变量本身没有任何意思,它会根据不同的字面量表示不同的意思

一般我们在开发时,很少直接使用字面量,都是将字面量保存到变量中,通过变量来引用字面量

变量和标识符

  1. # Python中使用变量,不需要声明,直接为变量赋值即可
  2. a = 10
  3. # 不能使用没有进行过赋值的变量
  4. # 如果使用没有赋值过的变量,会报错 NameError: name 'b' is not defined
  5. # print(b)
  6. # Python是一个动态类型的语言,可以为变量赋任意类型的值,也可以任意修改变量的值
  7. a = 'hello'
  8. # print(a)
  9. # 标识符
  10. # 在Python中所有可以自主命名的内容都属于标识符
  11. # 比如:变量名、函数名、类名
  12. # 标识符必须遵循标识符的规范
  13. # 1.标识符中可以含有字母、数字、_,但是不能使用数字开头
  14. # 例子:a_1 _a1 _1a
  15. # 2.标识符不能是Python中的关键字和保留字
  16. # 也不建议使用Python中的函数名作为标识符,因为这样会导致函数被覆盖
  17. # 3.命名规范:
  18. # 在Python中注意遵循两种命名规范:
  19. # 下划线命名法
  20. # 所有字母小写,单词之间使用_分割
  21. # max_length min_length hello_world xxx_yyy_zzz
  22. # 帕斯卡命名法(大驼峰命名法)
  23. # 首字母大写,每个单词开头字母大写,其余字母小写
  24. # MaxLength MinLength HelloWorld XxxYyyZzz
  25. #
  26. # 如果使用不符合标准的标识符,将会报错 SyntaxError: invalid syntax
  27. _b123 = 20
  28. # print(_b123)
  29. # print = 123
  30. # print(print)

数据类型

数据类型指的就是变量的值得类型,也就是可以为变量赋哪些值

1.数值:整型, 浮点型,复数

  1. # 在Python数值分成了三种:整数、浮点数(小数)、复数
  2. # 在Python中所有的整数都是int类型
  3. a = 10
  4. b = 20
  5. # Python中的整数的大小没有限制,可以是一个无限大的整数
  6. # c = 999999999999999999999999999999999999999999999 ** 100
  7. # 如果数字的长度过大,可以使用下划线作为分隔符
  8. c = 123_456_789
  9. # d = 0123 10进制的数字不能以0开头
  10. # 其他进制的整数,只要是数字打印时一定是以十进制的形式显示的
  11. # 二进制 0b开头
  12. c = 0b10 # 二进制的10
  13. # 八进制 0o开头
  14. c = 0o10
  15. # 十六进制 0x开头
  16. c = 0x10
  17. # 也可以通过运算符来对数字进行运算,并且可以保证整数运算的精确
  18. c = -100
  19. c = c + 3
  20. # 浮点数(小数),在Python中所有的小数都是float类型
  21. c = 1.23
  22. c = 4.56
  23. # 对浮点数进行运算时,可能会得到一个不精确的结果
  24. c = 0.1 + 0.2 # 0.30000000000000004
  25. print(c)

2.字符串

字符串介绍:
  1. # 字符串(str)
  2. # 字符串用来表示一段文本信息,字符串是程序中使用的最多的数据类型
  3. # 在Python中字符串需要使用引号引起来
  4. s = 'hello'
  5. # s = abc # 字符串必须使用引号引起来,不使用不是字符串
  6. # 引号可以是双引号,也可以是单引号,但是注意不要混着用
  7. s = 'hello'
  8. s = "hello"
  9. # s = 'hello" 引号不能混合使用 SyntaxError: EOL while scanning string literal
  10. # 相同的引号之间不能嵌套
  11. # s = "子曰:"学而时习之,乐呵乐呵!""
  12. s = '子曰:"学而时习之,乐呵乐呵!"'
  13. # 长字符串
  14. # 单引号和双引号不能跨行使用
  15. s = '锄禾日当午,\
  16. 汗滴禾下土,\
  17. 谁知盘中餐,\
  18. 粒粒皆辛苦'
  19. # 使用三重引号来表示一个长字符串 ''' """
  20. # 三重引号可以换行,并且会保留字符串中的格式
  21. s = '''锄禾日当午,
  22. 汗滴禾下土,
  23. 谁知盘中餐,
  24. 粒粒皆辛苦'''
  25. # 转义字符
  26. # 可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容
  27. # 例子:
  28. # \' 表示'
  29. # \" 表示"
  30. # \t 表示制表符
  31. # \n 表示换行符
  32. # \\ 表示反斜杠
  33. # \uxxxx 表示Unicode编码
  34. s = "子曰:\"学而时习之,\\\\n乐呵乐呵!\""
  35. s = '\u2250'
  36. print(s)

格式化字符串
  1. # 格式化字符串
  2. a = 'hello'
  3. # 字符串之间也可以进行加法运算
  4. # 如果将两个字符串进行相加,则会自动将两个字符串拼接为一个
  5. a = 'abc' + 'haha' + '哈哈'
  6. # a = 123
  7. # 字符串只能不能和其他的类型进行加法运算,如果做了会出现异常 TypeError: must be str, not int
  8. # print("a = "+a) # 这种写法在Python中不常见
  9. a = 123
  10. # print('a =',a)
  11. # 在创建字符串时,可以在字符串中指定占位符
  12. # %s 在字符串中表示任意字符
  13. # %f 浮点数占位符
  14. # %d 整数占位符
  15. b = 'Hello %s'%'孙悟空'
  16. b = 'hello %s 你好 %s'%('tom','孙悟空')
  17. b = 'hello %3.5s'%'abcdefg' # %3.5s字符串的长度限制在3-5之间
  18. b = 'hello %s'%123.456
  19. b = 'hello %.2f'%123.456
  20. b = 'hello %d'%123.95
  21. b = '呵呵'
  22. # print('a = %s'%a)
  23. # 格式化字符串,可以通过在字符串前添加一个f来创建一个格式化字符串
  24. # 在格式化字符串中可以直接嵌入变量
  25. c = f'hello {a} {b}'
  26. print(f'a = {a}')

复制字符串
  1. # 创建一个变量来保存你的名字
  2. name = '孙悟空'
  3. # 使用四种方式来输出,欢迎 xxx 光临
  4. # 拼串
  5. print('欢迎 '+name+' 光临!')
  6. # 多个参数
  7. print('欢迎',name,'光临!')
  8. # 占位符
  9. print('欢迎 %s 光临!'%name)
  10. # 格式化字符串
  11. print(f'欢迎 {name} 光临!')
  12. # 字符串的复制(将字符串和数字相乘)
  13. a = 'abc'
  14. # * 在语言中表示乘法
  15. # 如果将字符串和数字相乘,则解释器会将字符串重复指定的次数并返回
  16. a = a * 20
  17. print(a)

3.空值和布尔值

  1. # 布尔值(bool)
  2. # 布尔值主要用来做逻辑判断
  3. # 布尔值一共有两个 True 和 False
  4. # True表示真 False表示假
  5. a = True
  6. a = False
  7. # print('a =',a)
  8. # 布尔值实际上也属于整型,True就相当于1,False就相当于0
  9. # print(1 + False)
  10. # None(空值)
  11. # None专门用来表示不存在
  12. b = None
  13. print(b)

类型检查

  1. # 通过类型检查,可以检查只能值(变量)的类型
  2. a = 123 # 数值
  3. b = '123' # 字符串
  4. # print('a =',a)
  5. # print('b =',b)、
  6. # type()用来检查值的类型
  7. # 该函数会将检查的结果作为返回值返回,可以通过变量来接收函数的返回值
  8. c = type('123')
  9. c = type(a)
  10. # print(type(b))
  11. print(type(1)) # <class 'int'>
  12. print(type(1.5)) # <class 'float'>
  13. print(type(True)) # <class 'bool'>
  14. print(type('hello')) # <class 'str'>
  15. print(type(None)) # <class 'NoneType'>

对象(object)

  • Python是一门面向对象的语言
  • 一切皆对象!
  • 程序运行当中,所有的数据都是存储到内存当中然后再运行的!
  • 对象就是内存中专门用来存储指定数据的一块区域
  • 对象实际上就是一个容器,专门用来存储数据
  • 像我们之前学习的数值、字符串、布尔值、None都是对象

对象的结构

  • 每个对象中都要保存三种数据
    • id(标识)

      id用来标识对象的唯一性,每一个对象都有唯一的id
      对象的id就相当于人的身份证号一样
      可以通过id()函数来查看对象的id
      id是由解析器生成的,在CPython中,id就是对象的内存地址
      对象一旦创建,则它的id永远不能再改变

  • type(类型)

    类型用来标识当前对象所属的类型
    比如:int str float bool 。。。
    类型决定了对象有哪些功能
    通过type()函数来查看对象的类型
    Python是一门强类型的语言,对象一旦创建类型便不能修改

  • value(值)

    值就是对象中存储的具体的数据
    对于有些对象值是可以改变的
    对象分成两大类,可变对象 不可变对象
    可变对象的值可以改变
    不可变对象的值不能改变,之前学习的对象都是不可变对象

变量和对象

  • 对象并没有直接存储到变量中,在Python中变量更像是给对象起了一个别名
  • 变量中存储的不是对象的值,而是对象的id(内存地址),
    当我们使用变量时,实际上就是在通过对象id在查找对象
  • 变量中保存的对象,只有在为变量重新赋值时才会改变
  • 变量和变量之间是相互独立的,修改一个变量不会影响另一个变量

类型转换

  • 所谓的类型转换,将一个类型的对象转换为其他对象
  • 类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象
  1. # 类型转换四个函数 int() float() str() bool()
  2. # int() 可以用来将其他的对象转换为整型
  3. # 规则:
  4. # 布尔值:True -> 1 False -> 0
  5. # 浮点数:直接取整,省略小数点后的内容
  6. # 字符串:合法的整数字符串,直接转换为对应的数字
  7. # 如果不是一个合法的整数字符串,则报错 ValueError: invalid literal for int() with base 10: '11.5'
  8. # 对于其他不可转换为整型的对象,直接抛出异常 ValueError
  9. # float() 和 int()基本一致,不同的是它会将对象转换为浮点数
  10. # str() 可以将对象转换为字符串
  11. # True -> 'True'
  12. # False -> 'False'
  13. # 123 -> '123'
  14. # 。。。
  15. # bool() 可以将对象转换为布尔值,任何对象都可以转换为布尔值
  16. # 规则:对于所有表示空性的对象都会转换为False,其余的转换为True
  17. # 哪些表示的空性:0 、 None 、 '' 。。。
  18. a = True
  19. # 调用int()来将a转换为整型
  20. # int()函数不会对原来的变量产生影响,他是对象转换为指定的类型并将其作为返回值返回
  21. # 如果希望修改原来的变量,则需要对变量进行重新赋值
  22. a = int(a)
  23. a = False
  24. a = int(a)
  25. a = '123'
  26. a = int(a)
  27. a = 11.6
  28. a = int(a)
  29. a = '11.5'
  30. # a = int(a)
  31. a = None
  32. # a = int(a)
  33. a = 1
  34. a = float(a)
  35. a = False
  36. a = float(a)
  37. a = 123
  38. a = str(a)
  39. a = None
  40. a = bool(a)
  41. print('a =',a)
  42. print('a的类型是',type(a))
  43. # b = 456
  44. # print('hello'+str(b))

运算符(操作符)

  • 运算符可以对一个值或多个值进行运算或各种操作
  • 比如 + 、-、= 都属于运算符

运算符的分类:

1.算术运算符
  1. # 算术运算符
  2. # + 加法运算符(如果是两个字符串之间进行加法运算,则会进行拼串操作)
  3. # - 减法运算符
  4. # * 乘法运算符(如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数)
  5. # / 除法运算符,运算时结果总会返回一个浮点类型
  6. # // 整除,只会保留计算后的整数位,总会返回一个整型
  7. # ** 幂运算,求一个值的几次幂
  8. # % 取模,求两个数相除的余数
  9. a = 10 + 5 # 计算
  10. a = 'hello' + ' ' + 'world' # 拼串
  11. a = 10 - 5 # 计算
  12. a = 5 - True
  13. a = a - 2 # 用变量a的值减去2,然后再赋值给a
  14. # a = 'hello' - 'h' TypeError
  15. a = 5 * 5
  16. a = 10 / 5
  17. a = 5 / 2
  18. # a = 5 / 0 ZeroDivisionError: division by zero
  19. a = 10 / 3
  20. a = 10 // 3
  21. a = 5 // 2
  22. a = 2 ** 2
  23. a = 10 ** 5
  24. a = 16 ** 0.5 # 求16的平方根
  25. a = 10 % 5 # 0
  26. a = 10 % 4 # 2
  27. a = 10 % 3 # 1
  28. a = 10 % 2 # 0
  29. print("a =",a)

2.赋值运算符
  1. # 赋值运算符
  2. # = 可以将等号右侧的值赋值给等号左侧的变量
  3. # += a += 5 相当于 a = a + 5
  4. # -= a -= 5 相当于 a = a - 5
  5. # *= a *= 5 相当于 a = a * 5
  6. # **= a **= 5 相当于 a = a ** 5
  7. # /= a /= 5 相当于 a = a / 5
  8. # //= a //= 5 相当于 a = a // 5
  9. # %= a %= 5 相当于 a = a % 5
  10. a = 10
  11. # a = a + 5
  12. # a += 5
  13. a -= 5
  14. a *= 5
  15. a **= 2
  16. a /= 25
  17. a = 25.0 # 在对浮点数做算术运算时,结果也会返回一个浮点数
  18. a //= 5
  19. a = 5
  20. a %= 4
  21. print('a =',a)

3.比较运算符(关系运算符)
  1. # 关系运算符
  2. # 关系运算符用来比较两个值之间的关系,总会返回一个布尔值
  3. # 如果关系成立,返回True,否则返回False
  4. # > 比较左侧值是否大于右侧值
  5. # >= 比较左侧的值是否大于或等于右侧的值
  6. # < 比较左侧值是否小于右侧值
  7. # <= 比较左侧的值是否小于或等于右侧的值
  8. # == 比较两个对象的值是否相等
  9. # != 比较两个对象的值是否不相等
  10. # 相等和不等比较的是对象的值,而不是id
  11. # is 比较两个对象是否是同一个对象,比较的是对象的id
  12. # is not 比较两个对象是否不是同一个对象,比较的是对象的id
  13. result = 10 > 20 # False
  14. result = 30 > 20 # True
  15. result = 30 < 20 # False
  16. result = 10 >= 10 # True
  17. result = 2 > True # True
  18. # result = 2 > '1' TypeError: '>' not supported between instances of 'int' and 'str'
  19. # 0032 > 0031
  20. result = '2' > '1' # True
  21. result = '2' > '11' # True
  22. # 在Python中可以对两个字符串进行大于(等于)或小于(等于)的运算,
  23. # 当对字符串进行比较时,实际上比较的是字符串的Unicode编码
  24. # 比较两个字符串的Unicode编码时,是逐位比较的
  25. # 利用该特性可以对字符串按照字母顺序进行排序,但是对于中文来说意义不是特别大
  26. # 注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较
  27. # 0061 > 0062
  28. result = 'a' > 'b' # False
  29. result = 'c' < 'd' # True
  30. result = 'ab' > 'b' # False
  31. # print(int('2') > int('11'))
  32. result = 1 == 1 # True
  33. result = 'hello' == 'hello' # True
  34. result = 'abc' == 'bcd' # False
  35. result = 'abc' != 'bcd' # True
  36. result = 1 == True # True
  37. result = 1 is True # False
  38. result = 1 is not True # True
  39. print('result =',result)
  40. print(id(1),id(True))

4.逻辑运算符
  1. # 逻辑运算符
  2. # 逻辑运算符主要用来做一些逻辑判断
  3. # not 逻辑非
  4. # not可以对符号右侧的值进行非运算
  5. # 对于布尔值,非运算会对其进行取反操作,True变False,False变True
  6. # 对于非布尔值,非运算会先将其转换为布尔值,然后再取反
  7. #
  8. # and 逻辑与
  9. # and可以对符号两侧的值进行与运算
  10. # 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
  11. # 与运算是找False的
  12. # Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值
  13. #
  14. # or 逻辑或
  15. # or 可以对符号两侧的值进行或运算
  16. # 或运算两个值中只要有一个True,就会返回True
  17. # 或运算是找True的
  18. # Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值
  19. #
  20. # 练习:
  21. # 尝试一下对布尔值进行三种逻辑运算
  22. # 尝试对非布尔值进行三种逻辑运算,并观察返回的结果
  23. #
  24. a = True
  25. a = not a # 对a进行非运算
  26. a = 1
  27. a = ''
  28. a = not a
  29. # print('a =',a)
  30. result = True and True # True
  31. result = True and False # False
  32. result = False and True # False
  33. result = False and False # False
  34. # print(result)
  35. # True and print('你猜我出来吗?') 第一个值是True,会看第二个值,所以print()会执行
  36. # False and print('你猜我出来吗?')第一个值是False,不会看第二个值,所以print()不会执行
  37. result = True or True # True
  38. result = True or False # True
  39. result = False or True # True
  40. result = False or False # False
  41. # print(result)
  42. # False or print('你猜我出来吗?') 第一个值为False,继续看第二个,所以打印语句执行
  43. # True or print('你猜我出来吗?') 第一个值为True,不看第二个,所以打印语句不执行
  44. # 非布尔值的与或运算
  45. # 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
  46. # 与运算的规则
  47. # 与运算是找False的,如果第一个值是False,则不看第二个值
  48. # 如果第一个值是False,则直接返回第一个值,否则返回第二个值
  49. # 或运算的规则
  50. # 或运算是找True的,如果第一个值是True,则不看第二个值
  51. # 如果第一个值是True,则直接返回第一个值,否则返回第二个值
  52. # True and True
  53. result = 1 and 2 # 2
  54. # True and False
  55. result = 1 and 0 # 0
  56. # False and True
  57. result = 0 and 1 # 0
  58. # False and False
  59. result = 0 and None # 0
  60. # True or True
  61. result = 1 or 2 # 1
  62. # True or False
  63. result = 1 or 0 # 1
  64. # False or True
  65. result = 0 or 1 # 1
  66. # False or False
  67. result = 0 or None # None
  68. print(result)

5.条件运算符(三元运算符)
  1. # 条件运算符(三元运算符)
  2. # 语法: 语句1 if 条件表达式 else 语句2
  3. # 执行流程:
  4. # 条件运算符在执行时,会先对条件表达式进行求值判断
  5. # 如果判断结果为True,则执行语句1,并返回执行结果
  6. # 如果判断结果为False,则执行语句2,并返回执行结果
  7. # 练习:
  8. # 现在有a b c三个变量,三个变量中分别保存有三个数值,
  9. # 请通过条件运算符获取三个值中的最大值
  10. # print('你好') if False else print('Hello')
  11. a = 30
  12. b = 50
  13. # print('a的值比较大!') if a > b else print('b的值比较大!')
  14. # 获取a和b之间的较大值
  15. max = a if a > b else b
  16. print(max)

运算符的优先级

  1. a = 40
  2. b = 50
  3. c = 30
  4. # 通过条件运算符获取三个值中的最大值
  5. # max = a if a > b else b
  6. # max = max if max > c else c
  7. max = a if (a > b and a > c) else (b if b > c else c) # 不推荐这么使用
  8. # max = a if (b < a > c) else (b if b > c else c)
  9. # print(max)
  10. # 运算符的优先级
  11. # 和数学中一样,在Python运算也有优先级,比如先乘除 后加减
  12. # 运算符的优先级可以根据优先级的表格来查询,
  13. # 在表格中位置越靠下的运算符优先级越高,优先级越高的越优先计算
  14. # 如果优先级一样则自左向右计算
  15. # 关于优先级的表格,你知道有这么一个东西就够了,千万不要去记
  16. # 在开发中如果遇到优先级不清楚的,则可以通过小括号来改变运算顺序
  17. a = 1 + 2 * 3
  18. # 一样 and高 or高
  19. # 如果or的优先级高,或者两个运算符的优先级一样高
  20. # 则需要先进行或运算,则运算结果是3
  21. # 如果and的优先级高,则应该先计算与运算
  22. # 则运算结果是1
  23. a = 1 or 2 and 3
  24. # print(a)
  25. # 逻辑运算符(补充)
  26. # 逻辑运算符可以连着使用
  27. result = 1 < 2 < 3 # 相当于 1 < 2 and 2 < 3
  28. result = 10 < 20 > 15
  29. print(result)