python初体验

来源:互联网 发布:桌面 滚动屏软件 编辑:程序博客网 时间:2024/04/28 22:29

状态真是duang的不行。
boolan的两个课程真是跟的想吐。OC完了是swift全是语法一脸懵逼,好在C++底子。虚拟机伤不起。依然要上黑苹果了
前端课程的逻辑清晰点,互动也相对好一些。
静态网页 熟悉CSS框中框有啥难得,另外不会了用开发者模式去网站上去抄。只是javascript后面的课程难度咋样不知道

python~ 自带shell兼职是垃圾,help出来的文档也是跪了真怀疑是不是国人写的文档。。。
python还真是急简,变量不用指明类型直接判断。连var auto什么的直接省了 简直6666
for in 循环也是套起来直接用。

                try:                    with open('sketch.txt','r') as file_in:                        for each_line in file_in:                            try:                                (spoken,spoken_context) = each_line.split(':',1)                                spoken_context.strip()                                  if spoken == 'Man':                                    man.append(spoken_context)                                if spoken == 'Other Man':                                    other.append(spoken_context)                            except ValueError as err:                                #print('value error'+str(err))                                pass                except IOError as err:                    print('file err'+str(err))

后台实现逻辑是这样的,打开方式’r’ ‘rb’会决定 file_in中的取值。file_in是否就为一个list里面存储为str呢? 返回值是什么? file_in.readline() 函数 很明显 file_in仍然是一个文件对象,那么问题应该是就是在“for in”语句里面。在Object-C中对象要支持for in循环必须要支持for-in的协议,实现该接口。其次。循环直接用 for each_line in file_in each_line是一个str。那么python在for in是否也加入了某些处理方式,才得到each_line这个str?

    try:        with open('sketch.txt','rb') as file_in:        for each_line in file_in:            try:                (spoken,spoken_context)=each_line.split(':',1)                spoken_context.strip()                  if spoken == 'Man':                    man.append(spoken_context)                if spoken == 'Other':                    other.append(spoken_context)            except ValueError as err:                print('value error'+str(err))                pass                except IOError as err:    print('file err'+str(err))`

这段代码会提示错误,原因是”rb”的打开方式。

Traceback (most recent call last):  File "<pyshell#54>", line 5, in <module>    (spoken,spoken_context)=each_line.split(':',1)TypeError: a bytes-like object is required, not 'str'

后台实现逻辑是这样的,打开方式’r’ ‘rb’会决定 file_in中的取值。file_in是否就为一个list里面存储为str呢? 返回值是什么? file_in.readline() 函数 很明显 file_in仍然是一个文件对象,那么问题应该是就是在“for in”语句里面。在Object-C中对象要支持for in循环必须要支持for-in的协议,实现该接口。其次。循环直接用 for each_line in file_in each_line是一个str。那么python在for in是否也加入了某些处理方式,才得到each_line这个str?
如上,a bytes-like object is requied ,not ‘str’。 这里的each_line是按二进制的方式打开的数据,赋值与变量each_line 再调用split 自然会发生错误~

这里写图片描述

0 0