Python初学者的几个迷惑点

世上唯一不能复制的是时间,唯一不能重演的是人生,唯一不劳而获的是年龄。该怎么走,过什么样的生活,全凭自己的选择和努力。人生很贵,请别浪费!与智者为伍,与良善者同行。Python初学者的几个迷惑点,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1.bytes和str函数
那我接下来就简述下他文章的意思吧:

  • bytes格式时二进制型的文件,全为010101之类的,而str为字符串型的
  • bytes函数中的参数为bytes(字符串,encoding=’ 括号里面经常填utf-8’)其中encoding一定要填,str函数则为str()与其是一样的格式,针对utf-8格式为万国码格式,一个英文字母一个字节,一个中文字符三个字节
  • bytes数据有方法decode方法:X.decode(‘utf-8’),因此我们前面的read方法返回的是字符串类型数据,而str则有方法encode类型,这两个方法可将这两个数据类型转为utf-8类型
  • Python已经严格区分了bytes和str两种数据类型,你不能在需要bytes类型参数的时候使用str参数,反之亦然。这点在读写磁盘文件时容易碰到

那么我们平时看到的以b’开头后面的字码其实就是utf-8编码,虽然应该为0101的形式,但是计算机上给我们看的时候编码了一下变成了这种形式,而你使用byte函数的时候,其实也就是在告诉计算机你在手动编码,而平时这个操作是由计算机自动转换的,而str编码就是那种可以直接看到中文字的形式
以及每次使用requests请求后得到的网页内容text都有一个属性encoding

2.python的try语句

try...except....else
         try A:

              B;

         except  C:  #如果发生错误看是否为错误类型C

             D;

         except  E:  #如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)

            F;

         else  G; #如果程序未出错则执行G

            H;

try...finally
        try A:

            B;

        finally  C:  #不管有无发生错误都会执行C语句

           D;

3. with…as结构

这个语法是用来代替传统的try…finally语法的

file = open("/tmp/foo.txt")  
try:  
    data = file.read()  
finally:  
    file.close()  

使用with…as…的方式替换,修改后的代码是:

with open("/tmp/foo.txt") as file:  
    data = file.read()  

下面解析他的具体结构:

#Python学习交流QQ群:579817333 

class Sample:  
    
    #魔法方法相当于他的属性
    def __enter__(self):  
        print "In __enter__()"  
        return "Foo"  
   
    def __exit__(self, type, value, trace):  
        print "In __exit__()"  
   
   
def get_sample():  
    return Sample()  
   
   
with get_sample() as sample:  
    print "sample:", sample

结果为

In __enter__()  
sample: Foo  
In __exit__()  
  1. __ enter__()方法被执行

  2. __ enter__()方法返回的值 – 这个例子中是”Foo”,赋值给变量’sample’

  3. 执行代码块,打印变量”sample”的值为 “Foo”

  4. __ exit__()方法被调用with真正强大之处是它可以处理异常。可能你已经注意到Sample类的__exit__方法有三个参数- val, type 和 trace。这些参数在异常处理中相当有用。

在一开始的例子中也就相当于:

1.打开文件

2.返回了文本的内容

3.执行读取操作

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/213686.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!