小笔记

.第一周遇到的错误总结:

1.eval():该方法是把字符串中的内容解析出来,使其作为可执行的代码,而不是转化为某种数据类型

2.字符串中的元素是不可变的,若用str.replace()方法修改字符串,本质只是新建了一个字符串,元字符串并没有改变

3.bin():该方法的参数必须为int类型的,才能转化为二进制的形式,否则程序会报错

4.字符串也是一个序列,也可以通过下表来进行相关的操作

5.set数据类型也是一个序列,只不过里面存放的内容是无序的,无法通过下标来进行相关的操作

6.递归调用:该方法肯定有一个出口,找到它,就能更方便的找到相关的规律,从而实现递归调用

7.死循环的使用:适当的给死循环一个出口,这样可以利用死循环实现相关的操作, 很实用

8.利用and和or也可以实现简单的判断,但是有0参与运算,可能会出错,所以后来用if和else代替了

9.关于tap键:操作为\t,四个空格以内都为一个tap,超出则生成一个新的tap,可用于实现四个空格以内的竖向排列,使其美观

1.大作业‘万年历’遇到的问题:

1.经常在使用while循环时,忘了写实现循环操作(+=…)

2实参传递错误,影响程序运行结果

3.对所要实现的事物分析不当

2.第二周遇到的错误:

1.三元运算符的格式一般是:res = 表达式1 if 条件 else 表达式2

注意:必须要有个赋值,方可使用

2.range():该方法后是(),而不是【】,

注意别写错了

3.res = a or b:该格式会把比较res和a or b进行比较,a 和 b会被当做bool值比较,因为a 和 b均不为空的序列,所以a b 为结果为true,若res也不为空值,则true == true该条件成立,若res为空置,则flase !=true,该条件不成立

4.str中比较难记的:str.round():str.index(), str.count()数过的不用管, str.strip()可以从左和右去除,str.startswith(),str.isalpha(),str.isdigit(),str.upper(),str.lower(), str.swapcase(),str.capitalize(), str.title(), str.replace(),str.join()

5.list.insert():该方法是在指定的位置插入元素,原列表后面色元素角标+1, 像【‘今天’, ‘’哈哈】list.insert(1, ‘的’)就是把‘的’插入到1角标的位置,然后列表后面的角标加1,变为【‘今天’, ‘的’, ‘’哈哈】

6.index方法在str和list中都适用,不过index方法有点low

注意:list中没有find这个方法,不要乱用

7.变量1, 2里存的是list,变量1–>变量2(赋值操作),此时传的是地址id

8.string.ascii_letters和string.digits是string模块中的包括0~9, a~z, A~Z所有的字符串

9.res = list.sort():会报错

list.sort()

res = list:不会报错

原因:下面的问题中有相关的说明

10.注意:字典在遍历的时候不允许修改字典的长度, 所以在遍历的时直接做修改等操作的话,会报错

11.赋值的小技巧:

a, b = 11, 12

a, b = (11, 22)

a, b = 【11, 22】

12.需要提问的问题:

1.类似于res = str.sort()这样的格式为什么会报错?

答案:str.sort()方法只是进行了排序,没有返回具体的值,所以res被赋予的是个空值,默认为None

2.str.splite()切片,为什么用空格切没有自动删除空白部分?

答案:str.split(),不传参数,则 默认会切除点所有的空白字符,用空格则只能切去空格字符,判断空字符的话,要用len(str.split())判断

3.    "".join()拼接的原理到底是什么,返回的值到底怎么看?

答案:str.join()是字符串的方法,只适用于字符串元素的之间的拼接,不能用于其他数据类型的拼接

4.在while循环中用continue想要结束当前循环,却变成了死循环的原因?

答案:使用continue语句和break语句时,在其下方的平级语句永远也执行不到,切记

13.系统提供的find, remove, index等方法都不咋靠谱,在实现程序时为了避免出现bug,应尽量少用这些方法

注意:list.remove()这个方法是没有返回值的

14.装饰器那里有点逻辑性,还有filter高级函数

1.大作业‘求输入两个时间的差值’遇到的问题,

1.再用datetime高阶函数中相应的方法解决问题时,用datetime.datetime()方法得出两个时间,然后求差指时,求出的差值类型为datetime.timedelta类型,无法转换为str类型(反正我自己是转不过来),不过datetime.timedelta类型中的days属性等为int类型,这个还挺好使

2.open读写文件,后面跟的路径:可以是绝对路径,也可以是相对路径,若只写文件名的话,则python默认寻找当前目录下寻找,若找不到,则会报错

3.相对路径的小知识:上级目录(…/),当前目录(./)

2.第二周遇到的错误:

1.函数生成器:必须赋值给一个变量,方可使用,若不赋值,则用next()调用,则会重复生成生成器

2.运算符的重载:对运算符进行重写后方可根据需求使用

3.用类调用类方法时,不能调用带参数的方法,因为会导致参数传输错误,进而提示:缺少关键参数, 若定义的是普通方法(即不带self)的话,会把self视为一个形参

4.collections中的defaultdict:如果找不到对应的key的话,则会返回 自己设定的值,无论使用dict【】取值还是dict.get()

5.collections中的OrderedDict:让字典变为,有序的,注意,这里的有序指的是根据键值对插入的顺序进行排序的

6.collections中的Counter:可以当作一个计数器来记

7.python中:没有uuid2这个方法

8.uuid3和uuid5:分别用的是MD5散列值和SHA散列值

9.uuid使用经验:

1、python中没有基于DCE的,所以uuid2()可以忽略

2、uuid4()存在概率性重复,由于无映射性,最好不用

3、如果在全局的分布式环境下,最好使用uuid1()

4、若名字的唯一性要求,最好使用uuid3()或uuid5()

10.编码:base64(查表编码)

11.加密的摘要算法:MD5散列值,SHA1等,更安全的有:hmac摘要算法等

12.class_base_:代表的 是class的继承的类的列表

3.第三周遇到的错误:

1.tkinter中Scrollbar(滚动条)回调函数指定…

2.tkinter中的Combobox的current():设置的默认值指得是下拉数据下标对应的位置

3.动态的给类添加方法时,直接把方法赋值给类就可以,

与实例不同的是:不用MonthodType

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值