鱼C论坛

 找回密码
 立即注册
查看: 2062|回复: 0

[学习笔记] 【Pyhon 032讲心得体会】【 大家来找茬】

[复制链接]
发表于 2018-11-29 10:32:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

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

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

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

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


1、
  1. my_list = [1, 2, 3, 4,,]
复制代码


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



2、
  1. my_list = [1, 2, 3, 4, 5]
  2. print(my_list[len(my_list)])
复制代码


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



3、
  1. my_list = [3, 5, 1, 4, 2]
  2. my_list.sorted()
复制代码


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

要是就想使用sorted咋办?

  1. my_list = [3, 5, 1, 4, 2]
  2. print(sorted(my_list))
复制代码




4、
  1. my_dict = {'host': 'http://bbs.fishc.com', 'port': '80'}
  2. print(my_dict['server'])
复制代码


字典里没这个值,所以会提示keyError,可以尝试将server设置成字典的默认值。

  1. my_dict = {'host': 'http://bbs.fishc.com', 'port': '80'}
  2. my_dict.setdefault('server')
  3. print(my_dict)
复制代码



5、
  1. def my_fun(x, y):
  2.         print(x, y)

  3. my_fun(x=1, 2)
复制代码


解决办法:

1、外部调用时设置俩;     2、不设置;    3、在函数内部设置x,y的值;     4、在函数内部只设置y的值。



6、
  1. f = open('C:\\test.txt', wb)
  2. f.write('I love FishC.com!\n')
  3. f.close()
复制代码


两个错误,一个是打开方式应该是字符串结构,而不是变量结果。

第二个错误就是打开的是二进制写入模式,而写入的是字符串,不是字节模式(a bites-like)。


7、
  1. def my_fun1():
  2.         x = 5
  3.         def my_fun2():
  4.                 x *= x
  5.                 return x
  6.         return my_fun2()

  7. my_fun1()
复制代码


内部函数无法调用外部函数,所以这个要么non local声明下,要么改成老师的那种切片存储的方式(列表存储方式和变量不一样),要么就猥琐点,在my_fun2()内部定义个X。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-7 10:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表