《Python基础教程(第二版)》学习笔记 -> 第五章 条件、循环 和 其他语句
条件和条件语句
- 下面的值在作为布尔表达式的时候,会被解释器看作假(False):
False None 0 "" () [] {} - 条件执行和if语句
name = raw_input('What is your name?\n') if name.endswith('Gumby'): print 'Hello, Gumby' else: print 'I donot know you!' - elif 字句
num = input("PLS input a num\n") if num > 0: print "The num is positive!" elif num < 0: print "The num is negetive!" else: print "The num is zero"结果:
PLS input a num 0 The num is zero
更复杂的条件
- 比较预算符
== ; < ; > ; >= ; <= ; != ; is ; is not ; in ; not in - 相等运算符
>>> 'foo' == 'foo' True >>> 'foo' == 'fo' False
- is:同一性运算符
>>> x = y = [1,2,3] >>> z = [1,2,3] >>> x == y True >>> x == z True >>> x is y True >>> x is z False >>> id(x) 19018656 >>> id(y) 19018656 >>> id(z) 11149144
同一性可以理解为内存地址相同的数据。
- in:成员资格运算符
>>> name = ['a','b','c'] >>> 'a' in name True
- 字符串和序列比较
字符串可以按照字母顺序排列进行比较。>>> 'beat'>'alpha' True
程序会遍历比较
>>> 'Forst'.lower() == 'F'.lower False >>> 'Forst'.lower() == 'Forst'.lower() True
- 布尔运算符
略过 - 断言
如果需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert 语句就有用了,它可以在程序中置入检查点,条件后可以添加字符串,来解释断言:>>> age = -1 >>> assert 0<age<100, 'the age must be crazy' Traceback (most recent call last): File "<pyshell#7>", line 1, in <module> assert 0<age<100, 'the age must be crazy' AssertionError: the age must be crazy
循环
- while
它可以用来在任何条件为真的情况下重复执行一个代码块name = '' while not name: name = raw_input("input your name:\n") print "hello ,%s!" %name运行结果:
input your name: world hello ,world!
- for循环
>>> for number in range(101): print number - 迭代工具
①并行迭代>>> names = ['anne','beth','george'] >>> ages = [1,11,111] >>> zip(names,ages) [('anne', 1), ('beth', 11), ('george', 111)] >>> for name, age in zip(names,ages): print name, 'is',age anne is 1 beth is 11 george is 111② 编号迭代
enumerate函数
③ 翻转和排序迭代
>>> sorted('hello,world!') ['!', ',', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w'] >>> list(reversed('hello,world!')) ['!', 'd', 'l', 'r', 'o', 'w', ',', 'o', 'l', 'l', 'e', 'h'] - 跳出循环
① break
结束(跳出)循环可以使用break语句>>> from math import sqrt >>> for n in range(99,0,-1): root = sqrt(n) if root == int(root): print n break 81② continue
③ while True/break 习语
while True: word = raw_input("PLS input a word:") if not word:break print 'the word is:%s'%word
《Python基础教程(第二版)》学习笔记 -> 第五章 条件、循环 和 其他语句的更多相关文章
- <<Python基础教程>>学习笔记 | 第10章 | 充电时刻
第10章 | 充电时刻 本章主要介绍模块及其工作机制 ------ 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 一个简 ...
- <<Python基础教程>>学习笔记 | 第04章 | 字典
第04章:字典 当索引不好用时 Python唯一的内建的映射类型,无序,但都存储在一个特定的键中.键能够使字符.数字.或者是元祖. ------ 字典使用: 表征游戏棋盘的状态,每一个键都是由坐标值组 ...
- <<Python基础教程>>学习笔记 | 第12章 | 图形用户界面
Python支持的工具包非常多.但没有一个被觉得标准的工具包.用户选择的自由度大些.本章主要介绍最成熟的跨平台工具包wxPython.官方文档: http://wxpython.org/ ------ ...
- <<Python基础教程>>学习笔记 | 第11章 | 文件和素材
打开文件 open(name[mode[,buffing]) name: 是强制选项,模式和缓冲是可选的 #假设文件不在.会报以下错误: >>> f = open(r'D:\text ...
- Jquery基础教程第二版学习记录
本文仅为个人jquery基础的学习,简单的记录以备忘. 在线手册:http://www.php100.com/manual/jquery/第一章:jquery入门基础jquery知识:jquery能做 ...
- 第二章、元组和列表(python基础教程第二版 )
最基本的数据结构是序列,序列中每个元素被分配一个序号-元素的位置,也称索引.第一个索引为0,最后一个元素索引为-1. python中包含6种内建的序列:元组.列表.字符串.unicode字符串.buf ...
- python基础教程第二版 第一章
1.模块导入python以增强其功能的扩展:三种方式实现 (1). >>> Import math >>> math.floor(32.9) 32.0 #按照 模块 ...
- <<Python基础课程>>学习笔记 | 文章13章 | 数据库支持
备注:本章介绍了比较简单,只是比较使用样品,主要假设是把握连接,利用数据库.和SQLite做演示样本 ------ Python数据库API 为了解决Python中各种数据库模块间的兼容问题,如今已经 ...
- python cookbook第三版学习笔记十五:property和描述
8.5 私有属性: 在python中,如果想将私有数据封装到类的实例上,有两种方法:1 单下划线.2 双下划线 1 单下划线一般认为是内部实现,但是如果想从外部访问的话也是可以的 2 双下划线是则无法 ...
随机推荐
- linux tail
tail 命令从指定点开始将文件写到标准输出,使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新, ...
- python学习笔记3(字符串)
Python字符串: 在Python中的字符串被确定为一组连续的字符在引号之间, Python允许在任何对单引号或双引号. 串的子集,可以使用切片操作符可采用([]和[:]),索引从0开始的字符串的开 ...
- 开源YYKit-b
转自 ibireme的博客,大家可以去他博客看看,有很多开发过程的一些调研和评测. YYModel 类似 Mantle/JSONModel 的工具,性能比 Mantle 高一个数量级,有更好的容错性, ...
- 简单3d RPG游戏 之 003 怪物AI
游戏中,怪物会自动的往玩家所在地点走去,那需要创建一个C#脚本EnemyAI,包含两个功能: 1. 怪物旋转自己对准玩家 2. 怪物向前移动,追逐玩家 public class EnemyAI : M ...
- 远程登陆MS azure Linux 虚拟机
http://blogs.technet.com/b/uktechnet/archive/2013/11/12/running-a-remote-desktop-on-a-windows-azure- ...
- CQRS学习——Cqrs补丁,async实验以及实现[其二]
实验——async什么时候提高吞吐 async是一个语法糖,用来简化异步编程,主要是让异步编程在书写上接近于同步编程.总的来收,在await的时候,相当于附加上了一个.ContinueWith(). ...
- 一个HexToInt的C/C++函数
int BetterVenca25(char* hex){ int res=0; for(;*hex;hex++) { int d=toupper(*hex); if(d & ...
- codeforces #305 A Mike and Frog
挺简单的题目,但是有一堆恶心的边界 在刨去恶心的边界之后: 假定我们知道两边的循环节为b1,b2 其中h第一次到达目标的时间为a1,a2 又知道对于答案t t=a1+b1*t1=a2+b2*t2 不妨 ...
- SQLite入门与分析(四)---Page Cache之事务处理(2)
写在前面:个人认为pager层是SQLite实现最为核心的模块,它具有四大功能:I/O,页面缓存,并发控制和日志恢复.而这些功能不仅是上层Btree的基础,而且对系统的性能和健壮性有关至关重要的影响. ...
- QStringList与QString互转
QStringList fonts;fonts << "Arial" << "Helvetica" << "Tim ...