2.2 流程控制–for序列
2.3 流程控制–for字典
2.4 循环退出
2.5 流程控制–while
2.2 流程控制–for序列
for循环
:在序列里,使用for循环遍历 直接从序列取值遍历序列
:将序列中各个元素取出来。通过索引来取值
语法格式
1 | for 变量 in 表达式: |
脚本形式
1 | #!/usr/bin/python |
在print i后加,
可以让打印出来的信息显示在一行上,并与空格分开1
2
3
4
5
6
7#!/usr/bin/python
a='abc'
for i in a:
print i,
python for.py
a b c
内置函数 | 作用 |
---|---|
range([i], j,[k]) | 创建一个整数的列表 i开始值 j结束值后一位 k跨度(负数表向左) |
xrange([i], j,[k]) | 创建一个整数的列表 和range用法一样 但它返回xrange对象 遍历时才释放列表 |
range([i], j,[k])
1 | In [6]: range(10) ##0-9的列表 |
xrange([i], j,[k])
通常使用xrange更多,节省内存1
2
3
4
5In [19]: xrange(10)
Out[19]: xrange(10)
In [21]: for i in xrange(10):print i,
0 1 2 3 4 5 6 7 8 9
在for循环中使用1
2
3
4
5
6
7#!/usr/bin/python
for i in range(10):
print i,
python for.py
0 1 2 3 4 5 6 7 8 9
另一种简写(列表解析)1
2
3
4
5
6#!/usr/bin/python
print [i for i in range(10)] ##第一个i相当于print i
python for.py
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
也可以在for里面添加if语句1
2
3
4
5
6
7
8#!/usr/bin/python
for i in range(10):
if i % 2 == 0: ##判断是否为偶数
print i,
python for.py
0 2 4 6 8
另一种简写(列表解析)1
2
3
4
5
6#!/usr/bin/python
print [i for i in range(10) if i%2 == 0]
python for.py
[0, 2, 4, 6, 8]
练习
列出1~10中大于等于4的数字的平方1
2
3
4
5
6#!/usr/bin/python
print [i**2 for i in range(1,11) if i >=4]
python for.py
[16, 25, 36, 49, 64, 81, 100]
练习
获得1-100的总和1
2
3
4
5
6
7
8
9#!/usr/bin/python
sum = 0
for i in range(1,101):
sum += i ##等于sum=sum+i
print sum
python for1.py
5050
2.3 流程控制–for字典
遍历字典的key1
2
3
4In [29]: for i in dic1:
...: print i,
...:
a c b e d
遍历字典的key和value1
2
3
4In [31]: for i in dic1:
...: print i,dic1[i],
...:
a 100 c 100 b 100 e 100 d 100
使用items方法遍历字典1
2
3
4In [32]: for k , v in dic1.items():
...: print k,v,
...:
a 100 c 100 b 100 e 100 d 100
使用.iteritems方法遍历字典iteritems()
用法和items一样 但返回就是一个对象1
2
3
4In [33]: for k , v in dic1.iteritems():
...: print k,v,
...:
a 100 c 100 b 100 e 100 d 100
练习
写一个乘法口诀1
2
3
4
5
6
7#!/usr/bin/python
#coding:utf-8
for i in xrange(1,10):
for j in xrange(1,i+1):
print "%s x %s = %s" %(j, i, i*j),
print ##输出换行符
1 | 1 x 1 = 1 |
2.4 循环退出
在for循环正常结束后(没通过break跳出中断),还可以运行else的代码块
语法格式
1 | for 变量 in 表达式: |
脚本形式
1 | #!/usr/bin/python |
退出 | 作用 |
---|---|
break | 跳出整个循环 |
continue | 调出当前循环 |
pass | 没意义 为了保持语句的整齐 占位使用 |
sys.exit() | 退出整个程序 需要添加sys模块 |
break实例
1 | #!/usr/bin/python |
continue实例
1 | #!/usr/bin/python |
pass实例
1 | #!/usr/bin/python |
sys.exti()实例
1 | #!/usr/bin/python |
练习
系统生成一个20以内的随机整数,
玩家有6次机会进行猜猜看,每次猜测都有反馈(猜大了, 猜小了,猜对了-结束)
6次中,猜对了,玩家赢了。否则系统赢了。
提示:生成随机数 添加random
模块 random.randint(1,20)
1 | #!/usr/bin/python |
2.5 流程控制–while
whle循环,直到表达式变为假,才退出while循环,表达式是一个逻辑表达式,必须返回一个True
或False
。
对比
1)for循环用在有次数的循环上
2)while循环用在有条件的控制上
语法格式
1 | while 表达式: |
脚本形式
1 | #!/usr/bin/python |
退出while的方式
1)触发break1
2
3
4
5
6#!/usr/bin/python
while True:
i=raw_input('Please input something [q for quit]:')
if i =='q':
break
2)表达式为假1
2
3
4
5#!/usr/bin/python
i='' ##空字符串
while i !='q': ##表达式是i=='q'才是假
i=raw_input('Please input something [q for quit]:')
1 | #!/usr/bin/python |
和for一样,while循环正常结束后(没通过break跳出中断),还可以运行else的代码块
语法格式
1 | while 表达式: |
脚本形式
1 | #!/usr/bin/python |
按q正常退出while并运行else语句 直接回车会触发break并不会运行else语句