资讯专栏INFORMATION COLUMN

《Python基础教程第二版》第五章-条件、循环和其他语句(二)

RayKr / 2999人阅读

摘要:处理不等长序列时,止于最短序列。版本一不推荐版本二这段代码在基础教程第二版我认为原书代码中的缩进格式应该是错了版本三推荐使用内建函数翻转和排序迭代子句列表推导式轻量级循环

循环 while

代码1

</>复制代码

  1. x = 1
  2. while x <= 100
  3. print x
  4. x += 1

代码2
在程序要求输入名字时按下回车,程序会再次要求输入名字,因为name是空字符串,值为false。

</>复制代码

  1. name = ""
  2. while not name:
  3. name = raw_input("your name:")
  4. print name
  5. # while not name or name.isspace()
  6. # while not name.strip()
for

</>复制代码

  1. words = ["this","is","AJ1"]
  2. for word in words:
  3. print word
  4. numbers = [1,2,4,5,6,7]
  5. for num in numbers:
  6. print num

Range()
内建的范围函数range()

</>复制代码

  1. range(1,10)
  2. #output: [0,1,2,3,4,5,6,7,8,9]
  3. #打印1~100
  4. for num in range(1,100):
  5. print num

Range() vs xrange()

</>复制代码

  1. range()一次创建整个序列
  2. xrange()一次只创建一个数
  3. 迭代巨大的序列时,xrange()更加高效
遍历字典

遍历字典的所有键

</>复制代码

  1. d = {"x":1, "y":2, "z":3}
  2. for key in d:
  3. print key, d[key]
  4. # 取值: 用 d.values 代替 d.keys

items()方法
items()方法返回键值对元组,for可以循环中使用序列解包

</>复制代码

  1. for key, value in d.items():
  2. print key,value

注:字典元素顺序不确定

迭代工具

并行迭代
同时打印名字和对应年龄

</>复制代码

  1. names = ["afra", "ala", "joe", "bob"]
  2. ages = [1,2,3,4]
  3. for i in range(len(names)):
  4. print name[i], age[i]
  5. # i 为循环索引

zip()

zip()将多个序列组合成一个元组列表。处理不等长序列时,止于最短序列。

</>复制代码

  1. zip(names, age)
  2. # [("afra",1),("ala",2),("joe",3),("bob",4)]
  3. # 循环解包元组
  4. for name, age in zip(name, ages):
  5. print name,age
  6. #不等长序列
  7. zip(range(5), xrange(10000))

按索引迭代
任务:访问序列对象,同时获取当前对象索引。例如,在字符串中替换包含‘xxx’的子字符串。
版本一(不推荐):

</>复制代码

  1. for string in strings:
  2. if "xxx" in string:
  3. index = strings.index(string)
  4. string[index] = "[replace]"

版本二:

</>复制代码

  1. index = 0
  2. for string in strings:
  3. if "xxx" in string:
  4. strings[index] = "[replace]"
  5. index += 1
  6. # 这段代码在《Python基础教程第二版》P79, 我认为原书代码中 index+=1 的缩进格式应该是错了?

版本三(推荐):
使用内建函数 enumerate()

翻转和排序迭代

break 、continue、while true/break else子句 列表推导式-轻量级循环 pass、del、exec

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42238.html

相关文章

  • Python基础教程五章-条件循环其他语句(一)

    摘要:所解包的序列中的元素数量必须和赋值符号左边的变量数量完全一致。其中,冒号标识语句块开始块中每一个语句都是缩进相同量退回到和已经闭合的块一样的缩进量时,表示当前块结束。成员资格运算符字符串和序列比较字符串可按照字母顺序比较。 print和import print打印多个表达式,用逗号,隔开 print abc:, 42, nonono #输出在每个参数之间添加空格 print在结尾处加上...

    宋华 评论0 收藏0
  • 如果想成为一名顶尖的前端,这份书单你一定要收藏!

    摘要:其中负载均衡那一节,基本上是参考的权威指南负载均衡的内容。开发指南读了一半,就是看这本书理解了的事件循环。哈哈创京东一本骗钱的书。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯IVWEB团队 发表于云+社区专栏作者:link 2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍...

    callmewhy 评论0 收藏0
  • 如果想成为一名顶尖的前端,这份书单你一定要收藏!

    摘要:其中负载均衡那一节,基本上是参考的权威指南负载均衡的内容。开发指南读了一半,就是看这本书理解了的事件循环。哈哈创京东一本骗钱的书。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯IVWEB团队 发表于云+社区专栏作者:link 2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍...

    Scliang 评论0 收藏0

发表评论

0条评论

RayKr

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<