《think in python》学习-7
think in python 7
迭代
对一个变量可以进行多次赋值 是合法的。
例如以下:
bruce = 5
print bruce
bruce = 7
print bruce
因为有了多重赋值 所以=与== 的区别就更重要了。
不过=有时候 也会让你产生歧义
a=7
b=a
a=8
b ? #这个时候 b还是 7 ,b已经不再等于a了
更新变量
赋值操作最常见的形式是更新操作,即变量的新值依赖旧值
x = 6
y = 6
x = x+1
y = y-1
通过加1来更新一个变量,称为增量。
通过减1来更新一个变量,称为减量。
whlie语句
计算机常被用来自动化重复处理某些任务
countdown 函数 while版本
def countdown(n):
while n>0:
print n
n = n-1
- 计算条件,得到True或者False
- 如果条件为假,退出while循环,并继续执行后面的语句
- 如果为真,执行while语句的语句体,并返回第一步
这种流程称之为 循环(loop).
我们写的程序也会出现无限循环的时候,这是因为 我们对值的判断和操作分支有些问题
def squence(n):
while n!=1:
print n
if n%2==0:
n = n/2
else:
n = n*3+1
这个函数的循环条件是n!=1 所以只要n还没变成1就可能会 一直循环下去。
break语句
只有在循环语句体的执行途中,才能知道是不是到了退出循环的时机
break 可以用来跳出循环
while True:
line = raw_input()
if line = 'done':
break
print line
print 'DONE'
平方根
循环常用于数值计算,以一个近似值开始,迭代的优化计算结果
以计算平方根方法(牛顿方法)为例:
x=3.0 #牛顿方法里面 需要定义一个估计值。
while True:
print x
y = (x+a/x)/2
if y==x:
break
x = y
算法
牛顿方法是算法的一个例子,它是解决一类问题的机械化的过程。
定义算法比更不容易,从一个算不上算法的东西开始可能更简单。当你学习个位数相乘的时候,可能背诵过乘法口诀,其实 你只是记住了100个特别的解答,这种知识不算是算法
比如要计算n和9的乘积,你可以写下n-1作为十位数,10-n作为个位数,这个小技巧是计算任意个位数和9的乘积的通用方案,算是一个算法。
def n9(n):
print "".join([str(n-1),str(10-n)])
相似的,你学习过的进位加法,借位减法以及长除法都是算法,
算法的特点之一是他们不需要仁和聪明才智就能执行,他们是一个机械化的过程,每一步都依照一组简单的规则紧接着上一步进行。
练习
- 重写
print_n函数,使用循环而非递归来实现def print_n(n):
while n>0:
n = n-1
print n
- 内置函数
eval可以接受一个字符串 并使用python解释器对它进行求。写一个eval_loop迭代的提示用户 接受他们输入并使用eval求值,直到用户输入done中断def must_done():
while True:
u = raw_input("> \n")
if u=="done":
break
print(u)
print "you input done"
术语(新手建议阅读并尝试理解):
- 多重赋值(multiple assignment):在程序的执行过程中对同一个变量进行多次赋值
- 更新(update):一种复制操作,新值依赖于变量的旧值
- 初始化(initialization):一种赋值操作,给变量增加一个初始的值,以后可以进行更新。
- 增量(increment):一种更新操作,增加变量的值
- 减量(decrement):一种更新操作,减少变量的值
- 迭代(iteration):使用递归函数调用或者循环来重复执行一组语句
- 无限循环(infinite loop): 一个终止条件永远无法满足的循环
《think in python》学习-7的更多相关文章
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- Python学习路径及练手项目合集
Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159
- python学习笔记-python程序运行
小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- [Python] 学习资料汇总
Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...
- Python学习之路【目录】
本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...
- python学习笔记系列----(八)python常用的标准库
终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...
随机推荐
- 学习《Python核心编程》做一下知识点提要,方便复习(一)
学习<Python核心编程>做一下知识点提要,方便复习. 计算机语言的本质是什么? a-z.A-Z.符号.数字等等组合成符合语法的字符串.供编译器.解释器翻译. 字母组合后产生各种变化拿p ...
- 【git学习二】git基础之git管理本地项目
1.背景 git基础打算分两部分来说,一部分是对于本地项目的管理,第二部分是对于远程代码仓库的操作. git运行本地项目管理包含对于相关文件的追踪,暂存区的比較分析,提交,撤销等功能. ...
- [Android 4.4.3] 泛泰A860 Omni4.4.3 20140610 RC2.0 三版通刷 by syhost
欢迎关注泛泰非盈利专业第三方开发团队 VegaDevTeam (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大师) loogeo cr ...
- android——字体颜色跟随状态改变
TextView的字体颜色也可以和ImageView的background一样,跟随状态发生改变.只需要自定义一下字体颜色.在color文件夹下面,新建一个颜色文件的xml. OK ,这就完成 了. ...
- 常用的SQL数据库语句总结
1as 的用处 as可以对表和列取别名 在开发过程中经常遇到开始给某一个的字段去field1的名称,但后来有感觉field1字段指定不确切,于是又把此字段改成了field2,由于开始认 为field1 ...
- Spring-----6、Spring3.0提供的Java配置管理
转载自:http://blog.csdn.net/hekewangzi/article/details/45646279
- python面向对象(下)
继承 继承描述了基类的属性如何"遗传"给派生类.一个子类可以继承它的基类的任何属性,不管是数据属性还是方法.创建子类的语法看起来与普通(新式)类没有区别,一个类名,后跟一个或多个需 ...
- node.js入门(二) 第一个程序 Hello World
新建一个名为"hello.js"文本文件,然后输入如下内容 //载入http模块 var http = require('http'); //构建一个http服务器 var ser ...
- MySql数据库学习--存储过程(1)
在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用户入门. 存储过程介绍 存储过程是一组为了 ...
- Mobile Matrices
This is an attempt to compile a list of relevant specifications for all modern smart phones and mobi ...