1.整数与浮点数
- 整数---->数学整数
- 浮点---->数学小数
- python中打印'0.1+0.2'==‘0.300000000000000004’--->计算机浮点数存储机制导致
- 不应该直接用python进行精确的运算
2.字符串、列表、元组
- 字符串---->任何单引号或者双引号括起来的内容,字符串也可以赋值给变量
- 列表------>Python里的容器之一,由方括号和方括号括起来的数据构成a=[ ]。每一项叫元素,里面的元素使用逗号隔开,元素的数据可以是字符串,整数浮点数,也可以是列表或其他数据结构
- 元组---->python里面的容器之一,由小括号和小括号括起来的数据构成。b=(),元与二元一次方程的元是一个意思,组就是组合的意思,元组生成后不可以删除或者修改其中的数据,若是里面包含一个列表,可以修改里面的列表,但不能修改元组
3.数据的读取
- 可以使用一样的方式从字符串、列表、元组中读取数据
- 下标都是从0开始,-1表示最后一个元素
- 字符串切片以后还是字符串。列表切片还是列表,元组切片还是元组,变量名[开始位置下标:结束位置下标:步长],这三个参数都是数字,切片的结果包括开始位置下标,不包括结束位置所对应的元素,这三个参数可以部分省略,但不能全部省略
- print(a[::-1])表示倒序输出
- 字符串与字符串之间,元组与元组之间,列表与列表之间都可以相加,表示拼接,元组和字符串不能添加新的内容,也不能修改里面的非可变容器元素
4.字典与集合
- 字典就是使用大括号括起来的键值对,每个键值对之间使用英文逗号分隔,每个键与值间使用英文冒号分隔
- 键可以使用中文英文或者数字,但是不能重复,值可以是任意字符串、数字、列表、元组或者另一个字典可以重复
- 变量名[key],变量名.get(key),变量名.get(key,'在找不到key的情况下使用这个值')
- 使用get来读取,如果get只有一个参数,那么在找不到key的情况下会得到‘None’;如果get有两个参数,那么在找不到key的情况下,会返回第二个参数
- 变量名[key]='新的值'
- 字典、集合输出的顺序是乱的
- 集合是使用大括号括起来的各种数据,集合里面的元素不能重复,也是无序的
- 利用集合的特性,集合可用来去重,如把一个带有重复元素的列表先转换为集合再转换为列表,那么重复元素就只会保留一个
- set()函数---》把列表转换为集合
- list()函数---->把集合转换为列表
- 集合去重会导致原来列表元素顺序变得杂乱无章
5.条件语句
- if 真: else:
- and-->并且,or-->或者
- 短路效应
- 多重条件判断,if-elif(可有0-多个)-else(只能有0-1个)----》实际上形成3条并列执行的分支
- 使用字典实现多重条件控制,a = {'b':1,'c':2,'d':3} code = a.get(name,5)
6.for循环与while循环
- for x in y : 循环体
- for 循环可以直接从字符串里面获得每一个字符
- while循环用在不知道要执行多少次的情况下,要么让程序永远运行,要么在某个特定的条件下结束
- 在爬虫过程中需要设置延迟时间,否则会让代码超高速运行,导致爬虫被网站封锁
- continue跳过本次循环,break结束循环,它们都对他们所在层循环负责,而不影响外层循环
7.函数与类
- 函数就像是一套定义好的流程:输入数据得到结果
- 定义函数就好像是教小爱同学说话的过程,让小爱同学回答就是调用函数,教小爱同学说话就是输入参数,小爱回答的问题的内容就是这个函数的输出
- 使用函数可少写代码
- 一个函数只做一件事情,不要超过20行代码,可以拆分为更小的函数,也可以在里面调用其他函数
- 使用关键字def来定义一个函数
- 一个函数可以有参数也可以没有参数,可以有一个参数,也可以有很多个,参数类型可以任意
- 一个函数至少有一个返回值,可以人为指定返回任何类型的数据,如果没有指定则返回值为None,返回值的个数可以是一个,也可以是多个还可以是另一个函数
- 一个函数可以有多个或者一个也没有的return语句
- 无return == return(只有return后面不跟任何变量) == return None
- return之后的代码不会被执行
- 函数之间可以串行运行,数据先有一个函数处理,再由另一个函数处理,函数也可以嵌套运行,在一个函数里面调用另一个函数。在函数里面也可以定义函数
- 函数可以设置一或多个默认值,当调用函数不带参数时使用该默认值
- 函数参数的类型决定了它的作用范围
- 函数外面的容器类作为参数传递到函数中去后,如果函数内部修改了这个容器里面的值,那么函数外面的容器也会受到影响
- 函数外面的普通变量作为参数传递到函数中,并且函数修改了这个参数的时候,外面的变量不受影响
8.类与面向对象编程
在py里面一切都是对象,属性是描述对象的各种标签,方法是这个对象可以做的动作,对象可以只有属性没有方法,也可以只有方法没有属性。
类是一个泛指的概念,而对象是具体的特定个体,如人类是一个泛指的大类,你是一个特定的具体的个体是一个对象
先有类才有对象,要想创建每一个具体的对象,都需要先定义类
- 使用class定义一个类——>类名、父类、初始化方法、属性
#定义类People,父类的名称:object,开发者自己写的类需要继承这个object或者继承自己写的其他类。在python3中,如果有其他父类才编写,如果没有父类可以省掉Object类,python的编译器会默认继承Object类。
class People(object):
def __init__(self,name,age):
self.name = name
self.age = age
self.jump()
在类的内部如果要运行它自己的方法,那么调用的时候需要使用self.方法名(参数)的形式,如果要让一个变量在这个类的所有方法里面都能直接使用,就需要把变量初始化为self.变量名
是否使用面向对象编程与代码能否正常运行没有任何关系,面向对象编程的作用是方便代码的开发和维护
文章评论