2021-11-19

放弃考研,准备春招!

前面一些琐事耽搁了,现补上。
python学习第四天,主要内容为for循环和break、continue、pass关键字的学习

一、for循环

概念:迭代可迭代的对象,一般用于遍历容器中的元素
语法:
for i  in 容器:
#每次取出一个元素赋值给这个变量i
	print("")

可以用range函数控制for循环的结束

range()函数

语法:

1、range(num) #表示0~num区间内的整数,范围为前闭后开的区间:[0,num)
2、range(num1,num2) #表示num1~num2区间内的整数,范围为前闭后开的区间:[num1,num2)
3、range(num1,num2,num3)#表示num1~num2区间内的整数,范围为前闭后开的区间:[num1,num2),且以步长为num3存放

二、具体案例:

1、显示0~100内所有偶数的和

j=0

for i in range(0,101,2):
	#print(i)
	j += i
print(j)
结果如下:

在这里插入图片描述

2、打印星星三角阵

功能:

(1)使输出结果为星星三角阵,并上下对称

分析:

(1)使用双层for循环,使变量遍历容器range里的元素。变量i控制打印行数,变量j控制打印列数。
(2)用end=""和print()指令,实现每打印一行后再换行。

代码实现如下:
#三角打印
layer1 = int(input("请输入所打印行数(奇数)"))
layer = layer1 // 2
#上半部分
for i in range(layer+1):
	
	for j in range(i):
		print("*",end="")
	
	print()
#下半部分
for i in range(layer+1,0,-1):
	
	for j in range(i):
		print("*",end="")
	print()
结果如下:

在这里插入图片描述

3、打印星星菱形阵

功能:

(1)使输出为星星组成的菱形阵,并且上下左右都对称

分析:

(1)使用双层循环,最外层循环控制打印行数,内层循环分为两部分,第一部分控制计算空格的数量,第二部分控制计算星星的数量。
(2)空格的计算为倒序,下一层的数量小于上一层,故range容器用range(num1,num2,step)语法书写,step为-1。
(3)用end=""和print()语句实现每打印完一行后再换行。

代码实现如下:
#菱形打印
layer1 = int(input("请输入所打印行数(奇数)"))
layer = layer1 // 2
#上半部分
for i in range(layer+1):
	
	for j in range(layer+1-i,0,-1):
		print(" ",end="")
	for k in range(2*i-1):
		print("*",end = "")
	print()
#下半部分
for i in range(layer+1,0,-1):
	
	for j in range(layer+1-i,0,-1):
		print(" ",end="")
	for k in range(2*i-1):
		print("*",end = "")
	print()
结果如下:

在这里插入图片描述

4、打印星星空心菱形阵

功能:

(1)使输出为星星组成的空心菱形阵,并且上下左右对称

分析:

(1)使用双层for循环,外面一层判断打印的行数,里面一层循环分为两部分,第一部分判断计算空格的数量,第二个循环判断需要打印的星的位置。(2)本题所需打印星星的位置为容器里第一个元素和第2*当前打印行数的元素。其余为空格。故需在打印星星的循环里使用if语句判断容器元素的位置。
(3)空格的计算为倒序,下一层的数量小于上一层,故range容器用range(num1,num2,step)语法书写,step为-1。
(4)用end=""和print()语句实现每打印完一行后再换行。

代码实现如下:
#空心菱形打印
layer1 = int(input("请输入所打印行数(奇数)"))
layer = layer1 // 2

#上半部分

for i in range(layer):
	
	for j in range(layer-i,0,-1):
		print(" ",end="")
	for k in range(2*i+1):
		if  k == 0 or k == 2*i :
			print("*",end = "")

		else:
			print(" ",end = "")
	print()
#下半部分
for i in range(layer,-1,-1):
	
	for j in range(layer-i,0,-1):
		print(" ",end="")
	for k in range(2*i+1):
		if  k == 0 or k == 2*i :
			print("*",end = "")

		else:
			print(" ",end = "")
	print()

 
结果如下:

在这里插入图片描述

5、打印星星盾牌阵

功能:

(1)使输出为星星盾牌阵,盾牌阵即在空心菱形阵的基础上显示其两条对角线

分析:

(1)盾牌外轮廓为空心菱形,故思路与之前一致,不多赘述
(2)需要添加的地方为两条对角线的打印。故需通过判断来确定。垂直的对角线位置为容器的第当前打印行数个元素,水平的对角线为上半部分的最后一行或下半部分的第一行,按照三角打印方法里的单行打印写即可。
(3)空格的计算为倒序,下一层的数量小于上一层,故range容器用range(num1,num2,step)语法书写,step为-1。
(4)用end=""和print()语句实现每打印完一行后再换行。

代码实现如下:
#盾牌打印
layer1 = int(input("请输入所打印行数(奇数)"))
layer = layer1 // 2

#上半部分

for i in range(layer):
	
	for j in range(layer-i,0,-1):
		print(" ",end="")
	for k in range(2*i+1):
		if  k == 0 or k == 2*i or k == i :
			print("*",end = "")

		else:
			print(" ",end = "")
	print()
#下半部分
for i in range(layer,-1,-1):
	if i == layer:
		
		for j in range(2*i+1):
			print("*",end="")

	else:
		for j in range(layer-i,0,-1):
			print(" ",end="")

		for k in range(2*i+1):
			if  k == 0 or k == 2*i or k == i :
				print("*",end = "")

			else:
				print(" ",end = "")
	print()
结果如下:

在这里插入图片描述

6、打印星星圣诞树

功能:

(1)使输出为星星组成的圣诞树

分析:

(1)圣诞树结构为上面为三角下面为直线。
(2)三角打印方法参考菱形阵的上半部分,不多赘述
(3)下半部分为直线,位置为容器的第需要打印的行数个元素,在此位置打印星星其余为空格即可。
(4)空格的计算为倒序,下一层的数量小于上一层,故range容器用range(num1,num2,step)语法书写,step为-1。
(5)用end=""和print()语句实现每打印完一行后再换行。

代码实现如下:
#圣诞树打印
layer1 = int(input("请输入所打印行数(奇数)"))
layer = layer1 // 2

#上半部分
for i in range(layer+1):
	
	for j in range(layer-i,0,-1):
		print(" ",end="")
	for k in range(2*i-1):
		print("*",end = "")
	print()
#下半部分
for i in range(layer+1,0,-1):
	
	for j in range(layer-1):
		print(" ",end="")
	print("*")
	
结果如下:

在这里插入图片描述

三、小结

通过这几个程序,目前对于for循环的应用已基本理解透彻。
if判断、while循环和for循环的学习到此告一段落,后面开启容器和列表的学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值