Python3循环结构(while循环、for循环)

向量数据库大模型机器学习
 在Python中主要有两种类型的循环结构:for循环和while循环。for循环一般用于有明显边界范围的情况,例如,计算1+2+3+4+5+…+100等于几的问题,就可以用for循环求解。While循环一般应用于循环次数难以确定的情况。下面分别介绍这两种循环结构。

一、for循环

通常使用for循环时会有一个固定的边界范围,例如,用for循环求解1+2+3+4+5+…+100,实现代码如下:

  
#!/usr/bin/python3  
sum=0  
for i in range(1,101): #range()  
 sum=sum+i  
else:  
    print(sum)
运行结果
  
5050

for 循环嵌套

循环嵌套为循环中嵌套另外一层循环。

  
for <外层循环变量> in <外层循环序列>:  
 for < 内层循环变量 > in < 内层循环序列 >:

循环嵌套经典示例1:

  
#!/usr/bin/python3  
for i in range(1,10):  
 for j in range(1,i+1):  
 e=j*i  
 print('%d*%d=%d'%(j,i,e),end=" ")   
 print()

运行结果:

  
1*1=1   
1*2=2 2*2=4   
1*3=3 2*3=6 3*3=9   
1*4=4 2*4=8 3*4=12 4*4=16   
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25   
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36   
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49   
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64   
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

While循环
当循环次数无界时通常会使用while循环,例如,求2~10之间的素数,此时可以选择while循环进行计算:

  
#!/usr/bin/python3  
# -*- coding: UTF-8 -*-  
i = 2  
while (i < 10):  
 j = 2  
 while (j <= (i / j)):  
 if not (i % j): break  
 j = j + 1  
 if (j > i / j):  
 print(i, " 是素数")  
 i = i + 1  
print("Good bye!")

运行结果:

  
2 是素数  
3 是素数  
5 是素数  
7 是素数  
Good bye!

二、while循环

当循环次数无界时通常会使用while循环。

1、使用while循环输出九九乘法表

  
i=1  
while i < 10:  
 j = 1  
 while j < i + 1:  
 #print(j, '×', i, '=', i * j, sep='', end='\t')  
 print('%d*%d=%d'%(j,i,i*j),sep='', end='\t')  
 j += 1  
 print()  
 i += 1

结果输出

  
1*1=1   
1*2=2 2*2=4   
1*3=3 2*3=6 3*3=9   
1*4=4 2*4=8 3*4=12 4*4=16   
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25   
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36   
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49   
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64   
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

2、求1+2+……+x的和

  
i=int(input("i=:"))  
sum=0  
while i!=0:  
 sum=sum+i  
 i=i-1  
  
else:  
 print("sum=:",sum)  

输出:

  
i=:100  
sum=: 5050

3、简单图形打印

  
i=0  
while i<7:  
 i +=1  
 j=1  
 while j < 7-i:  
 print("*", end=" ")  
 j += 1  
 print()

运行:

  
* * * * *   
* * * *   
* * *   
* *   
*

倒三角总看着不舒服

  
i=0  
while i<7:  
 i +=1  
 j=1  
 while j < i:  
 print("*", end=" ")  
 j += 1  
 print()

输出:

  
*   
* *   
* * *   
* * * *   
* * * * *   
* * * * * *  

4、此外,跳出while循环有两种方法:

1.while条件语句为False
2.break

  
#!/usr/bin/python3  
#coding:utf-8  
# while条件语句为False,退出循环。  
num = 0  
while num < 3:  
 print(num)  
 num += 1  
else:  
 print("while条件语句为False,退出循环")  
# break退出循环  
num = 0  
while True:  
 print(num)  
 num += 1  
 if num > 2:  
 print("break退出循环")  
 break

运行结果:

  
0  
1  
2  
while条件语句为False,退出循环  
0  
1  
2  
break退出循环  
  
Process finished with exit code 0

5、搞个实例:
比如我们需要一个功能,如果一个公司的员工,做的项目超过或等于20个,则他的年终奖加上20000块钱,如果项目超过10个(小于20个)则他的年终奖加上10000块钱,项目不足10个(含10个)则年终奖按默认的发。

  
#!/usr/bin/python3  
#coding:utf-8  
money=0  
project=int(input("请输出今年做的项目个数:").strip())  
if project>=20:  
 print("恭喜您今天做的项目超过了20个,追加奖金20000元")  
elif 10<=project<20:  
 print("恭喜您今天做的项目超过了10个,追加奖金10000元")  
elif 0<=project<10:  
 print("您今年的年终奖将按照默认的发放")  
else:  
 print("输入有误")

运行:

  
请输出今年做的项目个数:1  
您今年的年终奖将按照默认的发放  
  
请输出今年做的项目个数:11  
恭喜您今天做的项目超过了10个,追加奖金10000元  
请输出今年做的项目个数:29  
恭喜您今天做的项目超过了20个,追加奖金20000元

发现每用一次都得运行一次,很麻烦,搞个while循环

  
#!/usr/bin/python3  
#coding:utf-8  
while 1: #1在bool中为True,所以while 1可以正常运行  
 project=input("请输出今年做的项目个数:").strip()#.strip()去空格  
 if project =="Q":  
 print("退出程序")  
 break  
 elif 10<=int(project)<20:  
 print("恭喜您今天做的项目超过了10个,追加奖金10000元")  
 elif 0<=int(project)<10:  
 print("您今年的年终奖将按照默认的发放")  
 elif int(project)>=20:  
 print("恭喜您今天做的项目超过了20个,追加奖金20000元")  
  
  
 else:  
 print('输入错误')  

运行

  
请输出今年做的项目个数:1  
您今年的年终奖将按照默认的发放  
请输出今年做的项目个数:11  
恭喜您今天做的项目超过了10个,追加奖金10000元  
请输出今年做的项目个数:21  
恭喜您今天做的项目超过了20个,追加奖金20000元  
请输出今年做的项目个数:Q  
退出程序  

PS:这里输入字符串类型的会抛出异常

都是搞安全的上面这个例子替换成安全相关的吧

  
#!/usr/bin/python3  
#coding:utf-8  
import os  
while 1: #实现一直不停的循环  
 cmd = input("root>>> ") #终端提示符为>>>  
 if cmd.lower() in ["exit","quit"]: break #如果检测到用户输入exit,quit就结束程序,Python3 lower() 方法转换字符串中所有大写字符为小写。  
 elif cmd: os.system(cmd) #如果用户输入有内容,就执行输入的内容  
 else: pass #如果用户输入为空,则继续显示提示符等待用户输入,这行可以取消,写在这里主要是为了和前面的思路对应,便于阅读。  

运行:

  
root>>> whoami  
laptop-f9st6qqt\150  
root>>> net user  
  
\\LAPTOP-F9ST6QQT ���û��ʻ�  
  
-------------------------------------------------------------------------------  
150 Administrator DefaultAccount   
Guest sss WDAGUtilityAccount   
����ɹ���ɡ�  
  
root>>> quit  
  
Process finished with exit code 0  

6、while里面还有一个continue,continue可以跳过(非退出)本次的循环执行下一次循环,可以用continue做一个简单的生成偶数的代码。

  
#!/usr/bin/python3  
#coding:utf-8  
num = 1  
while num < 10:  
 num += 1  
 if num%2 > 0:  
 continue  
 print (num)

运行:

  
2  
4  
6  
8  
10

原文在我的CSDN

https://blog.csdn.net/szgyunyun/article/details/110474976

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
如何利用云原生构建 AIGC 业务基石
AIGC即AI Generated Content,是指利用人工智能技术来生成内容,AIGC也被认为是继UGC、PGC之后的新型内容生产方式,AI绘画、AI写作等都属于AIGC的分支。而 AIGC 业务的部署也面临着异构资源管理、机器学习流程管理等问题,本次分享将和大家分享如何使用云原生技术构建 AIGC 业务。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论