《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:转载请标注出处.本文不得作为商业活动.违者本人不负法律责任.违法者自负一切法律责任. ...
随机推荐
- ADO.NET批量添加数据到SQL Server—BulkCopy使用指南
BulkCopy位于System.Data.SqlClient命名空间,允许你使用其他源的数据有效地批量加载 SQL Server 表. 属性: BatchSize :每个批处理中的行数. 在每个批处 ...
- unity 分数的显示
通常 在完成 条件之后再增加分数 所以 一开始先增加 public int 得到分数; public Text 分数ui; 在完成条件后增加 得到分数++; 分数ui.text = 得到分数.ToSt ...
- MyBatis入门及CRUD
MyBatis是一个ORM的数据操作框架 myBatis的基本配置 首先创建一个普通 java项目,引入响应jar包,然后引入mybatis的xml配置, <?xml version=" ...
- python网络编程--管道,信号量,Event,进程池,回调函数
1.管道 加锁可以保证多个进程修改同一块数据时,同一时间只能有一个任务可以进行任务修改,即串行修改,速度慢了,但牺牲了速度却保证了数据安全. 文件共享数据实现进程间的通信,但问题是: 1.效率低(共享 ...
- linux命令之信息显示与搜索文件命令
1.uname:显示系统信息 该命令用于显示系统相关的信息,比如内核版本号,硬件架构等. 参数 说明 -n(常用) 显示主机名称 -r(常用) 显示内核发行版本号 示例: 1)显示主机名 [root@ ...
- telnet 工具
关于 telnet 命令 telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标 ...
- 【bug】—— ios scroll 滚动穿透
BUG描述 在 ios 微信浏览器或原生浏览器中,主内容容器.content在文档流内,并且overflow-y: scroll.在其之上有一个 fixed 定位的弹出层.popUp,滚动.popUp ...
- Java方法区
方法区 在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中.类型信息是由类加载器在类加载时从类文件中提取出来的.类(静态)变量也存储在方法区中. jvm实现的设计者决定了类型信息的内 ...
- ltp-ddt eth过程中遇到的问题
eth_iperf_tcp ETH_S_PERF_IPERF_TCP_INTPACING_8K_1448B source 'common.sh'; iface=`get_eth_iface_name. ...
- ubuntu 14.04网卡配置以及关闭防火墙
一.Ubuntu网卡配置如下: 在文件/etc/network/interfaces中进行以下配置 auto lo iface lo inet lookback auto eth0 iface eth ...