放弃考研,准备春招!
前面一些琐事耽搁了,现补上。
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循环的学习到此告一段落,后面开启容器和列表的学习。