马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 heidern0612 于 2018-12-17 10:07 编辑
这一讲我起码感觉挺重要的,对于程序出错和抛出异常,最快的方法当然是运行后查看程序的出错在哪。
我现在也比较习惯于有什么问题和错误,先上代码,然后运行下看错误提示。
但现在的问题是:有点病态的依赖,不相信自己的肉眼判断,有什么先运行下,看python怎么提示,根据提示再改进。
这个依赖不好,要逐步改进。
老师的几个习题也简单复习下,当练手了。
1、
语法错误,或者说因为4后面是个空值,所以出错了。
2、my_list = [1, 2, 3, 4, 5]
print(my_list[len(my_list)])
这个挺有意思,还能这么玩,len长度返回的值是5,然后my_list[5]是不存在的,所以超出了索引范围,提示的结果是索引错误。
3、 my_list = [3, 5, 1, 4, 2]
my_list.sorted()
老师给答案因为sorted是BIF,不是列表的方法。所以这里提示属性错误。
要是就想使用sorted咋办?
my_list = [3, 5, 1, 4, 2]
print(sorted(my_list))
4、my_dict = {'host': 'http://bbs.fishc.com', 'port': '80'}
print(my_dict['server'])
字典里没这个值,所以会提示keyError,可以尝试将server设置成字典的默认值。
my_dict = {'host': 'http://bbs.fishc.com', 'port': '80'}
my_dict.setdefault('server')
print(my_dict)
5、def my_fun(x, y):
print(x, y)
my_fun(x=1, 2)
解决办法:
1、外部调用时设置俩; 2、不设置; 3、在函数内部设置x,y的值; 4、在函数内部只设置y的值。
6、f = open('C:\\test.txt', wb)
f.write('I love FishC.com!\n')
f.close()
两个错误,一个是打开方式应该是字符串结构,而不是变量结果。
第二个错误就是打开的是二进制写入模式,而写入的是字符串,不是字节模式(a bites-like)。
7、def my_fun1():
x = 5
def my_fun2():
x *= x
return x
return my_fun2()
my_fun1()
内部函数无法调用外部函数,所以这个要么non local声明下,要么改成老师的那种切片存储的方式(列表存储方式和变量不一样),要么就猥琐点,在my_fun2()内部定义个X。 |