福建省网站建设_网站建设公司_字体设计_seo优化
2025/12/27 19:56:59 网站建设 项目流程

包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!

第一部分:for循环

什么是for循环?
在什么时候需要用到循环?
for循环基本语法:
1for临时变量in可迭代序列:2循环中的执行语句13循环中的执行语句24...
语法分解说明:
比如:如果某一个数据中的元素,需要被逐个循环调用。
1a='abcefgh'2foriina:# i是临时变量;a是可迭代序列3print(i)
遍历结果:

比如:如果某一项操作,需要重复执行。
1a='abcefgh'2foriina:3print("我爱编程")
操作结果:

range()函数

两个参数示例:
1foriinrange(1,10):2print(i)
示例运行结果:
因此,可以得到range()函数有范围要求。
范围:range()函数包头不含尾(左闭右开区间)。

range()函数是可以只传递一个数据的。上面的示例已经展示了两个参数的用法。下面是单个参数的情况:
单个参数示例:
1foriinrange(5):2print(i)
运行结果:

从运行结果可知。range(5)生成从0开始到4的整数序列。从而得知,range()函数没有指定开始值的时候,默认从0开始,一直到指定值前一个值结束(符合包头不含尾的特性)。

综合案例讲解:

1.反转字符串
1# 定义一个需要反转的字符串。2a="I love Python"3# 在定义一个空字符串,用于存储反转后的字符。4b=""56# 利用for循环将字符串种的每个字符添加到b的前面7foriina:8b=i+b# 注意:i每次都加在b前面。所以,最新拿到的字符会出现在字符串最前面,实现反转。910# 打印反转后的字符串。11print(b)
运行结果为:

2.过滤字符串中的空格
1a="Hello World 哈哈哈哈哈哈"2b=""34foriina:5ifi!=' ':#只有当i不等于空格时才会进行判断里面的拼接操作6b+=i78print("过滤后的字符串:",b)
运行结果:

3.计算连续整数的累加和累乘
1# 连续整数的累加: 1-1002sum_=03foriinrange(1,101):4sum_+=i# 等价于:sum_ = sum_ + i56print("总和:",sum_)78# 连续整数的累乘9product=110foriinrange(1,101):11product*=i# 等价于:product = product * i1213print("累乘结果:",product)
这里插入介绍一下两个赋值运算符:
1# 初始化变量 a 为 12a=13print(f"初始值: a ={a}")45# 使用 += 运算符,将 a 的值增加 26a+=27print(f"使用 += 后: a ={a}")# 输出为: 3
运行结果:可以看到效果等同于a = a + 2。

*= 乘法赋值运算符:a *= b 等价于 a = a * b。这个运算符用于将变量的当前值与右侧的值相乘,并将结果重新赋值给该变量。示例:
1# 初始化变量 a 为 22a=23print(f"初始值: a ={a}")45# 使用 *= 运算符,将 a 的值乘以 36a*=37print(f"使用 *= 后: a ={a}")# 输出应该是 6
运行结果:可以看到效果等同于 a = a * 3。

我们继续看累加和累乘的结果:

4.结合 if 语句进行条件判断
1fornuminrange(1,101):2ifnum%3==0:3print(num,"是3的倍数~")4ifnum%5==0:5print(num,"是5的倍数~")6ifnum%7==0:7print(num,"是7的倍数~")
运行结果将为:

第二部分:交换变量

错误的变量交换:

1# 错误的交换变量:2a=13b=24# 要求a,b值互换,怎么实现?5a=b# a 变成 2(原始值 1 丢失)6b=a# b 也变成 2(此时 a 已经是 2)7print(a)# 输出 28print(b)# 输出 2
运行结果:可以看到a和b的结果都是2

错误分析:

正确用法:第一种-使用临时变量

1a=12b=334# 使用临时变量交换5temp=a6a=b7b=temp89print("a =",a)# 输出: a = 310print("b =",b)# 输出: b = 1
运行结果:从运行结果可以看到,变量交换成功。

正确用法:第二种-利用python语法

1a=12b=334# 利用Python语法特点。5a,b=b,a67print("a =",a)# 输出: a = 38print("b =",b)# 输出: b = 1
运行结果:

第三部分:异常捕获

案例讲解:
1.捕获类型转换错误
1a=input("输入一个数字:")2a=int(a)# 转换为整数类型3'''接下来,我们在控制台内输入非整数字类型的'''
我们接下来使用try语句对异常错误进行捕获。
1a=input("输入一个数字:")23try:4a=int(a)5exceptValueErrorasv:# 从前面的运行代码中,可以知道错误类型是ValueError,所以使用了这个类型并用as重命名错误类型为v6print(v)# 打印捕获的错误信息7print("您输入的数据无法转换!")# 其它的处理...8'''我们再次输入非整数字类型的,观察运行结果'''
运行结果:在使用了异常捕获语句的情况下,成功捕获异常,让程序正常结束。

最后,我们使用try…except…else…finally的语句,进行其它操作,见完整示例:
1a=input('请输入1个数字:')2try:3a=int(a)4print(a)# 打印输入的内容5exceptExceptionase:# Exception-是用来捕获所有错误类型的,取别名为e6print(e)# 打印捕获的错误7print('该元素不能转换为整数类型')8else:9b=a+1# 简单对a变量进行操作10print(b)# 打印b11finally:12print('运行结束')
输入正确数字的运行结果:

输入错误数据的运行结果:

总结:

通过案例我们总结下异常捕获语法:

1try:2# 可能引发异常的代码3exceptExceptionTypease:# ExceptionType-指具体的错误类型,可以使用as语句重命名为e,e是一个自定义的变量名。4# 报错发生后,运行的代码。5else:6# 如果try块中没有发生异常,执行这里的代码7finally:8# 不管有没有发生异常都会执行的代码

使用异常捕获语句的意义:

【案例】for循环 + 异常捕获语句获取字符串中数字的倒数
什么是倒数:
1strs='abc123def4560'2foriinstrs:3try:4i=int(i)5result=1/i6exceptExceptionase:# Exception包含所有错误。也可以分别获取,使用ValueError和ZeroDivisionError。7print(i,"不能得到倒数")8# print(i)9else:10print("倒数:",result)11finally:12print('计算结束')1314"""分开Exception的写法"""15foriinstrs:16try:17# 尝试将字符转换为整数18num=int(i)19# 计算倒数20result=1/num21exceptValueError:22# 如果字符不是数字,则会抛出ValueError异常23print("字符",i,"不是数字,不能计算倒数")24exceptZeroDivisionError:25# 如果数字是0,则会抛出ZeroDivisionError异常26print("数字",i,"的倒数无法计算,因为除以零是不允许的")27else:28# 成功计算了倒数29print(num,"的倒数是:",result)30finally:31# 无论是否发生异常都会执行32print('计算结束')
运行结果:

不同异常的对应处理:

为什么需要捕获特定的错误类型?

a.它可以精准的修复问题,不同的错误,不同的处理;比如:
1try:2num=int(input("请输入数字:"))3exceptValueError:# 明确处理非数字输入4print("输入的不是数字!")
b.避免因为使用Exception隐藏了严重错误。
c.如果有多种错误类型捕获,使用分层捕获的方式能让代码结构清晰易于维护。
1# 分层捕获一目了然2try:3num1=int(input("请输入第一个数字:"))# 可能触发 ValueError(如输入"abc")4num2=int(input("请输入第二个数字:"))5result=num1/num2# 可能触发 ZeroDivisionError(如 num2=0)6exceptValueError:7print("错误!请输入整数,不要输入文字!")8exceptZeroDivisionError:9print("错误!除数不能为零!")

1.TypeError(类型错误)

1try:2a=5+'10'3exceptTypeErrorase:4print(e)
运行结果:

2.ValueError(值错误)

1try:2num=int('abc')3exceptValueErrorase:4print(e)
运行结果:

3.NameError(名称错误)

1try:2print(x)3exceptNameErrorase:4print(e)
运行结果:

4.IndexError(索引错误)

1a=[1,2,3]2try:3print(a[3])4exceptIndexErrorase:5print(e)
运行结果:

5.KeyError(键错误)

1d={'a':1,'b':2}2try:3print(d['c'])4exceptKeyErrorase:5print(e,"不存在的键")
运行结果:

6.ZeroDivisionError(除零错误)

1try:2a=5/03exceptZeroDivisionErrorase:4print(e)
运行结果:

7.IOError(输入/输出错误)

1try:2f=open('test.txt','r')# 这个test.txt在项目中不存在3exceptIOErrorase:4print(e)
运行结果:

8.ImportError(导入错误)

1try:2importhahahaha3exceptImportErrorase:4print(e)
运行结果:

9.AttributeError(属性错误)

1s='aaa'2try:3s.hahahaha()4exceptAttributeErrorase:5print(e)
运行结果:

10.KeyboardInterrupt(键盘中断)

1input('请输入:')# 不捕获,中断输入的报错2try:3input('请输入:')4exceptKeyboardInterruptase:5print(e)
运行结果:
中断方式

KeyboardInterrupt报错

捕获KeyboardInterrupt

➕其它错误类型

注意点:

1"""下面这个示例,在上面【TypeError(类型错误)】有讲解"""2"""这里用ValueError的错误类型,尝试运行"""3try:4a=5+'10'5exceptValueErrorase:6print(e)
运行结果:
这时,我可以使用Exception捕获错误:
1try:2a=5+'10'3exceptExceptionase:4print(e)
运行结果:

捕获怎样的错误类型,与自己写的程序有关。

【最后】-拓展复合赋值运算符

注意事项示例:先计算后赋值。先计算“=”右边的,再复合赋

值计算。

1a=22a*=2+3# 等价于:a = a * (2 + 3)3print(a)# 输出: 10
运行结果:

🟢总结

🟡文末福利

🔴包含编程资料、学习路线图、源代码、软件安装包等!【点击这里】领取!

可以扫描下方二维码领取【保证100%免费

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询