Python流程控制-for循环

本文详细介绍了Python中的for循环,包括其基本语法、遍历不同类型的序列(如字符串、列表、字典等)的方法,以及如何在字典中使用for循环。此外还提供了几个实用的编程练习,帮助读者掌握for循环的高级特性和控制语句。

Python流程控制-for循环

循环是一个结构,导致程序要重复一定的次数
条件循环也是如此,当条件变为假,循环结束
 

for 循环

  - 在序列里,使用for循环遍历。
  - 字符串,元组,列表,字典,都属于序列。
 

格式

for iterating_var in sequence:
    statemen(s)

 

for循环遍历字典

    默认情况下,循环便利字典,字典只能返回key列表,这时我们可以利用字典的 方法,把字典转换为列表或者对象,来编列字典中的key和value
for k,v in b.items():
  print k,v
    把字典转换为列表(key和value会以元组的形式存储),然后定义两个变量,接收列表中元组的两个值, 也可以利用字典的iteritems()方法,把字典转换成列表对象,这样更节省内存空间(类似xrange和range的区别)
for k,v in b.iteritems():
  print k,v
 

练习

  打印9*9乘法表:
#!/usr/bin/env python
for i in xrange(1,10):
  for j in xrange(1,i+1):
    print "%s * %s = %s\t" % ( i,j,i*j ),
  print
  打印10以内的奇偶数:
#!/usr/bin/env python
for i in xrange(1,11):
  if i % 2 == 0:
    print i,
注意:由于print默认会打印一个换行符,这里我们在print语句后面添加,(逗号)来取消换行符的输出。
 
 

扩展

  1.for的高级特性
print [ i for i in range(10) ]
这叫列表重写,把for i in range(10),依次赋值给i,这样实际上等同于
for i in range(10):
  print i
后面也可以加条件:
print [ i for i in range(10) if i % 2 == 0 ]
来取偶数

  2.区间对象

range(start,stop,step)
整数型,用来取start----stop的区间,其中start和step默认省略,并且stop不包含在区间内,可以取一个范围,step是步长
 
xrange(int)
用法和range相同,只不过range会直接展开列表(展开列表即要占内存空间,在区间很大的时候,不建议使用),而xrange不会展开,仅仅当我们轮训的时候,才会展开显示。
 

for循环的else语句

for iterating_var in sequence:
  statemen(s)
else:
  statemen(s)
 
else语句为for循环正常结束后要执行的语句,如果for循环被终止(比如满足某条件跳出循环等),那么就不会执行else后面的语句
 
 

for循环控制

    - continue:继续,当满足条件后,跳过本次循环。
    - break:退出,当满足某一个条件后,终止循环。
    - pass:占位符,仅仅起到占位的左右,没有其他效果。
 
    - sys.exit():sys模块的exit方法,表示退出整个程序
 

练习

    猜数字游戏,给6次机会,数字是20以内的随机数。
#!/usr/bin/env python
# -*- coding:utf8 -*-
 
import sys
import random
import time
 
a = random.randint(1,20)
 
for i in xrange(1,7):
num = input("请猜一个数字:")
time1 = 6 - i
if num == a:
  print ("你赢了")
  sys.exit()
elif num > a:
  print("猜大了")
  print "你还有%s次机会" % time1
  print "-------------------------------------"
  time.sleep(1)
  continue
elif num < a:
  print("猜小了")
  print "你还有%s次机会" % time1
  print "-------------------------------------"
  time.sleep(1)
  continue
else:
  print("你输了")
 
posted @ 2016-11-18 16:17 Dahlhin 阅读( ...) 评论( ...)   编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值