@[Python](小菜鸟自学心得)
小标注:
python内置的常用数据类型有:数字、字符串、Bytes、列表[list]、元组(tuple)、字典{dict}、集合(set[])、布尔值Ture、False等
#背景:本人是一名刚毕业的本科生,就职于北京小米集团,担任SRE职位,前身是一名C++学习者,了解的编程语言有C、C++、JAVA略知一二。目前的工作状态需要我对python、Linux shell多了解一些,借此机会打算自我学习,接下来的日子里面我将会在贵平台记录我的学习历程,坚持初心,学有所成。
#目标1:一个月后的自己比现在的我多掌握一门语言:python
#Python是什么?
python是一种解释型、面向对象、动态数据类型的高级程序设计语言。
解释型语言:开发过程中没有编译这个环节
交互式语言:可以在一个python提示符,直接互动执行程序
面向对象语言:支持面向对象的风格或代码封装在对象的编程技术
#Python的基本语法是什么?
##Python是一种交互式编程
交互式编程意味着不需要写脚本,只需要通过python解释器的交互模式即可编写代码,启动python的交互模式命令:python
Python可以一行显示多条命令
##Python是一种脚本式编程
第一种:首先通过新建一个python脚本test.py
执行脚本:python test.py
第二种:通过修改python脚本的内容,使用./执行脚本 PS:给脚本添加可执行权限
#Pyhton标识符
Python的标识符包含数字、字母、下划线,不能以数字开头,C++、JAVA的标识符要求一致
Python的标识符是区分大小写
以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 init() 代表类的构造函数。
#Python保留字符
Python的保留字符是针对于小写,保留字符不可作为变量或者是常量或者是其他标识符
#Python的缩进和行控制
Python的缩进是严格控制的,所有的缩进空格数目是可变的,并且必须保持缩进一致,通过缩进来区分模块。
Python中一般以新的一行作为语句的结束符
#Python基础
##数据类型和变量
整数:正整数和负整数,计算机由于使用二进制,所以使用十六进制表示整数,0x前缀和0-9,a-f表示。
浮点数:浮点数也称为小数,对于很小的浮点数通过数学表示法可以表示,对于很大的浮点数,可以利用科学记数法表示,此时小数点的位置是可变的。
整数和浮点数在计算机内存储方式不同,整数运算永远是准确的,浮点数运算可能会有四舍五入的误差。
字符串:单引号、双引号括起来的任意文本,因为存在很多的转义字符,通过r’ ‘默认’ '里面的内容不转义。
针对多行的内容利用\n可以实现换行,也可以通过…实现换行
布尔值:True、False,布尔值可以通过and、or、not直接运算
空值:None是一个特殊的空值,不等于0
变量:变量的类型没有定义的属于动态语言,变量类型定义好的是静态语言
常量:通常大写的表示常量
小结
Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。
对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向。
注意:Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如Java对32位整数的范围限制在-2147483648-2147483647。
Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。
##字符编码
字符串也是一种数据类型,计算机能处理的都是二进制码,所以我们需要将字符编码,统一地通过Unicode管理。
Unicode编码常用两个字节表示一个字符,编码会相对统一,不再出现乱码,但是存储空间比ASCII编码多占一倍。所以就出现了把Unicode编码变为可变长编码的UTF-8,UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间.
ASCII编码用一个字节表示一个字符
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器:
###字符串编码
Python用ord()函数获取单个字符的整数,chr()函数用于将编码转换为对应的字符
#list和tuple
##list是Python的一种内置数据类型:是一种有序的数据集合,可以随时增加删除list中的元素,通过输入列表名称就可以查看列表元素,如下:
len()函数可以获取list的元素个数
通过索引访问list中的每个元素,注意:索引是从0开始
list是一个可变的有序列表,可以追加元素到列表末尾如下:
插入元素到指定的位置,例如插入元素到1号索引的位置
##tuple
tuple即元组,里面的指向的元素是不可变的,没有append()、insert()这些方法,其中tuple(‘a’,‘b’,‘c’,list[‘x’,‘y’,‘z’])list[]中的元素可以改变,也就是说tuple()元组指向的元素不能改变,但是元素本身是可以改变的,如下:
#dict和set
##dict使用键-值(key-value)存储,具有极快的查找速度,如下查找某同学的成绩:
由于key只能对应一个value,所以多次给key赋值,会覆盖掉之前的值,如下:
判断key是否存在?
in判断key值是否存在:
get()方法判断key值是否存在:
删除key,通过调用pop()函数
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
##set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合
add()
remove()
replace()
#条件判断if
运行结果如下:
#循环语句
##第一种循环是:for…in 从list或者是tuple中依次迭代出每个元素
执行如下的代码:
for x in:就是把每个元素迭代出来带进x,然后执行缩进块的语句:
range()函数生成一个整数序列,例如:我们需要计算1-100之间的数字之和,通过list调用range()函数,将1-100的整数序列转换成为一个list,然后执行相关缩进块的语句即可:
##第二种循环是while循环
while:只要满足条件就不断地循环,直到不满足的时候退出循环。
##break语句:提前退出循环
##continue结束本轮循环,直接进入下一轮循环