Python的循环结构

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)

总结不易
各位大佬,
你们的每一个点赞是对博主创作的肯定;
你们的每一次转发是对博主创作的支持
你们的每一次收藏是博主的莫大的荣幸
你们的每一次评论是对博主最好的理解
谢谢!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

由心同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值