2.2 流程控制-for序列 2.3 流程控制-for字典 2.4 循环退出 2.5 流程控制-while

2.2 流程控制-for序列

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

2.3 流程控制-for字典

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 ""

2.4 循环退出

for 循环也有else,在for循环正常结束后使用

for i in range(0,10):
	print i
else 
	print 'end'

break 退出当前循环 continue 退出本次循环,进行下次循环 exit 退出脚本

2.5 流程控制-while

while循环,直到表达式变为假才退出循环,表达式是一个逻辑表达式,必须返回True或者False。

while expression :
	statements(s)
	
while 1 :
	print "Hello "  \\能够while True :  但不能 while False :

练习

练习 1

  1. 有一、二、三、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是一、二、三、4。组成全部的排列后再去 掉不知足条件的排列。
  2. 打印出全部的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数自己。例如:153是一个“水仙花数”,由于153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每一个数分解出个位,十位,百位。
  3. 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

一、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'}

练习2

  1. 将一个正整数分解质因数。例如:输入90,打印出90=233*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数i,而后按下述步骤完成: (1)若是分解后商为1,则说明分解质因数的过程已经结束,打印出便可。 (2)若是商不为1,则应打印出i的值,并用n除以i的商,做为新的正整数进行分解,  重复执行第一步。 (3)若是n不能被i整除,则i的值加1,重复执行第一步。

  2. 猴子吃桃问题:猴子第一天摘下若干个桃子,立即吃了一半,还不瘾,又多吃了一个,次日早上又将剩下的桃子吃掉一半,又多吃了一个。之后天天早上都吃了前一天剩下的一半零一个。到第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
相关文章
相关标签/搜索