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
  1. 计算条件,得到True或者False
  1. 如果条件为假,退出while循环,并继续执行后面的语句
  2. 如果为真,执行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)])

相似的,你学习过的进位加法,借位减法以及长除法都是算法,

算法的特点之一是他们不需要仁和聪明才智就能执行,他们是一个机械化的过程,每一步都依照一组简单的规则紧接着上一步进行。

练习

  1. 重写print_n函数,使用循环而非递归来实现
    def print_n(n):
    while n>0:
    n = n-1
    print n
  2. 内置函数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的更多相关文章

  1. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  2. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  3. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  4. Python学习路径及练手项目合集

    Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159

  5. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  6. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  7. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  8. [Python] 学习资料汇总

    Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...

  9. Python学习之路【目录】

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...

  10. python学习笔记系列----(八)python常用的标准库

    终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...

随机推荐

  1. CentOS6.5下使用NetHogs监控进程网络使用情况

    Nethogs 是一个终端下的网络流量监控工具,它的特别之处在于能够显示每一个进程的带宽占用情况,这样能够更直观获取网络使用情况.它支持 IPv4 和 IPv6 协议.支持本地网卡及 PPP 链接. ...

  2. linux重要的标准目录和文件

    linux重要的标准目录和文件 / 根目录,所有其他文件在根文件系统的子目录下 /bin 基本命令的二进制文件,存放linux下常用的命令和工具 /boot 引导加载器的固有文件,linux就是从这里 ...

  3. Aandroid Error之 新导入工程报Unable to resolve target 'android-18'和R cannot be resolved

    有段时间没有写安卓了,今天导入以前的项目,结果看到控制台打印出了这样一句:Unable to resolve target 'android-18', 解决方法: 项目->属性->Andr ...

  4. ubuntu安装体验

    本文记录一下昨晚及今天安装ubuntu系统的过程及体验 2016年6月13日09:36:11 更新 今天才有发现原来自己有个没填的坑 = = 那次安乌班图后第一感觉是很好用,新鲜了好几天,但是很快,新 ...

  5. discuz二次开发笔记(三)------discuz的安装步骤

    下载好discuz的安装包后,解压在自己定义的文件夹里面,将upload里面的文件拷贝出来放到和upload同级的地方,然后删除upload文件夹. 打开浏览器,输入你文件夹的地址:如:http:// ...

  6. windows----composer、laravel安装

    环境要求:php+apache,并且将php的根目录配置到“环境变量”. 1.安装composer 使用cmd进入想要安装composer的目录执行如下命令,下载composer.phar文件: ph ...

  7. 【Python备忘】python判断文件和文件夹是否存在

    python判断文件和文件夹是否存在 import os os.path.isfile('test.txt') #如果不存在就返回False os.path.exists(directory) #如果 ...

  8. HDU 2553 N皇后问题(dfs)

    N皇后问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 在 ...

  9. SQL Server 与 Windows 内存使用上的约定

    什么时候SQL Server 会释放出自己的内存!以提供给别的程序用呢? --------------------------------------------------------------- ...

  10. js为数字添加千位分隔符

    1.字符串处理比较复杂 function test(str){   var iNum = str.length % 3;   var prev = '';   var iNow = 0;   var ...