Python 基础知识 之 循环结构 + 程序跳转语句 + 空语句
1.遍历循环for
注意冒号
- 遍历字符串
for i in 'hello':
print(i)
结果:
h
e
l
l
o
- for循环计算
range()函数,Python的内置函数,产生一个[n,m] 的整数序列,包含n但不包含m
⭐⭐⭐⭐⭐
# 求0-10的和
sum = 0
for n in range(0,11):
sum+=n
n=n+1
print("0-10的和是",sum)
结果:
55
------------------------------------------
#输出0-10的偶数
for i in range(1,11):
if i % 2 == 0:
print(i,"偶数")
- 输出100到999之间的水仙花数
水仙花数:153=3*3*3+5*5*5+1*1*1
个位数的三次方+十位数的三次方+百位数的三次方
for i in range(100,1000):
if (i % 10)**3 + (i // 10 % 10)**3 + (i // 100)**3 == i:
print(i,"为水仙花数")
for i in range(100,1000):
sd = i % 10
tend = i // 10 % 10
bai = i // 100
if sd ** 3 + tend ** 3 + bai ** 3 == i:
print(i, "为水仙花数")
遍历循环的扩展形式
s = 0
for i in range(1,11):
s+=i
else:
print('1-10的和',s)
2.无限循环while
- 通过条件来决定循环体内的内容是否重复执行
- 语法结构:
while condition:
statement(s)
-
注意
:这几个变量都是同一个变量 -
while使用
answer = input('今天要上课嘛?y/n:') #(1)初始化变量
while answer == 'y': #(2)条件判断
print('好好学习,天天向上') #(3)语句块
answer = input('今天要上课嘛?y/n:') #(4)改变变量
------------------------------------------------
# 1-100的累加和
s = 0
i = 1 #(1)初始化变量
while i <=100: #(2)条件判断
s += i #(3)语句块
i+=1 #(4)改变变量
print(s)
------------
# 改写:while...else...的扩展应用
s = 0
i = 1 #(1)初始化变量
while i <=100: #(2)条件判断
s += i #(3)语句块
i+=1 #(4)改变变量
else
print(s)
-------------------------------------------------------
# 模拟用户登录
i = 0 #(1)初始化变量
while i<3: #(2)条件判断
user = input("please input your username:")
passwd = input("please input you password:")
if user !='kyle' and passwd != 1: #(3)语句块
print('您还有',2-i,'次机会')
i+=1 #(4)改变变量
else:
print('succeed')
print('输入三次错误,登录失败')
3.循环嵌套
- 输出图形(简易版)
for i in range(1,6):
print(" "*(5-i) + ("*-"*i).strip("-"))
for i in range(0,6):
print(" "*i + ("*-"*(5-i)).strip("-"))
for i in range(1,6):
print("*"*i)
for i in range(6,0,-1):
print("*"*i)
-----------
效果:
*
*-*
*-*-*
*-*-*-*
*-*-*-*-*
*-*-*-*-*
*-*-*-*
*-*-*
*-*
*
*
**
***
****
*****
******
*****
****
***
**
*
- 循环输出图形
a.长方形
for i in range(1,4): #外循环
for j in range(1,5): #内循环
print('*',end='')
print() #空的print语句,作用换行
结果:
####
####
####
b.三角形
for i in range(1,6):
for j in range(1,6):
if i == j:
print('*'*i)
---------------------------------
for i in range(1,6):
for j in range(1,i+1):
print('#',end='')
print()
结果:
#
##
###
####
#####
c.倒三角形
for i in range(1,6):
for j in range(1,7-i):
print('#',end='')
print()
结果:
#####
####
###
##
#
d.等腰三角型
- 技巧:倒三角形(空值)+ 输出
for i in range(1,6):
for j in range(1,6-i):
print(' ',end='')
for k in range(1,2*i):
print('#',end='')
print()
结果:
#
###
#####
#######
#########
d.倒等腰三角型
- 技巧:倒三角形(空值)+ 输出
for x in range(1,6):
for y in range(1,x+1):
print(" ",end='')
for z in range(1,(10-2*x)):
print("#",end='')
print()
结果:
#######
#####
###
#
d.菱形
- 技巧:正倒等腰三角形
for i in range(1,6):
for j in range(1,6-i):
print(' ',end='')
for k in range(1,2*i):
print('#',end='')
print()
for x in range(1,6):
for y in range(1,x+1):
print(" ",end='')
for z in range(1,(10-2*x)):
print("#",end='')
print()
结果:
#
###
#####
#######
#########
#######
#####
###
#
d.树
- 技巧:等腰三角形 + 空长方形 +实长放行
for i in range(1,7):
for j in range(1,7-i):
print(' ',end='')
for k in range(1,2*i):
print('#',end='')
print()
for x in range(1,5):
for y in range(1,5):
print(" ",end='')
for z in range(1,2):
print("#"*3,end='')
print()
结果:
#
###
#####
#######
#########
###########
###
###
###
###
d.空心菱形
- 技巧:+判断,
for i in range(1,5):
for j in range(1,5-i):
print(' ',end='')
for k in range(1,2*i):
if 1<k<2*i-1:
print(' ',end='')
else:
print("#",end='')
print()
for x in range(1,5):
for y in range(1,x+1):
print(" ",end='')
for z in range(1,8-2*x):
if 1<z<8-2*x-1:
print(' ',end='')
else:
print("#",end='')
print()
结果:
#
# #
# #
# #
# #
# #
#
4.break -程序跳转语句
- 结束循环
- 使用:
# 累加计算
s = 0
i = 0
while i<11:
s += i
if s > 20:
print("累计和大于20时当前的值为:",i)
break
i += 1
结果:6
-------------------------------------------
for i in 'hello':
if i == "l":
break
print(i,end='')
结果:he
5.continue -程序跳转语句
- 跳过本次循环
-使用:
#累加求和:奇数求和
sum = 0
for i in range(101):
if i % 2 == 0: 偶数
continue
sum +=i
print(sum)
结果:2500
------------------------------
#累加求和:偶数求和
sum = 0
for i in range(101):
if i % 2 != 0: 奇数
continue
sum +=i
print(sum)
结果:2550
6.空语句 - pass
-
pass是python中的保留字
-
在语法结构中只起到占位符的作用使语法结构完整,不报错
-
一般可用在if、for、while、函数定义、类的定义中
-
使用
-语法结构完整,不会报错
if True:
pass
while True:
pass
for i in range(10):
pass
总结
- 程序的描述方式有三种:自然语言、流程图和伪代码(代码)
- 程序的组织结构有三种:顺序结构、选择结构(分支结构)、循环结构
- 选择结构分单分支结构(if)、双分支结构(if....else...)和多分支结构(if....elif....else..)
- Python3.11新特征模式匹配match...case...结构
- 循环结构有两种:遍历循环for和无限循环while
- if结构可以互相嵌套,循环结构也可以互相嵌套,建议最多不超过三层
- break和continue只能用在循环结构中,break用于退出整个循环结构,continue用于结束本次循环而进入下一次循环。
- 空语句pass起到占位符的作用,使用语法结构完整、不报错
练习
-
模拟10086查询系统
需求:输入1,显示当前余额;输入2,显示当前的剩余流量,单位为G 输入3,显示当前的剩余通话,单位为分钟;输入0,退出自助查询系统。
点击查看代码
answer = input("是否想查询内容y/n:") while answer == "y": print(""" -----------*详情*----------- 0-退出查询系统; 1-显示当前余额; 2-显示剩余流量,(G) 3- 显示当前剩余通话,单位分钟; ---------------------------- """) num = eval(input("请输入您想查询的内容:")) if num == 0: print("谢谢使用") break elif num == 1: print(44) elif num == 2: print(50) elif num == 3: print(100) else: print("输入有误") answer = input("还想继续操作嘛y/n:") else: print("谢谢使用")
-
计算闰年
点击查看代码
for year in range(2018,3000): if (year % 4 ==0) and (year % 100 != 0) or (year % 400 ==0): print(year)
-
嵌套循环输出九九乘法表
点击查看代码
for i in range(1,10): for j in range(1,i+1): print("%2d *%2d = %2d"%(i,j,i*j),end=' ') print() print("-"*50) for x in range(9,0,-1): for y in range(x,0,-1): print("%2d *%2d = %2d"%(x,y,x*y),end=' ') print() 效果: 1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 -------------------------------------------------- 9 * 9 = 81 9 * 8 = 72 9 * 7 = 63 9 * 6 = 54 9 * 5 = 45 9 * 4 = 36 9 * 3 = 27 9 * 2 = 18 9 * 1 = 9 8 * 8 = 64 8 * 7 = 56 8 * 6 = 48 8 * 5 = 40 8 * 4 = 32 8 * 3 = 24 8 * 2 = 16 8 * 1 = 8 7 * 7 = 49 7 * 6 = 42 7 * 5 = 35 7 * 4 = 28 7 * 3 = 21 7 * 2 = 14 7 * 1 = 7 6 * 6 = 36 6 * 5 = 30 6 * 4 = 24 6 * 3 = 18 6 * 2 = 12 6 * 1 = 6 5 * 5 = 25 5 * 4 = 20 5 * 3 = 15 5 * 2 = 10 5 * 1 = 5 4 * 4 = 16 4 * 3 = 12 4 * 2 = 8 4 * 1 = 4 3 * 3 = 9 3 * 2 = 6 3 * 1 = 3 2 * 2 = 4 2 * 1 = 2 1 * 1 = 1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)