备忘:parameter 指的是形参,argument 指的是实参。

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):andor 以及 not

有一点值得注意,在 Python 中,逻辑运算符的操作数并不需要是布尔表达式(boolean expression),任意非零的数都相当于布尔值 True

5.4 条件执行(Conditional execution)

当条件语句下面的执行语句暂时还未确定时,可以将 pass 语句作为占位符——暂时充当执行语句,即:

  1. if x < 0:
  2. 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 函数会将用户输入的字符作为一个字符串。

  1. >>> text = input()
  2. What are you waiting for?
  3. >>> text
  4. 'What are you waiting for?'

input 函数还可以将一个提示的字符串作为参数,提示用户应该输入什么。

  1. >>> name = input('What...is your name?\n')
  2. What...is your name?
  3. Arthur, King of the Britons!
  4. >>> name
  5. 'Arthur, King of the Britons!'

5.12 调试(Debugging)

当语法或者运行错误(syntax or runtime error)发生时,错误提示中包含大量信息,但是错误提示经常是冗长的,包含许多不必要的部分。对于我们而言,其中最有用的部分应该是:

  • 错误类型
  • 错误发生的行数

值得注意的是,错误提示虽然指出了错误发生的行数,但是实际中,错误发生的地方可能在前面(比如前一行)。

《Think Python》第5章学习笔记的更多相关文章

  1. 《Think Python》第17章学习笔记

    目录 <Think Python>第17章学习笔记 17.1 面向对象的特性(Object-oriented features) 17.2 打印对象(Printing objects) 1 ...

  2. 《Think Python》第16章学习笔记

    目录 <Think Python>第16章学习笔记 16.1 Time 16.2 纯函数(Pure functions) 16.3 修改器(Modifiers) 16.4 原型 vs. 方 ...

  3. 《Think Python》第15章学习笔记

    目录 <Think Python>第15章学习笔记 15.1 程序员定义的类型(Programmer-defined types) 15.2 属性(Attributes) 15.3 矩形( ...

  4. 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳

    <Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...

  5. 《Linux内核设计与实现》 第一二章学习笔记

    <Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...

  6. 《Linux内核设计与实现》第四章学习笔记

    <Linux内核设计与实现>第四章学习笔记           ——进程调度 姓名:王玮怡  学号:20135116 一.多任务 1.多任务操作系统的含义 多任务操作系统就是能同时并发地交 ...

  7. 《Linux内核设计与实现》第五章学习笔记

    <Linux内核设计与实现>第五章学习笔记 姓名:王玮怡  学号:20135116 一.与内核通信     在Linux中,系统调用是用户空间访问内核的唯一手段:除异常和陷入外,它们是内核 ...

  8. 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记

    回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...

  9. 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记

    注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...

  10. 学习笔记(一)--->《Java 8编程官方参考教程(第9版).pdf》:第一章到六章学习笔记

    注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.违者本人不负法律责任.违法者自负一切法律责任. ...

随机推荐

  1. 搬家至独立博客 https://www.imzjy.com/blog/

    欢迎访问 https://www.imzjy.com/blog/

  2. Spring学习(六)——集成memcached客户端

    memcached是高性能的分布式内存缓存服务器.许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示. 但随着数据量的增大.访问的集中,就会出现RDBMS的负担加重.数据 ...

  3. Win10+VS2015折腾小记

    20150807 昨天安装了多语言的专业版(当时语言可选,但是我也没选,今天虚机中文企业版时,视图选择语言,但是也只有中文简体,输入法有很多). 专业版安装在硬盘中,感觉不到半小时就完成了. 使用一个 ...

  4. [多线程] Thread

    多线程 概述 单任务处理:一个任务完成后才能进行下一个任务. 多任务处理:CPU分时操作,每个任务看似同时运行. 进程 应用程序的一个运行实例,包含程序所需资源的内存区域,是操作系统进行资源分配的单元 ...

  5. 谈一谈PHP计划任务

    公司所用计划任务均是大概这样子的: */ * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testOne & ...

  6. django 模型中 class Meta 内 各种属性的用法

    Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.下面对此作一总结: abstract 这个属性是定义当前的模型类是不是一个抽象类.所谓抽象类是不会相应数据库表的 ...

  7. centos和ubuntu配置路由的三种方式

    本篇总结三种修改路由的方式:route, ip route, 以及通过修改文件来配置路由,前2种命令行形式适用于ubuntu和centos,重启失效,最后一种永久有效.     一. route命令 ...

  8. SQLServer 的存储过程与java交互

    一.   存储过程简介 Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量.条件执行和其他强大的编程 ...

  9. 在Myeclipse中查看android源码就是这么easy

    在开发android 时不能查看源码必是很不爽的一件事,看过网上一些文章后(都是2.0以前的版本,跟我的2.2最新版本的配置是不一样的)不过还是给了我启示,通过配置终于可以在myeclipse中查看源 ...

  10. iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a以及 FrameWork 的创建

    armv7,armv7s,arm64,i386,x86_64 详解 一.概要 平时项目开发中,可能使用第三方提供的静态库.a,如果.a提供方技术不成熟,使用的时候就会出现问题,例如: 在真机上编译报错 ...