博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.2 流程控制-for序列 2.3 流程控制-for字典 2.4 循环退出 2.5 流程控制-while
阅读量:6594 次
发布时间:2019-06-24

本文共 2920 字,大约阅读时间需要 9 分钟。

hot3.png

2.2 流程控制-for序列

python中主要的流程控制有for循环和while循环

循环是一个结构,导致程序要重复一定的次数。

条件循环也是如此,当条件变为假,循环结束

  • for循环 在序列里,可以用for循环进行遍历

    a='ABC' for i in a : print i \可以在后面加“,”来不输出换行符

  • range

    help(range)

    range([start,]stop[,step]) \start 默认为0,step 默认为1 ,step是步长;stop不包含在输出中,比如遍历[1-10],for i in range(1,11)

-- 列表重写

[i**2 for i in range(1,11) if i % 2 != 0 ] \\ 1-10里面奇数平方写入列表中

python3中range即为py2中的xrange,写xrange会报错

2.3 流程控制-for字典

dic1 = {"name":"zx","age":"18"}for k in dic1:	print k , dic1[k]	for i in dic1.iteritems():  \\.iteritems()类似于xrange	print ifor 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 ielse 	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. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
  2. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
  3. 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

1、4个不同数字3个随机排列(4个数字不含0)

n = 0for 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---------123132213231312321

2、 水仙花数

n = 0for 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---------153370371407

3、 比赛

n = 0l1 = ['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天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 程序分析:采取逆向思维的方法,从后往前推断。

1、

import sysn = input()stat = 0l = []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 /= ifor i in l :		if stat == 0 :				print "{0}".format(i),				stat += 1		else :				print " * {0}".format(i),

2、

m = 1n == 10while n > 1 :	m += 1	m *= 2	n -= 1print m---------1534

转载于:https://my.oschina.net/u/4030294/blog/2933080

你可能感兴趣的文章
keepalived双机热备原理及实例部署LVS+keepalived
查看>>
曲线学习PyQt5方案一
查看>>
OpenCV学习】矩阵运算和操作2
查看>>
nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器
查看>>
关于在arm裸板编程时使用printf问题的解决方法
查看>>
开源人工智能技术将改变一切
查看>>
2015 上半年 JavaScript 使用统计数据
查看>>
《Python算法教程》——1.6 如果您感兴趣
查看>>
深度解析Java8 – AbstractQueuedSynchronizer的实现分析(下)
查看>>
SSH原理与运用(一):远程登录
查看>>
Spring Framework 4.2 中的新功能和增强功能
查看>>
动态代理解决网站字符集编码
查看>>
Hbuilder--让手爽,飞一般的编码(二)
查看>>
后台统计
查看>>
React组件: 提取图片颜色
查看>>
3D应用开发中的欧拉角和旋转矩阵
查看>>
爬虫必备技能xpath的用法和实战
查看>>
RxJava2.0的初学者必备教程(九)
查看>>
记一次omi的项目之旅
查看>>
Android API级别、代号、发布时间及平台亮点整理
查看>>