《Python编程从入门到实践》笔记

系统 1721 0

阅读时间:
2019.08.25----2019.08.30:第一部分 基础知识。


第2章:变量

1、变量的命名和使用

  • 变量名只能包含字母、数字和下划线。可以字母或者下划线打头,但不能以数字打头。例如:可以为message_1,不能为1_message。
  • 变量名不能包含空格,但可使用下划线分隔。例如:变量名greeting_message,不能为greeting message。
  • 不能用Python关键字和函数名作为变量名。
  • 慎用小写字母l和大写字母O。

2、字符串
用引号括起来的都是字符串,其中的引号可以是单引号,也可以是双引号。可以在字符串中包含引号和撇号。

  • title()方法:以首字母大写的方式显示每个单词。
  • upper()方法:改为全部大写。
  • lower():改为全部小写。
            
              name
              
                .
              
              title
              
                (
              
              
                )
              
              
name
              
                .
              
              upper
              
                (
              
              
                )
              
              
name
              
                .
              
              lower
              
                (
              
              
                )
              
            
          
  • 删除空白字符,使用 .rstrip() (删除末尾)这种删除只是暂时的要想永久删除这个字符串的空白,必须将删除操作的结果存回到变量中; .lstrip() 删除开头的空白; strip() 同时删除字符串两端的空白。
  • str(age)将非字符串值转为字符串。

第3章:列表

列表是一系列按特定顺序排列的元素组成。可包含字母、数字等,元素之间可以没有任何关系。用 [] 来表示列表,并用逗号分隔其中的元素。

            
              bicycles 
              
                =
              
              
                [
              
              
                'trek'
              
              
                ,
              
              
                'cannondale'
              
              
                ,
              
              
                'redline'
              
              
                ]
              
            
          

使用print()打印出来时包含 []
1、访问列表元素
索引从0开始而不是1,Python可以通过索引 -1 直接访问最后一个列表元素。
2、在列表中添加元素

  • 在列表末尾添加,使用 .append('China')
  • 在列表中插入元素,使用 insert() ,可在任何位置添加新元素,因此需要指定新元素的索引和值。 moto.insert(0,'ducati')

3、从列表中删除元素

  • del删除,可删除任何位置处的元素。 del moto[0]
  • pop()方法,删除列表末尾的元素。 moto.pop()
  • pop(index),弹出列表中任何位置处元素。 moto.pop(0)
  • 根据值删除元素。 moto.remove('ducati') ,删除掉ducati, 只删除掉第一个指定的值。若删除的值出现多次,需使用循环判断。

4、组织列表

  • 方法sort() 对列表进行永久性排序。 cars.sort() ,永久性修改了列表元素的排列顺序。 cars.sort(reverse=True) 进行逆向排序。
  • 函数sorted() 对列表进行临时排序。 sorted(cars,reverse=True)
  • 反转列表, cars.reverse() 。不是按与字母相反的顺序排列列表元素,而只是反转列表元素的排列顺序。reverse()为永久性修改。
  • 函数len()获取列表的长度。 len(cars) Python计算列表元素时从1开始。

第4章:操作列表

1、for循环

            
              cars 
              
                =
              
              
                [
              
              
                'bmw'
              
              
                ,
              
              
                'audi'
              
              
                ,
              
              
                'toyota'
              
              
                ,
              
              
                'subaru'
              
              
                ]
              
              
                for
              
               car 
              
                in
              
               cars
              
                :
              
              
                print
              
              
                (
              
              car
              
                )
              
            
          

2、创建数字列表

  • 使用函数range(), range(1,5) ,打印出1~4。
  • 使用函数list()将range()的结果直接转换为列表,也可将range()作为list()的参数进行输出。 numbers = list(range(1,5)) 。函数range()还可指定步长,例如 range(2,11,2) ,从2开始,不断加2,直到达到或超过终止11。
  • 数字列表的最大值、最小值、总和。 max(digits)、min(digits)、sum(digits)

3、使用列表的一部分

  • 切片,指定第一个索引和最后一个索引加1,例如: cars[0:3] ,打印0、1、2这3个元素;若没有指定第一个索引,将从列表开头开始, cars[:3] 。类似的,指定第一个索引,一直到最后, cars[1:]
  • 复制列表, new_cars = cars[:]

4、元组
列表是可修改可变化的数据集。 不可变的列表被称为元组,元组使用圆括号

  • 定义元组, dimensions = (200, 50)
  • 遍历元组中的所有值,像列表一样使用for循环遍历。
  • 修改元组变量。给元组变量赋值是合法的。

第5章:if语句

1、使用 in和not in 检查特定值是否包含在列表中。
'bmw' in cars
2、 if-elif-else 结构
3、确定列表不是空

            
              cars 
              
                =
              
              
                [
              
              
                'bmw'
              
              
                ,
              
              
                'audi'
              
              
                ,
              
              
                'toyota'
              
              
                ,
              
              
                'subaru'
              
              
                ]
              
              
                if
              
               cars
              
                :
              
              
                #cars不为空
              
              
                for
              
               car 
              
                in
              
               cars
              
                :
              
              
                print
              
              
                (
              
              
                "buy "
              
              
                +
              
               car
              
                )
              
              
                print
              
              
                (
              
              
                "\nFinish."
              
              
                )
              
              
                else
              
              
                :
              
              
                print
              
              
                (
              
              
                "OK!"
              
              
                )
              
              
                #执行结果:
              
              
buy bmw
buy audi
buy toyota
buy subaru

Finish
              
                .
              
            
          

第6章:字典

字典 是一系列 键-值对 。可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。 字典 用放在==花括号{}==中的一系列键-值对表示。

            
              alien 
              
                =
              
              
                {
              
              
                'color'
              
              
                :
              
              
                'green'
              
              
                ,
              
              
                'points'
              
              
                :
              
              
                5
              
              
                }
              
            
          
            
              favorite_languages 
              
                =
              
              
                {
              
              
                'jen'
              
              
                :
              
              
                'python'
              
              
                ,
              
              
                'sarah'
              
              
                :
              
              
                'c'
              
              
                ,
              
              
                'edward'
              
              
                :
              
              
                'ruby'
              
              
                ,
              
              
                'phil'
              
              
                :
              
              
                'python'
              
              
                ,
              
              
                }
              
            
          

1、删除键-值对(删除的键值对永久消失)

            
              alien 
              
                =
              
              
                {
              
              
                'color'
              
              
                :
              
              
                'green'
              
              
                ,
              
              
                'points'
              
              
                :
              
              
                5
              
              
                }
              
              
                del
              
               alien
              
                [
              
              
                'point'
              
              
                ]
              
            
          

2、遍历字典

  • 遍历所有的键-值对。 for key, value in favorite_languages.items():
  • 遍历字典中的所有键。 for name in favorite_languages.keys():
  • 按顺序遍历字典中的所有键。 for name in sorted(favorite_languages.keys()):
  • 遍历字典中的所有值。 for language in favorite_languages.values(): 。若要 剔除重复项,可使用集合(set) ,集合类似于列表,但每个元素必须是独一无二的, for language in set(favorite_languages.values()):

3、嵌套
将一系列字典存储在列表中,或将列表作为值存储在字典中,甚至在字典中嵌套字典。
1)字典列表(在列表中存储字典)

            
              alien_0 
              
                =
              
              
                {
              
              
                'color'
              
              
                :
              
              
                'green'
              
              
                ,
              
              
                'points'
              
              
                :
              
              
                5
              
              
                }
              
              
alien_1 
              
                =
              
              
                {
              
              
                'color'
              
              
                :
              
              
                'yellow'
              
              
                ,
              
              
                'points'
              
              
                :
              
              
                10
              
              
                }
              
              
aliens 
              
                =
              
              
                [
              
              alien_0
              
                ,
              
               alien_1
              
                ]
              
              
                for
              
               alien 
              
                in
              
               aliens
              
                :
              
              
                print
              
              
                (
              
              alien
              
                )
              
            
          

2)在字典中存储列表

            
              favorite_languages 
              
                =
              
              
                {
              
              
                'jen'
              
              
                :
              
              
                [
              
              
                'python'
              
              
                ,
              
              
                'ruby'
              
              
                ]
              
              
                ,
              
              
                'sarah'
              
              
                :
              
              
                [
              
              
                'c'
              
              
                ]
              
              
                ,
              
              
                'edward'
              
              
                :
              
              
                [
              
              
                'ruby'
              
              
                ,
              
              
                'go'
              
              
                ]
              
              
                ,
              
              
                'phil'
              
              
                :
              
              
                [
              
              
                'python'
              
              
                ,
              
              
                'haskell'
              
              
                ]
              
              
                ,
              
              
                }
              
              
                for
              
               name
              
                ,
              
               languages 
              
                in
              
               favorite_languages
              
                .
              
              items
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "\n"
              
              
                +
              
               name
              
                .
              
              title
              
                (
              
              
                )
              
              
                +
              
              
                "'s favorite languages are:"
              
              
                )
              
              
                for
              
               language 
              
                in
              
               languages
              
                :
              
              
                print
              
              
                (
              
              
                "\t"
              
              
                +
              
               language
              
                .
              
              title
              
                (
              
              
                )
              
              
                )
              
            
          

3)在字典中存储字典
在字典中嵌套字典,代码会变得复杂。尽可能让每位用户的字典的结构都相同,这样使嵌套的字典处理起来更容易。

            
              users 
              
                =
              
              
                {
              
              
                'aeinstein'
              
              
                :
              
              
                {
              
              
                'first'
              
              
                :
              
              
                'albert'
              
              
                ,
              
              
                'last'
              
              
                :
              
              
                'einstein'
              
              
                ,
              
              
                'location'
              
              
                :
              
              
                'princeton'
              
              
                ,
              
              
                }
              
              
                ,
              
              
                'mcurie'
              
              
                :
              
              
                {
              
              
                'first'
              
              
                :
              
              
                'albert'
              
              
                ,
              
              
                'last'
              
              
                :
              
              
                'einstein'
              
              
                ,
              
              
                'location'
              
              
                :
              
              
                'princeton'
              
              
                ,
              
              
                }
              
              
                ,
              
              
                }
              
            
          

第7章:用户输入和while循环

1、函数input()
函数input()接受一个参数:即要向用户显示的提示或说明。
message = input("Tell me something:")
2、使用标志

            
              active 
              
                =
              
              
                True
              
              
                while
              
               active
              
                :
              
              
    message 
              
                =
              
              
                input
              
              
                (
              
              
                "prompt"
              
              
                )
              
              
                if
              
               message 
              
                ==
              
              
                'quit'
              
              
                :
              
              
        active 
              
                =
              
              
                False
              
              
                else
              
              
                :
              
              
                print
              
              
                (
              
              message
              
                )
              
            
          

3、break和continue
break为结束循环,continue为结束当前循环进入下一次循环。
4、使用while循环来处理列表和字典

  • 在列表之间移动元素。可使用 pop() 以每次一个的方式从列表删除。
  • 删除包含特定值的所有列表元素。
            
              
                while
              
              
                'cat'
              
              
                in
              
               pets
              
                :
              
              
   pets
              
                .
              
              remove
              
                (
              
              
                'cat'
              
              
                )
              
            
          

第8章:函数

1、实参和形参
def greet_user(username) 的定义中,username是一个形参——函数完成其工作所需的一项信息。在 greet_user('jesse') 的调用中,值 jesse 是一个实参,实参是调用函数时传递给函数的一项信息。将实参 jesse 传递给了函数greet_user(),这个值被存储在形参username中。
2、关键字实参
关键字实参是传递给函数的 名称-值对

            
              
                def
              
              
                describe_pet
              
              
                (
              
              animal_type
              
                ,
              
               pet_name
              
                )
              
              
                :
              
              
                #调用时,使用关键字实参时,务必准确地指定函数定义中的形参名
              
              
describe_pet
              
                (
              
              animal_type
              
                =
              
              
                'hamster'
              
              
                ,
              
               pet_name
              
                =
              
              
                'harry'
              
              
                )
              
            
          

3、默认值
编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。

            
              
                def
              
              
                describe_pet
              
              
                (
              
              pet_name
              
                ,
              
               animal_type
              
                =
              
              
                'dog'
              
              
                )
              
              
                #调用时,3种方式。
              
              
                1
              
              
                )
              
               describe_pet
              
                (
              
              pet_name
              
                =
              
              
                'willie'
              
              
                )
              
              
                2
              
              
                )
              
               describe_pet
              
                (
              
              
                'willie'
              
              
                )
              
              
                3
              
              
                )
              
               describe_pet
              
                (
              
              pet_name
              
                =
              
              
                'harry'
              
              
                ,
              
               animal_type
              
                =
              
              
                'hamster'
              
              
                )
              
              
                4
              
              
                )
              
               describe_pet
              
                (
              
              
                'harry'
              
              
                ,
              
              
                'hamster'
              
              
                )
              
            
          

4、传递任意数量的实参
python允许函数从调用语句中收集任意数量的实参。 将实参封装到一个元组中。

            
              
                def
              
              
                make_pizza
              
              
                (
              
              
                *
              
              toppings
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              toppings
              
                )
              
              
make_pizza
              
                (
              
              
                'pepperoni'
              
              
                )
              
              
                #输出: ('pepperoni',)
              
              
make_pizza
              
                (
              
              
                'pepperoni'
              
              
                ,
              
              
                'green peppers'
              
              
                ,
              
              
                'extra cheese'
              
              
                )
              
              
                #输出: ('pepperoni', 'green peppers', 'extra cheese')
              
            
          

5、结合使用位置实参和任意数量实参
如果要让函数接收不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。

            
              
                def
              
              
                make_pizza
              
              
                (
              
              size
              
                ,
              
              
                *
              
              toppings
              
                )
              
              
                :
              
              
                #调用时
              
              
make_pizza
              
                (
              
              
                16
              
              
                ,
              
              
                'pepperoni'
              
              
                )
              
              
make_pizza
              
                (
              
              
                12
              
              
                ,
              
              
                ' mushrooms'
              
              
                ,
              
              
                'green peppers'
              
              
                ,
              
              
                'extra cheese'
              
              
                )
              
            
          

6、将函数存储在模块中
pizza.py 中, def make_pizza(size, *toppings):
making_pizzas.py 中,

            
              
                import
              
               pizza

pizza
              
                .
              
              make_pizza
              
                (
              
              
                16
              
              
                ,
              
              
                'peppperoni'
              
              
                )
              
            
          

7、导入特定的函数

  • from module_name import function_name 。例如, from pizza import make_pizza
  • 通过用逗号分隔函数名,从模块中导入任意数量的函数: from module_name import function_0, function_1, function_2

8、使用as给函数指定别名
如果要导入的函数的名称可能与程序中现有的名称冲突,或者函数的名称太长,可指定简短而独一无二的别名。
指定别名的通用语法如下: from module_name import function_name as fn
例如给函数make_pizza()指定别名mp()。 from pizza import make_pizza() as mp

9、使用as给模块指定别名
给模块指定别名的通用语法如下: import module_name as mn
例如给模块pizza指定别名p。 import pizza as p

10、导入模块中的所有函数
from module_name import *


第9章:类

1、创建类:
根据类来创建对象被称为 实例化

            
              
                #dog.py
              
              
                class
              
              
                Dog
              
              
                (
              
              
                )
              
              
                :
              
              
                def
              
              
                __init__
              
              
                (
              
              self
              
                ,
              
               name
              
                ,
              
               age
              
                )
              
              
                :
              
              
        self
              
                .
              
              name 
              
                =
              
               name
        self
              
                .
              
              age 
              
                =
              
               age
    
              
                def
              
              
                sit
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              self
              
                .
              
              name
              
                .
              
              title
              
                (
              
              
                )
              
              
                +
              
              
                " is now sitting."
              
              
                )
              
              
                def
              
              
                roll_over
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              self
              
                .
              
              name
              
                .
              
              title 
              
                +
              
              
                " rolled over."
              
              
                )
              
              
dog 
              
                =
              
               Dog
              
                (
              
              
                'pitte'
              
              
                ,
              
              
                16
              
              
                )
              
              
                print
              
              
                (
              
              dog
              
                .
              
              name 
              
                +
              
              
                ", "
              
              
                +
              
              
                str
              
              
                (
              
              dog
              
                .
              
              age
              
                )
              
              
                )
              
            
          

方法 __init__() 是一个特殊的方法。开头和末尾各有两个下划线,这是一种约定,避免python默认方法与普通方法发生名称冲突。
其中形参self必不可少,还必须位于其它形参的前面。 python调用这个__init__()方法来创建类实例时,将自动传入实参self,每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。

2、继承
子类继承父类的所有属性和方法,同时还可以定义自己的属性和方法。

            
              
                class
              
              
                Car
              
              
                (
              
              
                )
              
              
                :
              
              
                .
              
              
                .
              
              
                .
              
              
                class
              
              
                ElectricCar
              
              
                (
              
              Car
              
                )
              
              
                :
              
              
                def
              
              
                __init__
              
              
                (
              
              self
              
                ,
              
               make
              
                ,
              
               model
              
                ,
              
               year
              
                )
              
              
                :
              
              
                super
              
              
                (
              
              
                )
              
              
                .
              
              __init__
              
                (
              
              make
              
                ,
              
               model
              
                ,
              
               year
              
                )
              
              
my_tesla 
              
                =
              
               ElectricCar
              
                (
              
              
                'tesla'
              
              
                ,
              
              
                'model s'
              
              
                ,
              
              
                2016
              
              
                )
              
            
          

创建子类时,父类必须包含在当前文件中,且位于子类前面。定义子类时,必须在括号内指定父类的名称。方法__init__()接收Car实例所需的信息。
super()是一个特殊函数,帮助python将父类和子类关联起来。

3、导入类
from car import Car
from car import Car, ElectricCar
import car


第10章:文件和异常

1、读取整个文件

            
              file_path 
              
                =
              
               r
              
                'C:\Users\lenovo\Desktop\filename.txt'
              
              
                with
              
              
                open
              
              
                (
              
              file_path
              
                )
              
              
                as
              
               file_object
              
                :
              
              
    contents 
              
                =
              
               file_object
              
                .
              
              read
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              contents
              
                )
              
            
          

注:
在使用绝对路径时,运行时可能会出现报错, SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: tr ,引起这个错误的原因就是转义问题。
3种解决方法:

  • 1)在路径前面加r,即保持字符原始值的意思。 file_path = r'C:\Users\lenovo\Desktop\filename.txt'
  • 2)替换为双反斜杠。 file_path = 'C:\\Users\\lenovo\\Desktop\\filename.txt'
  • 3)替换为正斜杠。 file_path = 'C:/Users/lenovo/Desktop/filename.txt'

2、逐行读取

            
              file_path 
              
                =
              
               r
              
                'C:\Users\lenovo\Desktop\filename.txt'
              
              
                with
              
              
                open
              
              
                (
              
              file_path
              
                )
              
              
                as
              
               file_object
              
                :
              
              
                for
              
               line 
              
                in
              
               file_object
              
                :
              
              
                print
              
              
                (
              
              line
              
                )
              
            
          

3、写入空文件

            
              file_path 
              
                =
              
               r
              
                'C:\Users\lenovo\Desktop\filename.txt'
              
              
                with
              
              
                open
              
              
                (
              
              file_path
              
                ,
              
              
                'w'
              
              
                )
              
              
                as
              
               file_object
              
                :
              
              
    file_object
              
                .
              
              write
              
                (
              
              
                "I love herbin."
              
              
                )
              
            
          

调用open()时提供了两个实参。第一个实参为要打开的文件的名称,第二个实参(‘w’)指要以 写入 模式打开这个文件。 (‘w’)模式打开文件后清空再写入。
可使用 ‘a’ 将内容添加到文件末尾,而不是覆盖文件原始内容。
只能将字符串写入文本文件。若要将数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。

  • 读取模式(‘r’)
  • 写入模式(‘w’)
  • 附加模式(‘a’)
  • 读取和写入文件的模式(‘r+’)

4、异常
使用try-except代码块处理。
将可能引发异常的代码放在try语句中。
1)使用try-except代码块

            
              
                try
              
              
                :
              
              
                print
              
              
                (
              
              
                5
              
              
                /
              
              
                0
              
              
                )
              
              
                except
              
              
                :
              
              
                print
              
              
                (
              
              
                "error."
              
              
                )
              
            
          

2)else代码块

            
              
                try
              
              
                :
              
              
    answer 
              
                =
              
              
                int
              
              
                (
              
              first_num
              
                )
              
              
                /
              
              
                int
              
              
                (
              
              second_num
              
                )
              
              
                except
              
              
                :
              
              
                print
              
              
                (
              
              
                "error."
              
              
                )
              
              
                else
              
              
                :
              
              
                print
              
              
                (
              
              answer
              
                )
              
            
          

可在except: 中加入pass,出现异常时什么都不做。

5、存储数据
1)使用json.dump()和json.load()来存储数字列表:

            
              
                import
              
               json
numbers 
              
                =
              
              
                [
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                5
              
              
                ,
              
              
                7
              
              
                ,
              
              
                11
              
              
                ,
              
              
                13
              
              
                ]
              
              
filename 
              
                =
              
              
                'numbers.json'
              
              
                with
              
              
                open
              
              
                (
              
              filename
              
                ,
              
              
                'w'
              
              
                )
              
              
                as
              
               f_obj
              
                :
              
              
    json
              
                .
              
              dump
              
                (
              
              numbers
              
                ,
              
               f_obj
              
                )
              
            
          

使用json.load()将这个列表读取到内存中:

            
              
                with
              
              
                open
              
              
                (
              
              filename
              
                )
              
              
                as
              
               f_obj
              
                :
              
              
	numbers 
              
                =
              
               json
              
                .
              
              load
              
                (
              
              f_obj
              
                )
              
            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论