Python基础教程代码与注释P77 5.5 循环

# -*- coding: cp936 -*-
#P77 5.5 循环
#5.5.1 while循环
x = 1
while x <= 100:
    print x
    x += 1
name = ''
while not name:
    name = raw_input('Please enter your name:')
print 'Hello, %s!' % name


#5.5.2 for循环
words = ['this', 'is', 'an', 'ex', 'parrot']
for word in words:
    print word


numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for number in numbers:
    print number


print range(0, 10)  #range建立一个包含0到9的列表
for number in range(1, 101):
    print number


#5.5.3 循环遍历字典元素
d = {'x': 1, 'y': 2, 'z': 3}
for key in d:
    print key, 'corresponds to', d[key]


for key, value in d.items():
    print key, 'corresponds to', value


#5.5.4 一些迭代(循环的另外一种说法)工具
#1.并行迭代
names = ['anne', 'beth', 'georgo', 'damon']
ages = [12, 45, 32, 102]
for i in range(len(names)): #同时迭代两个序列
    print names[i], 'is', ages[i], 'years old'


print zip(names, ages) #zip函数可以进行并行迭代,返回一个元组的列表
for name, age in zip(names, ages): #在循环中解包元组
    print name, 'is', age, 'years old'
    # zip函数可用于任意多的序列,处理不等长的序列
print zip(range(5), xrange(100000000))#xrange只计算前5个数字
#2.按索引迭代
    # 在一个字符串列表中替换所有 包含'xxx' 的子字符串。
strings = ['hahaha', 'x', 'xxx', 'hahaha', 'xxxx']
for string in strings:
    if 'xxx' in string:#index从列表中找出某个值第一个匹配项的索引位置
        index = strings.index(string)#在字符串列表中查找子字符串
        strings[index] = '[censored]'
print strings
    # 改写如下
strings = ['hahaha', 'x', 'xxx', 'hahaha', 'xxxx']
index = 0
for string in strings:
    if 'xxx' in string:
        strings[index] = '[censored]'
    index += 1
print strings
    # 使用内建的enumerate函数
strings = ['hahaha', 'x', 'xxx', 'hahaha', 'xxxx']
for index, string in enumerate(strings):
    if 'xxx' in string:
        strings[index] = '[censored]'
print strings
#3.翻转和排序迭代
print sorted([4, 3, 6, 8,3])    #sorted获取已排序列表副本
print sorted('Hello, world!') #reversed对序列进行反向迭代,返回一个迭代器
print list(reversed('Hello, world!'))#list根据字符串创建列表
print ''.join(reversed('Hello, world!'))#''.join()连接序列中元素


#5.5.5 跳出循环
#1.break
    # 寻找100以内的最大平方数
from math import sqrt
for n in range(99, 0, -1):  #-1 代表反向迭代
    root = sqrt(n)
    if root == int(root):   #root求平方时,结果是一个整数
        print n             #打印81
        break               #跳出循环
print range(0, 10, 2)
#2.continue
    # 寻找100以内的平方数
for n in range(99, 0, -1):  #-1 代表反向迭代
    root = sqrt(n)
    if root == int(root):   #root求平方时,结果是一个整数
        print n             #打印平方数
        continue            #结束本次循环,跳到下一轮循环
#3.while True/break习语
    # 用户不输入单词后结束循环
word = 'dummy'  # 初始化word
while word:     # 判断word非空
    word = raw_input('Please enter a word:')
    print 'The word was ' + word
print '\n'
    # 在进入循环之前给word赋一个哑(未使用的)值
word = raw_input('Please enter a word:')
while word:     # 判断word非空
    word = raw_input('Please enter a word:')
    print 'The word was ' + word
print '\n'
    # 避免输入哑值(dummy value)
while True:     #实现一个死循环
    word = raw_input('Please enter a word:')
    if not word: break # word若为空,跳出循环
    print 'The word was ' + word


#5.5.6 循环中的else子句
from math import sqrt
for n in range(99, 81, -1): #在81到99之间找不到平方数
    root = sqrt(n)
    if root == int(root):
        print n
        break
else:
    print "Didn't find it!"
    
raw_input("Press <enter>")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值