python3简明教程--循环

注:本实验来源于 实验楼:python3简明教程 作者: FrostSigh

索引:

项目Value
2.1:Fibonacci数列print()函数的打印说明
2.2:幂级数break的练习说明
2.3:乘法表嵌套循环的练习
2.4:一些打印*号的例子while循环的应用练习
2.5:列表列表的介绍(切片 操作)
2.6:for循环for循环和range()函数
2.7:continue语句continue的练习说明
2.8:循环后的else语句循环后的else执行情况
2.9:棍子游戏continue与break的综合练习
循环: 2.1 Fibonacci数列
a , b = 0, 1
while b < 100:
	print(b)
	a, b = b, a + b

运行结果:
在这里插入图片描述
实验记录: 默认情况下,print() 除了打印提供的字符串外,还会打印一个换行符。可以通过print()的另一个参数end来替换这个换行符。

while b < 100:
	print(b, end = ' ')

(此处用一个空格替换了换行)
在这里插入图片描述

2.2 幂级数

计算幂级数:e^x = 1 + x + x^2 / 2! + x^3 / 3! + … + x^n / n! (0 < x < 1)

x = float(input("Enter the value of x: "))
n = term  = num = 1
result = 1.0
while n <= 100:	
	term *= x / n		# 累乘,计算x^n / n! :(x * x * ... * x / 1 * 2 * 3 *...* n )
	result += term		# 累加,计算 1 + x + ... + x^n/n!
	n += 1				# 使n递增,利用循环计算每一项
	if term < 0.0001:	#判断语句,如果x^n / n! 小于0.0001 结束循环
		break
print("No. of Times = {} and Sum = {}".format(n, result))

结果:
在这里插入图片描述
实验记录: 关键字:break
在if里面使用break,如果break得到执行,那么将终止break所在的这一层循环。

2.3 乘法表

打印10以内的乘法表

i = 1
print("-" * 50)			#打印50个 " - "
while i < 11:			#外层控制行,
	n = 1
	while n < 11:		#内层控制列,打印每一行
		print("{:5d}".format(i * n), end = ' ')
		n += 1
	print()				#每次外层循环打印换行。
	i += 1
print("-" * 50)

结果:
在这里插入图片描述
实验记录: 运用了嵌套循环。一般是二层循环,外层控制行,内层控制列。

print("-" * 50)			#字符串乘上一个整数,将返回由n个字符串拼接起来的新字符串。
2.4 一些打印*号的例子
rows = int(input("Enter the number of rows: "))

n = rows
while n >= 1:
	print("*" * n)
	n -= 1
print()

n = rows
i = 1
while i <= n:
	print("*" * i)
	i += 1
print()

n = rows
i = 0
while n >= 1:
	print(" " * i + "*" * n)
	n -= 1
	i += 1
	

结果:
在这里插入图片描述

2.5 列表

列表可想象为一组有序的元素(可以是不同类型)集合,编号从0开始,编号可称为索引。
当索引为负数时,是倒着进行索引。

列表的切片操作:
格式:a[ : : ]
1,切片不会改变正在操作的列表,返回的是子列表。
2,切片的索引:第一个默认为0,第二个索引默认为切片的字符串的大小。(python中有关下标的集合都满足左闭右开原则,像a[0:5]其索引值为0,1,2,3,4类似于数学中的**[0,5)**)
3,过大的索引值将被列表的实际长度所代替。
4,切片操作还可以设置步长,第三个索引值,默认为1.
5,列表允许修改。可以向列表中增添,删改元素
6,通过内建函数len(),可以返回列表的长度
7,列表允许嵌套。

2.6 for 循环

这里的for循环遍历任何序列(如列表和字符串)中的每一个元素。
range()函数:
格式:range(x, x, x)
如果你需要一个数值序列,range()函数会生成一个等差数列(同样满足左开右闭)。如:

for i in range(1, 9, 2):
	print(i, end = ' ')

在这里插入图片描述

2.7 continue语句

如同break,在循环中使用continue,会跳过其后的代码回到循环开始处执行。(可以帮助我们跳过部分循环)
例:要求用户输入一个整数,如果输入的是负数,要求再次输入;如果输入的是正数,计算其平方。用户输入0来跳出循环。

while True:
	n = int(input("Please input a number , and Enter '0' to quit!: "))
	if n < 0:
		continue
	elif n == 0:
		break
	print("Square is : "n ** 2)

print("Goodbye!")

结果:
在这里插入图片描述
实验记录:
continue 与 break的运用,前者执行时,跳过其后语句,回到循环开始;
后者执行时,跳过整个循环,继续循环后的语句。

2.8 循环的else语句

可以在循环后面使用可选的else语句。它会在循环完毕后执行,除非有break语句终止了循环,else才不会执行。

2.9 棍子游戏

一个游戏,对continue和break做练习。

这是一个非常简单的游戏。这里有21根棍子,首先用户选1到4根,然后电脑选1到4根棍子。谁选到最后一根棍子谁就输了。(用户没有赢得机会)
这里的特别说明给出了答案(用户和电脑一次选的总数只能是5!!,一共21根,每一轮选走的棍子只能是5,那最后一根一定是用户选的!!!)

sticks = 21

print("There are 21 sticks, you can take 1-4 numbers of stick at a time")
print("Whoever will take the last stick will loose!")

while True:
	print("sticks left: ", sticks)
	sticks_taken = int(input("Take sticks(1-4): "))
	
	if sticks == 1:
		print("You took the last stick, you lose!")
		break
		
	if sticks_taken >= 5 or sticks_taken <= 0:
		print("Wrong choice!")
		continue
	
	print("Computer took: ", (5 - sticks_taken))
	sticks -= 5 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值