《Python编程:从入门到实践》总结_Day04

2019-07-23  本文已影响0人  Mr_Hou

前言

是在原有文章的基础上直接扩充更新还是将其作为单独的系列文章呢?思虑再三,还是决定把接下来的Day01-Day05的总结独立出来。此系列是关于《Python编程:从入门到实践》的总结,亦可看作是在我上一篇文章的基础上的加强版本,所以大家看到有些部分没有从浅入深的一个过程或者是没头没脑也请不要惊讶。由于笔者(没错就是我😎)水平实在有限,欢迎大家在评论区或者私聊我进行批评指正,闲话少说,我们开始吧。
《Python编程:从入门到实践》总结_Day01
《Python编程:从入门到实践》总结_Day02
《Python编程:从入门到实践》总结_Day03
《Python编程:从入门到实践》总结_Day04
《Python编程:从入门到实践》总结_Day05

上一篇文章请见《编程小白的第1本Python入门书》总结

1. 文件

1.1 打开&读取&文件

   with open(filename) as open_file:
   contents = object_file.read()
   with open("pi_digits.txt") as object_file:
   
   for line in lines:
       line_substitute = line.replace("Python", "c")
       print(line_substitute)

2、readline()方法,该方法以条为单位,一次性读取所有语句。

   with open("pi_digits.txt") as object_file:
   lines = object_file.readlines()

1.1 写文件

   with open(filename, "w") as file_object:
       file_object.write("I really love programming\n")
       file_object.write("I love programming.")
   with open(filename, "a") as file_object:
       file_object.write("I really love programming\n")
       file_object.write("I love programming.")

2. 异常处理

异常处理的必要与好处我根据书中所说总结有如下几点:

1、可以尽量避免程序的崩溃使不懂技术的用户困惑;
2、可以避免攻击者因为程序的错误而获得你的程序中的部分信息,进而攻击你的代码;
3、程序不会因为在运行过程中出现异常而终止程序;
   try:
       print(5/0)
   except:
       print("You can't divide by zero")

我结合上面的代码来解释一下,上面的代码块所表达的是,如果try中的代码块运行成功,那么代码会跳过except代码块中的内容,然后继续向下执行。而若是try中的代码块运行的错误,那么会输出except代码块中的内容,然后继续向下执行。

   try:
       print(5/0)
   except:
       print("You can't divide by zero")
   else:
       print("Mr_Hou")

可以修改try代码块中的除数,通过控制try中的代码块正确与错误,再结合不同情况下的输出来学习这个知识。

3. JSON格式

关于这部的知识我觉得网上的的解答比书中的更加清晰和简洁明了,更能直击其本质。

json文件是什么

第一种类型是标量scalar,也就是一个单独的字符串string或数字numbers,比如“成都”这个单独的词。
第二种类型是序列sequence,也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组array,或者列表list,比如“成都,重庆”。
第三种类型是映射mapping,也就是一个名/值name/value,即数据有一个名称,还有一个与之相对应的值,这又称作散列hash或字典dictionary,比如“蓉城:成都”。

1.并列的数据之间用逗号(,)分隔;
2.映射用冒号(:)表示;
3.并列数据的集合(数组)用方括号([])表示;
4.映射的集合(对象)用大括号({})表示
以上四条规则,就是json格式的所有内容。

   with open(filename, "w") as obj_file:
       json.dump(user_number, obj_file)
   with open(filename) as open_file:
       favorite_name = json.load(open_file)

4. 重构

在代码可以正常运行基础上,将代码划分为一系列完成具体工作的函数。可以让代码更清晰、易于理解和扩展。

5. 问题

在学习到异常处理的部分的时候,这种捕获异常的方式让我联想到if...else代码块,在我看来二者之间非常相似(好吧,我不得不承认,“非常相似”这个词是我总结时候写的,当时给我的感觉就是,这TM不就是一摸一样嘛!!),所以我在网上搜索到的一篇博客回答了我的疑问:

if..else在计算机里执行的时候是有条件的,也就是根据一个具体的条件执行,只有判断这个条件的真假才能进行下一步的操作,也就是我们所说的流程控制,条件为真时走操作1,为假时走操作2。

而try..catch则是用于捕获异常,常用于我们一段代码可能会有异常的时候使用,程序执行时永远先走try,出错的时候才会走catch抛出异常。

关于if..else和try..catch的区别

虽然这篇文章解答的是try...catchif...else代码块之间的区别,但是我觉得原理应该是一样的,故放上引用供大家参考。

上一篇 下一篇

猜你喜欢

热点阅读