Python的数据结构和控制结构

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.变量名

是否使用面向对象编程与代码能否正常运行没有任何关系,面向对象编程的作用是方便代码的开发和维护

版权声明:
作者:RHZ
链接:https://www.rhzhz.cn/?p=305
来源:RHZ | 用文字记录工作和学习生活
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
Python的数据结构和控制结构
1.整数与浮点数 整数---->数学整数浮点---->数学小数python中打印'0.1+0.2'==‘0.300000000000000004’--->计算机浮点数存储机制导致不应该直接用p……
<<上一篇
下一篇>>