Python的循环结构
本文总结自牛客网Python教程牛客
while 循环
Python中while语句的一般形式:
1 2 | while 判断条件: 语句 |
---|
同样需要注意冒号和缩进。另外,在 Python 中没有 do…while 循环。
举个栗子:
找出1~100以内的所有偶数
x = 0
s = 0
while x!=100:
x += 2
n += 1
print("1~100共有%d个偶数" % n)
while 循环使用 else 语句
在 while … else 在条件语句为 false 时执行 else 的语句块:
简单语句组
类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中 如下所示:
举个栗子
x = int(input("请输入一个数(0/1)")
while x==1: print("you are right!")
else:
print("you are wrong")
无限循环
我们可以通过设置条件表达式永远不为 false 来实现无限循环
实例如下
num =1
while num==1:
str = input("请输入一个数字:")
print("你输入的数字为:%s",%str)
你可以使用 Ctrl+C 来退出当前的无限循环, 无限循环在服务器上客户端的实时请求非常有用。
for 语句
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串,for循环是迭代循环,而while循环是条件循环
for循环的一般格式如下:
for <变量> in <序列>:
<语句>
实例:
#遍历显示字符串中的字符
mystr = input("请输入一行字符串:")
for i in mystr:
print("输入的字符串为:",mystr[i])
在for语句中使用range()函数
如果你需要遍历数字序列,可以使用内置range()函数,他会生成数列
range()函数的用法;
range ( start, stop[ , step])
range()函数是一个用来创建算术级数序列的通用函数,返回一个[start,start + step, start+ 2*step·····]结构的序列
具有以下特性:
第一:如果step参数数省缺,默认为1;若start参数省缺,默认为0;
第二:step参数必须是非零整数,否则会显示异常
第三,同时也是_要特别注意的一点:range()函数返回一个左闭右开[left,right)的序列数_
其他语句
在Python的循环结构中,常用的其他三种语句为:break、continue、pass语句
break语句
使用break语句可以跳出while或for循环的本层循环尤其是在多层嵌套循环中使用break可以提前终止内层循环
实例说明:
for i in "python":
if i =="y":
break
continue语句
continue语句用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环
实例说明:
days = [1,2,3,8,4,5,6,7,8,9]
for i in days:
if i>=7:
continue
print("今天是星期" ,i)
pass语句
在Python程序设计中,pass是空语句,不做任何事情,为了保持程序结构的完整性,一般作为占位语句
实例说明:
for i in "python":
if i == y:
pass
print("执行pass块")
print("当前字母为:" ,i)
print("Over!")
编程练习
查找0~500内的所有完数
for j in range(2,501):
k = []#定义一个空列表用于存放完数
n = -1#统计列表的下标数
s = j#由于控制内层循环的退出
for i in range(1, j):
if j % i == 0:
n = n+1
s = s-i
k.append(i)
if s == 0:
print("完数:%d" % j, ",其因子如下:")
for i in range(n+1):
print(str(k[i]), end=" ")
print("\n")
绘制菱形
print("绘制的菱形:")
for i in range(4):
for j in range(3-i):
print(" ", end="")
for k in range(2*i+1):
print("◇", end="")
print()
for i in range(3):
for j in range(i+1):
print(" ", end="")
for k in range(5-2*i):
print("◇", end="")
print()
解决数学问题
一个球从100高度自由下落,每次落地后反弹回原来高度的一半,求球第十次落地时共经过多少米?
Sn = 100.0
Hn = Sn/2
for n in range(2, 11):
Sn += 2*Hn
Hn /= 2
print("第十次落地时共经过%f米" % Sn)
print("第十次反弹%f米" % Hn)
x2 = 1
for day in range(9, 0, -1):
x1 = (x2+1)*2
x2 = x1
print("第一天共摘了%d个桃子" % x2)
有2,3,4,5四个数字,能组成多少个互不相同的且无重复数字的三位数?
n =0
for i in range(2,6):
for j in range(2,6):
for k in range(2, 6):
if (i != j) and (i != k) and (j != k):
n += 1
print("%d%d%d" % (i, j, k),end= " ")
if n % 6 == 0:#每行输出6个数
print()
print("\n满足题意的三位数有:%d个" % n)
总结不易
各位大佬,
你们的每一个点赞是对博主创作的肯定;
你们的每一次转发是对博主创作的支持
你们的每一次收藏是博主的莫大的荣幸
你们的每一次评论是对博主最好的理解
谢谢!