《Think Python》第5章学习笔记
备忘:parameter 指的是形参,argument 指的是实参。
- 5.1 整除和取模(Floor division and modulus)
- 5.2 布尔表达式(Boolean expressions)
- 5.3 逻辑运算符(Logical operators)
- 5.4 条件执行(Conditional execution)
- 5.5 选择执行(Alternative execution)
- 5.6 链式条件(Chained conditionals)
- 5.7 嵌套条件(Nested conditionals)
- 5.8 递归(Recursion)
- 5.9 递归函数的堆栈图(Stack diagrams for recursive functions)
- 5.10 无穷的递归(Infinite recursion)
- 5.11 键盘输入(Keyboard input)
- 5.12 调试(Debugging)
5.1 整除和取模(Floor division and modulus)
在 Python 3 中,/ 符号对两个操作数做的是浮点除法(floating-point division),而 // 符号对两个操作数做的是整除(floor division)。在 Python 2 中,则有所不同。当两个操作数都是整数时,/ 符号做的是整除;只要两个操作数中有一个是浮点数时,/ 符号做的是浮点除法。
5.2 布尔表达式(Boolean expressions)
无
5.3 逻辑运算符(Logical operators)
在 Python 中,有三种逻辑运算符(logical operator):and、or 以及 not。
有一点值得注意,在 Python 中,逻辑运算符的操作数并不需要是布尔表达式(boolean expression),任意非零的数都相当于布尔值 True。
5.4 条件执行(Conditional execution)
当条件语句下面的执行语句暂时还未确定时,可以将 pass 语句作为占位符——暂时充当执行语句,即:
if x < 0:
pass # TODO: need to handle negative values!
5.5 选择执行(Alternative execution)
无
5.6 链式条件(Chained conditionals)
无
5.7 嵌套条件(Nested conditionals)
在 Python 中,对于 0 < x and x < 10 这样的表达式,可以更加简洁地写成:0 < x < 10。
5.8 递归(Recursion)
函数调用自身的执行过程称为递归(recursion)。
5.9 递归函数的堆栈图(Stack diagrams for recursive functions)
无
5.10 无穷的递归(Infinite recursion)
无
5.11 键盘输入(Keyboard input)
Python 为我们提供了一个内建函数 input 用于从控制台输入,当执行 input 函数时,暂停程序的运行,等待用户输入,当用户输入完毕后(按下 Enter 或者 Return),程序继续执行,input 函数会将用户输入的字符作为一个字符串。
>>> text = input()
What are you waiting for?
>>> text
'What are you waiting for?'
input 函数还可以将一个提示的字符串作为参数,提示用户应该输入什么。
>>> name = input('What...is your name?\n')
What...is your name?
Arthur, King of the Britons!
>>> name
'Arthur, King of the Britons!'
5.12 调试(Debugging)
当语法或者运行错误(syntax or runtime error)发生时,错误提示中包含大量信息,但是错误提示经常是冗长的,包含许多不必要的部分。对于我们而言,其中最有用的部分应该是:
- 错误类型
- 错误发生的行数
值得注意的是,错误提示虽然指出了错误发生的行数,但是实际中,错误发生的地方可能在前面(比如前一行)。
《Think Python》第5章学习笔记的更多相关文章
- 《Think Python》第17章学习笔记
目录 <Think Python>第17章学习笔记 17.1 面向对象的特性(Object-oriented features) 17.2 打印对象(Printing objects) 1 ...
- 《Think Python》第16章学习笔记
目录 <Think Python>第16章学习笔记 16.1 Time 16.2 纯函数(Pure functions) 16.3 修改器(Modifiers) 16.4 原型 vs. 方 ...
- 《Think Python》第15章学习笔记
目录 <Think Python>第15章学习笔记 15.1 程序员定义的类型(Programmer-defined types) 15.2 属性(Attributes) 15.3 矩形( ...
- 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳
<Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...
- 《Linux内核设计与实现》 第一二章学习笔记
<Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...
- 《Linux内核设计与实现》第四章学习笔记
<Linux内核设计与实现>第四章学习笔记 ——进程调度 姓名:王玮怡 学号:20135116 一.多任务 1.多任务操作系统的含义 多任务操作系统就是能同时并发地交 ...
- 《Linux内核设计与实现》第五章学习笔记
<Linux内核设计与实现>第五章学习笔记 姓名:王玮怡 学号:20135116 一.与内核通信 在Linux中,系统调用是用户空间访问内核的唯一手段:除异常和陷入外,它们是内核 ...
- 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记
回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...
- 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记
注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...
- 学习笔记(一)--->《Java 8编程官方参考教程(第9版).pdf》:第一章到六章学习笔记
注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.违者本人不负法律责任.违法者自负一切法律责任. ...
随机推荐
- XML--将XML中数据提取出转换成表2
DECLARE @xml XMLSET @xml = '<Students> <Student id="1001" name = "xu&quo ...
- DNS本机可解析,其他主机通过本机无法解析问题
新建了一个redhat虚拟机,将此虚拟机作为dns服务器使用,配置完以后宿主机的dns服务器设置为配置好的虚拟机地址,结果总是显示no Server Reached,没有服务器可以到达,花了很长时间终 ...
- Kafka与.net core(二)zookeeper
1.zookeeper简单介绍 1.1作用 zookeeper的作用是存储kafka的服务器信息,topic信息,和cunsumer信息.如下图: 而zookeeper是个什么东西呢?简单来说就是一个 ...
- 自己的Java规范文档
参考阿里Java规范文档 不建议使用过时方法 泛型需要加上<>,这种方式创建的对象是不推荐的. Map object = new HashMap();//禁止使用 字符串比较时,不需要大小 ...
- Android Performance 性能提升
1. 经常变动的字符串要用 StringBuilder,然后每次变动用 append 方法.而不应该每次创建新的 String. 2. 使用 static final 变量. 3. It's reas ...
- python 单线程实现并发
单线程下支持并发(服务端): from gevent import spawn,monkey;monkey.patch_all() from socket import * def server(ip ...
- luoguP5068 [Ynoi2015]我回来了
https://www.luogu.org/problemnew/show/P5068 ynoi 中的良心题啊 考虑用 bitset 来维护里一个点距离小于 $ y_i $ 的点,那么答案就是一堆 b ...
- AcDbTable表格实体的简单例子
例子是创建一个含有表格实体的块定义 效果如下(手动插入的块) 源代码如下,简单示意,采用了我不是很熟悉的智能指针创建实体对象,代码仅供参考 AcDbObjectPointer<AcDbTable ...
- 使用sqlyog将sql server 迁移到mysql
使用软件工具sqlyog(64位) sqlyog 迁移步骤 1.使用sqlyog连接目标数据库 连接目标数据库 2.选择目标数据库(需要先把表结构建好,从SQL Server同步表结构也可以使用工具, ...
- shell (三) 文件压缩
查看压缩文件 #tar tvf tar.tar.gz -rw-r--r-- root/root 290 2019-03-22 14:38 README.md -rw-r--r-- root/root ...