循環是一個結構,致使程序要重複必定的次數。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'