前言:本文章主要用于个人复习,追求简洁,感谢大家的参考、交流和搬运,后续可能会继续修改和完善。
因为是个人复习,会有部分压缩和省略。
计算机基础概念
什么是计算机?
现在我们所说的计算机不光能进行算术运算,还能进行逻辑判断,数据存储,网络通信等功能,以至于可以自动的完成非常复杂的工作。像台式机、笔记本、手机、服务器、路由器、智能家电都可以称为“计算机”
一台计算机由以下几个重要的组件构成:
CPU
存储器(内存,硬盘等)
输入设备(键盘,鼠标等)
输出设备(显示器,音响等)
PS:显卡(GPU)适合CPU类似的计算芯片。只不过CPU是“通用计算机芯片”,可以处理各种场景下的各种问题,就像高校培养出来的学生,可以在各个行业各个领域贡献力量。
而GPU是“专用计算芯片”,特别擅长处理浮点数运算,就像培训机构培训的学生,专精一个方向
Python都能干什么
经历了多年的发展,Python目前是一个应用场景非常广泛的编程语言
科学计算和数据分析、Web开发(搭建网站)、自动化运维、人工智能、爬虫程序、自动化测试等等
Python的优缺点
优点:
语法言简意赅,容易上手
功能强大,用途广泛
生态丰富,具有海量的成熟第三方库
方便调用C/C++编写的代码进行高性能/系统级操作
缺点:
执行效率比较低
对于多核心并发程序支持偏弱
动态类型系统对于大型项目不太友好
常量和表达式
我们可以使用Python来进行一些算术运算:print(1 + 2 - 3)//打印,print是属于Python里面的一个内建函数print(1 + 2 * 3)//会先算乘除,再算加减,叫优先级print(1 + 2 / 3)//先算乘除,后算加减
注意:
在Python中,2/3得到的是0.666666,而不是0。与C语言/Java/C++不同,整数除整数结果还是整数,并且会把小数部分直接舍弃。那么不应该是0.666667吗,怎么是0.666665呢,因为在编程中,没有四舍五入的规则,而是使用IEEE754标准,在这个标准下,所规定的浮点数(表示浮点数时),它在表示一些数据时,可能会出现一些非常小的误差
形如1 + 2 - 3称为表达式
这个表达式的运算结果,称为表达式的返回值
1,2,3这样的数字,称为字面值常量
+、-、*、/称为运算符或操作符
变量和类型
变量可以将我们算出的结果保存起来,想用时又可以随时调用
变量可以视为是一块可以存储数据的空间(可以想象成一个纸盒子,变量是在内存上的)
例如我们可以计算方差(其中就涉及到了变量、运算符、内建函数、字面值常量等的应用):
1.计算平均值
2.针对每个数字,分别计算数字和平均值的差值,再平方
3.把上述的平方值相加
4.除项数 再-1
avg = ((67.5 + 89.0 + 12.9 + 32.2) / 4)total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2result = total / 3print(result)
PS:Python中,用**2表示平方运算,**3表示立方运算
=表示赋值运算符,不是相等
与变量相关的详细语法规则
变量的命名规则://属于硬性规则,必须得遵守
1.变量名必须由数字、字母、下划线构成,不能包含特殊符号,也不能由数字开头
a1 √
1a ×
a*a ×
2.变量名不能和Python的关键字重复
(关键字:在语法中有特定含义的单词。例如:if.......)
3.Python中的变量名是区分大小写的
//一些软性规则,建议遵守
1.给变量命名时,尽量使用有描述性的单词来表示,尽量通过名字来表示出变量的作用
2.当一个单词描述不清时,可以使用多个单词来命名。不怕变量名字长,就怕变量名描述不清楚。
当包含多个单词时,命名有多种规范:
例如:
驼峰命名:除了第一个单词的首字母之外,后续每个单词的首字母都大写。personInfo、totalCount。
蛇形命名:单词之间使用下划线_来分隔。person_info、total_count
使用变量
首次使用=对a设置值,这个过程是创建变量(初始化)
后续再对a使用=操作,则是相当于修改a的内容(赋值)
变量的类型
变量的类型:对于不同种类的变量做出区分
Python中的变量的类型,不要在定义变量的时候显式声明,而是依靠初始化语句,根据初始化的值的类型来进行决定的。即变量类型是由初始化的值来决定的
1.整数(int)
在Python中,int能够表示的数据范围,是无穷的。Python的int是可以根据要表示的数据的大小,自动扩容的。只要内存够大,就能无限大。因此,Python中也就没有short、long这样的类型存在的必要了
2.浮点数(小数)
Python中的float和那些不一样,像C语言、C++中的float都是4个字节的。Python中的float就是双精度浮点数,等同于C/C++中的double,虽然等同于,但是它实际占4个字节
之所以这样设计,是因为Python的一个设计哲学:解决一个问题,只提供一个方案
PS:通过type可以看到当前变量的类型
3.字符串
把一个个字符放到一起,就构成了字符串,像英文字母,阿拉伯数字,标点符号,甚至汉字,这些都可以认为是字符
在Python中,要求使用''把一系列的字符引起来,就构成了字符。引号使用单引号或双引号都是可以的(str就是字符串的意思)
4.布尔
布尔类型是一个特殊的类型,主要用于逻辑判断。布尔的取值只有True(真)和False(假),因
要注意拼写大小写,因为有些真假是TRUE纯大写,有些真假是true纯小写。计算机中用0表示假,用非0表示真
那么单引号和双引号的区别在哪里呢?
假如我们有一段话,my name is "xigua",这种情况下,本就包含双引号/单引号,这样会报错。
s1= "my name is 'xigua' "# 就使用在这种场景
因此,如果字符串里包含了双引号,表示字符串就可以用单引号引起来,如果字符串里面包含了单引号,表示字符串就可以使用双引号引起来。
这几种引号都是等价的关系,哪个方便哪个好用,就用哪个,这个没有什么实际的影响
如果同时有单引号和双引号,怎么办?
Python中还有一种表示字符串的方法,是使用三引号'''或"""表示
PS:在Pycharm中,红色的波浪线,是语法错误。黄色是警告,仍可以运行。绿色是拼写检查的意思。
除了上述类型之外,Python中还有list,tuple,dict,自定义类型等等,我们后续介绍
为什么要有这么多类型?(类型的意义)
1.类型决定了数据在内存中占据多大空间(不同的类型,占用的内存空间是不同的,这里的空间指的是占几个字节。int默认是四个字节,但是它能动态扩容。float固定是8个字节。bool一个字节就足够了,str是可以变长的变量,包含的内容越多,占的空间就越大)
2.不同的类型,对应能够进行的操作也是不同的。
例如:
int/float,可以加减乘除,但是不能使用len
str可以使用len,可以加,但是不能减,不能乘除,
字符串
求字符串长度
len
print(len(a))
字符串拼接
a1 = "hello"a2 = "world"print(a1 + a2)形如这样的代码,就是字符串拼接,也就是把后面的字符串拼接到前一个字符串的末尾,,得到了一个更大的字符串,对于原来的a1和a2是没有影响的,是生成了一个新的字符串
注意:我们不能把字符串和数字混合相加
在Python中,报错有两种情况:
1.语法错误。在程序运行之前,Python解释器就能把错误识别出来
2.运行错误。在程序运行之前,识别不了的,必须要执行到对应的代码,在能发现问题
动态类型特性
动态类型:指的是在程序运行过程中,变量的类型可能会发生改变//注意,是在程序运行过程中
随着a的类型随着程序的运行发生了改变,这种特性就叫做动态类型
一个编程语言是否是动态类型,只是取决于运行时类型是否发生改变,不取决于变量定义时是否声明类型,也就是说并不是写一个int a;就代表a一直是int类型且不能改变,并不是。
Python作为一个动态类型的语言,在定义变量时,也是可以写类型的
例如:a:int = 10
用:就可以。意思就是a创建出来,是一个整型变量。这起到一种类似声明的效果,但是这样写,并不会因为这个声明使得类型不发生改变。
所以针对变量类型的声不声明,并不影响我们的类型系统是动态还是静态
Python引入这个是为了方便程序员读代码,写代码,也方便Python开发工具更好地对代码进行解析
静态类型
程序运行过程中,变量的类型始终不变
int a = 10;//a这个变量在程序运行的整个过程中,始终都是int类型,如果尝试a = "hello",编译阶段就会报错
动态类型这样的写法是比较灵活的,提高了语言的表达能力
但是这样的灵活也会带来问题,在编程中,“灵活”往往是贬义,更容易出错!!!
相比之下,静态类型的语言还是更好一些,尤其是在大型的程序中,多人协作开发中。因此很多公司在创业之初,喜欢用Python来开发。因为Python很灵活,开发快,能快速搭建出一个产品原型,这个时候,产品规模小,也就是一两个程序员很快就能搞出来,很快就容易上线
但是当项目达到一定的规模之后,到后面随着功能不断地迭代,模块不断地变复杂,团队逐渐变大。此时动态类型的劣势就逐渐体现了,这个时候,很多公司就会针对之前Python写的代码使用其他语言进行重构,避免动态类型带来的问题
注释
能够对代码起到解释说明的作用,提高代码的可读性
批量注释代码:选中要注释的代码,ctrl+/就可以,再按一下就是取消注释
注释的语法
1.#开头的行注释(注释行)
一般是写在注释的代码的上方,也有少数情况下是写在要注释代码的右侧,很少会写在代码的下方,更不会写到左侧
2.文档字符串
使用三引号引起来的称为“文档字符串”,也可以视为是一种注释
特点:
可以包含多行内容
一般放在文件/函数/类的开头
"""或者'''都可以(等价)
注释的规范
如何写出比较好的注释:
1.注释的内容要是准确的,不能起到误导作用。公司中的项目要经常“迭代”,很容易发生调整原先代码的情况,有时候有些程序员会只修改代码,不修改注释,所以一定要记得更新注释。但凡要修改代码,务必要记得更新注释
2.注释的篇幅要合理,既不要太精简,也不要长篇大论
3.注释最好使用中文,因为注释是为了更好地方便阅读了解和说明
4.注释内容要积极向上,别搞负能量