python中主要的流程控制有for循環和while循環python
循環是一個結構,致使程序要重複必定的次數。express
條件循環也是如此,當條件變爲假,循環結束編程
for循環 在序列裏,能夠用for循環進行遍歷app
a='ABC' for i in a : print i \能夠在後面加「,」來不輸出換行符code
rangeorm
help(range)ip
range([start,]stop[,step]) \start 默認爲0,step 默認爲1 ,step是步長;stop不包含在輸出中,好比遍歷[1-10],for i in range(1,11)input
-- 列表重寫it
[i**2 for i in range(1,11) if i % 2 != 0 ] \\ 1-10裏面奇數平方寫入列表中
python3中range即爲py2中的xrange,寫xrange會報錯io
dic1 = {"name":"zx","age":"18"} for k in dic1: print k , dic1[k] for i in dic1.iteritems(): \\.iteritems()相似於xrange print i for k,v in dic1.iteritems() : print k,v
輸出九九乘法表
for i in range(1,10): for j in range(1,i+1): a = i * j if a < 10: print "{0} * {1} = {2} |".format(j,i,a), else: print "{0} * {1} = {2} |".format(j,i,a), if j == i : print ""
for 循環也有else,在for循環正常結束後使用
for i in range(0,10): print i else print 'end'
break 退出當前循環 continue 退出本次循環,進行下次循環 exit 退出腳本
while循環,直到表達式變爲假才退出循環,表達式是一個邏輯表達式,必須返回True或者False。
while expression : statements(s) while 1 : print "Hello " \\能夠while True : 但不能 while False :
一、4個不一樣數字3個隨機排列(4個數字不含0)
n = 0 for i in range(1,5): for j in range(1,5): for q in range(1,5): if i != j and i != q and j !=q : n += 1 print "{0}{1}{2}".format(i,j,q) print n --------- 123 132 213 231 312 321
二、 水仙花數
n = 0 for i in range(1,10): for j in range(0,10): for q in range(0,10): if i ** 3 + j ** 3 + q ** 3 == i * 100 + j * 10 + q : n += 1 print "{0}{1}{2}".format(i,j,q) print n --------- 153 370 371 407
三、 比賽
n = 0 l1 = ['a','b','c'] l2 = ['x','y','z'] dic = {} l = [] for i in l1: for j in l1: for q in l1: if i != j and i != q and j !=q : n += 1 l.append(i) l.append(j) l.append(q) dic = dict(zip(l,l2)) if dic['a'] != 'x' and dic['c'] == 'y': print dic l = [] --------- {'a': 'z', 'c': 'y', 'b': 'x'}
將一個正整數分解質因數。例如:輸入90,打印出90=233*5。 程序分析:對n進行分解質因數,應先找到一個最小的質數i,而後按下述步驟完成: (1)若是分解後商爲1,則說明分解質因數的過程已經結束,打印出便可。 (2)若是商不爲1,則應打印出i的值,並用n除以i的商,做爲新的正整數進行分解, 重複執行第一步。 (3)若是n不能被i整除,則i的值加1,重複執行第一步。
猴子吃桃問題:猴子第一天摘下若干個桃子,立即吃了一半,還不癮,又多吃了一個,次日早上又將剩下的桃子吃掉一半,又多吃了一個。之後天天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。 程序分析:採起逆向思惟的方法,從後往前推斷。
一、
import sys n = input() stat = 0 l = [] if n == 1 : print "n = 1 is prime number!" while n != 1 : for i in range(2,n+1): if n % i == 0 : l.append(i) if i == n : print "n = {0} is prime number !".format(n) sys.exit() n /= i for i in l : if stat == 0 : print "{0}".format(i), stat += 1 else : print " * {0}".format(i),
二、
m = 1 n == 10 while n > 1 : m += 1 m *= 2 n -= 1 print m --------- 1534