heidern0612 发表于 2018-11-29 10:32:51

【Pyhon 032讲心得体会】【 大家来找茬】

本帖最后由 heidern0612 于 2018-12-17 10:07 编辑

这一讲我起码感觉挺重要的,对于程序出错和抛出异常,最快的方法当然是运行后查看程序的出错在哪。

我现在也比较习惯于有什么问题和错误,先上代码,然后运行下看错误提示。

但现在的问题是:有点病态的依赖,不相信自己的肉眼判断,有什么先运行下,看python怎么提示,根据提示再改进。

这个依赖不好,要逐步改进。

老师的几个习题也简单复习下,当练手了。


1、my_list =

语法错误,或者说因为4后面是个空值,所以出错了。



2、my_list =
print(my_list)

这个挺有意思,还能这么玩,len长度返回的值是5,然后my_list是不存在的,所以超出了索引范围,提示的结果是索引错误。



3、 my_list =
my_list.sorted()

老师给答案因为sorted是BIF,不是列表的方法。所以这里提示属性错误。

要是就想使用sorted咋办?

my_list =
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。
页: [1]
查看完整版本: 【Pyhon 032讲心得体会】【 大家来找茬】