提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
目录
目录
一、while 循环:循环的作用就是让指定的代码重复的执行
while 条件:
# 循环体
n = int(input(""))
index = 1 #定义一个整数变量作为初始值
count = 0 #定义和为count
#开始循环
while index <= n: #定义循环范围
count += index #每次循环,让n这个变量和i这个计数器相加
index += 1 #index的数值加1进入下次循环
#当index的值 > n 的值时跳出循环
print("从1-"+str(n)+"的和是:"+str(count)) #循环结束执行print,打印从1-n的和
print("从1-"+str(n)+"的和是:"+str(count))
#可替换为
print(f"从1到{}的和是:{count}")
在开发中, 通常会遇到利用循环重复计算的需求
遇到这种需求,可以:
1.在while上方定义一个变量,用于存放最终计算结果
2.在循环体内部,每次循环都用最新的计算结果,更新之前定义的变量
需求
while 条件:
#执行此条件
else 条件:
#while循环执行结束,执行此条件
index = 0 #定义一个初始值
#开始循环
while index <= 3: #定义循环条件
index += 1 #处理计数器i,更新计数器i的值
print(index) #若满足循环条件,未跳出循环,执行此处print命令
#若while循环结束,跳出循环则执行else里的命令
else:
print("执行else循环条件")
二 break和continue关键字
break关键字:终止循环
continue关键字:结束本次循环,进入下次循环(需要看条件)
index = 0
while index <= 100:
if index == 50:
break #终止循环
#continue
print(index)
index += 1
程序输出0 ~ 49 (当index=50时循环结束,print(index)不执行,故不输出50)
continue 继续执行程序
三 案列
用while循环打印菱形
n = int(input("请输入层数(层数为奇数):")) # n定义为层数,n为奇数
i = 1 # i定义为行数
k = int((n+1)/2)#定义为第k行
while i <= k:#上半部分
print(" "*(k-i), end="")
print("*"*(2*i-1))
i += 1
i = n-1#下半部分
while i >= 1:
j = 1 #打印空格
while j <= n - i:
print(" ", end="")
j += 2
j = 1 #打印*号
while j <= i-1:
print("*",end="")
j += 1
print()
i -= 2
while循环打印等腰三角形
n = int(input("请输入层数"))
i = 1 # i 为行数
while i <= n:
j = 1
space_num = n -i #定义空格与层数 行数的关系
while j <= space_num:
print(" ", end="") #python定义自动换行end="/n",为防止换行此处改为end=""
j += 1
j = 1
star_num = 2*i -1 #定义*号与层数 行数的关系
while j <= star_num:
print("*", end="") #python定义自动换行end="/n",为防止换行此处改为end=""
j += 1
print()
i += 1
四 for 循环 用来迭代数据
for 变量 in 容器:
#每一次迭代出一个元素来
count = [1,2,3,4,5]
for i count:
print(i)
range 函数
range (num) #区间范围为0到num-1[0,num-1)
range (satrt,end) #区间范围是[start,end)
range (satrt,end,step) #区间范围是[start,end),同时每一次加step值
for i in range(0,11,2):
print(i)
例题
用for循环和range函数打印菱形
n = int(input("请输入奇数层数:"))
k = int((n+1)/2) #k为对称轴
#上半部分
for i in range(1,k+1): #定义i的取值为[1,k+1)
print(" "*(k-i),end="")
print("*"*(2*i-1))
#下半部分
for i in range(1,k+1): #下半部分
print(" "*i, end="")
print("*"*(n-2*i))
分析:菱形分为上下两个等腰三角形,例如一个7层的菱形,上下三层分别对称
第四行为对称轴(n=7,k=(7+1)/2=4)当k=4时,i的取值为[1,5)
及i取1,2,3,4
有一堆香蕉,猴子每天吃一半外加一个,到第六天时还剩下一个,问这堆香蕉一共多少个?
for i in range(1,1000):
k1 = i #定义第一天香蕉堆香蕉的个数
k2 = k1/2-1 #第二天香蕉的个数
k3 = k2/2-1
k4 = k3/2-1
k5 = k4/2-1
if k5/2-1 == 1: #第六天香蕉个数为1
print("猴子第一天一共有"+str(i)+"个香蕉")
break