您好,欢迎来到易榕旅网。
搜索
您的当前位置:首页正文

Python自学记录-第7周

来源:易榕旅网

Python自学记录目录








前言

本周继续跟着娟子姐学python,学习变量的作用域和如何写BUG(找BUG)


一、变量的作用域

局部变量,函数内定义,作用范围仅限于函数内;
全局变量,函数外定义的,函数内外都能用;若局部变量使用global声明,变量就变为了全局变量;

二、递归函数

定义:函数内调用函数本身,称为递归
优点:思路和代码简洁
缺点:占用内存过多,效率低下

三、BUG

程序可能出现的问题,就是BUG
可能是粗心,也可能是不熟练,又或者是思路不对导致的,等等。

粗心导致的简单错误,可以通过自查来避免掉:
1、漏了末尾的冒号,if、else、for/while等
2、缩进错误
3、英文符号写成中文
4、字符串拼接,将字符串和数字拼在一起
5、没有定义变量
6、==比较运算符和=赋值运算符混用

思路不清晰的错误,也可以这样快速处理:
1、可以使用print输出查找错误
2、可以先使用#注释部分代码
3、本质上还是基础知识不牢固导致的,需要加强练习

实际还是要多练习!

四、常见报错类型

主要分类:

四、实例

1.递归

使用递归输出斐波那契数列

# 斐波那契数列

def fib(n):
    if n==1:
        return 1
    elif n==2:
        return 1
    else:
        return fib(n-1)+fib(n-2)

#逐个打印
for i in range(1,7):
    print(fib(i))

结果:

2.找BUG、改BUG

可以运行一下,看下代码的BUG有哪些

# 示例1 
age=input('请输入你的年龄:')
if age>18
	print('成年人,做事要负法律责任了')
# 示例2 
while i<10:
	print(i)
# 示例3 
for i in range(3):
	uname=input('请输入用户名:')
	pwd=input('请输入密码:')
	if uname='admin' and pwd='admin':
		print('登陆成功')
	else
		print('输入有误')
else
	print('对不起,三次均输入错误')

其中的BUG:

示例1:
输入类型是字符串,不能比较,需要将str型转为int型
if没有带上冒号

示例2:
没有给i赋初始值
无限循环,没有退出while循环的条件
注意print的括号是中文括号,应该要使用英文括号才可以

示例3:
没有给i赋初值
if中使用’=‘来比较不正确,应该使用逻辑条件比较符号’==’
else后面少了冒号

3.异常处理

这点很有用,不仅可以将报错信息提示出来,还不影响程序继续运行

try:
	n1=int(input('请输入第一个整数'))
	n2=int(input('请输入第二个整数'))
	result=n1/n2
except BaseException as e:
	print('出错了')
	print(e)
else:
	print('结果为:',result)
finally:
	print('无论结果是否异常,都会执行的代码')
print('程序结束')

结果

请输入第一个整数11
请输入第二个整数0
出错了
division by zero
无论结果是否异常,都会执行的代码
程序结束


总结

本周学习找BUG方法,其实在其他语言中也可以借鉴。想要程序BUG少,就得多练习啊。(多踩坑)加油加油!

因篇幅问题不能全部显示,请点此查看更多更全内容

Top