循环是一个结构,致使程序要重复必定的次数。python
条件循环也是如此,当条件变为假,循环结束。git
在序列里,使用for循环遍历。express
语法:vim
for iterating_var in sequence:dom
statement(s)函数
字符串变量:测试
i, 抑制换行符在一行显示。spa
列表:对象
range()函数:索引
range()返回时一个列表;
range能够快速的生成一个序列
range(I, j, [,步进值])
若是所建立对象为整数,能够用range
i为初始值,不选默认为0;j为终止值,但不包括在范围内;步进值默认为1;
示例:算1+2 +3...+100 的大小
vim 3.py
#! /usr/bin/python
sum = 0
for i in range(1,101):
sum = sum + i
print sum
xrange函数:
xrange()函数用法与range彻底相同,所不一样的是生成的不是数值列表,而是一个生成器。
xrange()生成的对象只有在遍历的时候才输出列表元素,比较节约内存资源。
迭代遍历
遍历序列:将序列中各个元素取出来。
- 直接从序列取值
- 经过索引取值
注:“迭代”,指重复执行一个命令。
示例:写一个乘法表
vim 5.py
#! /usr/bin/python
for i in range(1,10):
for j in range(1,i+1):
print "%s*%s=%s" % (j,i,j*i),
标注:
第一行表示乘法表的行数;
第二行内层循环,控制列数的,j的取值是1到i+1
第三行表示外层循环一次i的值乘以j的值,不换行;
第四行表示内层循环结束后打印换行符;
for
else
for循环正常结束后,才会执行else语句。
1. 正常循环结束测试else
vim 6.py
#! /usr/bin/python
for i in xrange(1,10):
print i
else:
print 'main end'
2. 导入time模块
#! /usr/bin/python
import time
for i in xrange(1,10):
print i
time.sleep(1)
else:
print 'main end'
一秒中循环打印一次
按ctrl + c退出循环后else后不执行;
3. break退出循环
#! /usr/bin/python
for i in xrange(1,10):
print i
if i == 5:
break
else:
print 'main end'
break退出循环else也不执行;
4. continue继续循环,知足条件的不执行continue后面的操做。
#! /usr/bin/python
for i in xrange(1,10):
if i == 3:
continue
if i == 5:
break
print i
else:
print 'main end'
5. 导入sys模块sys.exit()退出整个脚本
import 导入模块
pass 占位不执行操做
sys.exit() 退出,后面的print ‘hello’ 都不执行
#! /usr/bin/python
import sys
for i in xrange(1,10):
if i == 3:
continue
elif i == 5:
continue
elif i == 7:
pass
elif i == 8:
sys.exit()
print i
else:
print 'main end'
print 'hello'
练习:
import random
random.randint(1,20) 在1到20之间随机生成一个整数,包含1和20;
#! /usr/bin/python
# -*- coding: utf-8 -*-
import os,sys
import random
ran = random.randint(0,20)
for i in xrange(1,7):
num1 = raw_input("please input a number: ")
num2 = int(num1)
if num2 == ran:
print 'you win'
break
else:
if num2 > ran:
print "猜大了"
elif num2 < ran:
print '猜小了'
else:
print 'you lose'
#!/usr/bin/python
import random
import sys
ran=random.randint(1,20)
#for i in xrange(1,7):
for i in xrange(1,7):
while True:
a=raw_input("plese input a num: ")
if not a.isdigit():
continue
else:
break
a = int(a)
if a == ran:
print ('you win!')
break
else:
if a > ran:
print 'too big'
print 'you have '+str(6-i)+' Test'
elif a < ran:
print 'too small'
print 'you have '+str(6-i)+' Test'
else:
print 'you win!'
if i==6:
print 'you lose!'
while与for相比:
for循环用在有次数的循环上。
while循环用在有条件的控制上。
while循环,直到表达式变为假,才退出while循环,表达式是一个逻辑表达式,必须返回一个true或false。
语法:
while expression
statement(s)
1.
#! /usr/bin/python
while 1:
print 'hello'
注:while 1: 表示true,因此执行下面的print ‘hello',因为没有表达式为false,因此一直循环下去,处于死循环状态
#! /usr/bin/python
n = 0
while not n == 5:
print 'hello'
n += 1
注;循环一次n变为1,循环5次后n==5 ,第六次循环时n 已经等于5,条件false退出不执行后面循环。
2.
#! /usr/bin/python
n = 0
while True:
if n ==5:
break
print 'hello'
n += 1
3.
#! /usr/bin/python
while True:
print 'hello'
a = raw_input("please input something(q exit): ")
if a == 'q':
break
4.
#! /usr/bin/python
a = ''
while a != 'q':
a = raw_input("please input something(q for exit): ")
print 'hello'
注:先给a一个初始值,当键盘输入q时退出循环
5.
#! /usr/bin/python
a = ''
while a != 'q':
a = raw_input("please input something(q for exit): ")
print 'hello'
if not a:
break
注:a等于任何非空字符串时都是正确的,因此not a 为false;
a 等于空字符串时false,not a 为true,因此执行后面break;
else:
while循环也支持else,和for循环同样,循环正常结束后执行else下内容;
正常结束为遇到假的表达式时退出。
当循环中使用break结束或则执行过程总按ctrl c 退出不执行else
#! /usr/bin/python
a = ''
while a != 'q':
a = raw_input("please input something(q for exit): ")
print 'hello'
if not a:
break
else:
print 'main end'