一、编程入门
1.编程语言的划分
编程语言分为机器语言、汇编语言、高级语言
1.1 机器语言
机器语言是用二进制数字0和1进行编程,机器语言是人站在计算机的角度去编程,编程开发效率低,程序运行效率高。
1.2 汇编语言
汇编语言可以理解为人说“机人话”,就是人用简写的英文标识符去取代二进制,汇编语言开发效率提升,程序运行效率稍微降低。
1.3 高级语言
之所以称为高级,是因为它与以上两种语言有本质的区别,高级语言是建立在操作系统的基础之上,而以上两种编程语言都是不需要操作系统,直接操作硬件的。操作系统是人创造的,它的出现目的就是提高工作效率。
机器语言到汇编语言再到高级语言,程序员开发效率提升的同时,程序执行效率也降低了。
2.高级语言的分类
高级语言必须先被装换成能被计算机读懂的二进制后,才能被执行,按照转换的方式分为:编译型语言和解释型语言。
2.1 编译型语言
编译型语言需要编译器,写的代码是一个程序,在程序执行之前要先编译,编译的结果转化为二进制之后,计算机才可以执行。当程序需要修改时,不能直接修改编译之后的目标文件,而是要修改源文件,再次编译生成目标文件,计算机再运行,查看修改的结果。和解释性语言相比,执行速度快,要依赖编译器,重点是调试很麻烦。C、C++都是编译型语言。
2.2 解释型语言
解释型语言需要解释器,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器。这种方式比较灵活,可以动态地调整、修改应用程序,python、Php都是解释型语言。
总结:编译型语言和解释型语言各有各的特点,当需要编写的程序不需要经常改动或者升级的时候,一般会选用编译型语言,比如写操作系统或者其它的一些比较底层的应用;当编写的程序需要经常改动升级以此来满足用户的新的需求的时候,一般选用解释型语言。比如一些应用软件,一些网站项目。
3. 变量与常量
3.1 变量的概念
- 计算机工作的过程直白讲就是对数据的增删改查操作,数据是一定会变化的,要存储变化的数据就应该用“变量”。
什么是变量
- 变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。
为什么要有变量
- 程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态以及状态的变化。
3.2 Python变量的定义规范
- 变量名只能是字母、数值或下划线的任意组合;
- 变量名的第一个字符不能是数字;
- 以下关键字不能声明为变量名:
-{and, as, assert, break, class, continue, def, del, elif ,else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with}
3.3 Python变量定义方式
驼峰体
- AgeOfAlbert = 18
下划线(推荐使用)
- age_of_albert = 18
定义变量名不好的方式
- 变量名为中文、拼音;
- 变量名词不达意;
- 变量名用中文;
值得一提的是:在公司里项目很大的时候,往往会命名的变量名比较大,一方面是为了变量名不重复,另一方面是为了能够看到变量名就知道数据的含义。
变量即逻辑
- 定义变量会有:id、type、value
- ==比较的是value(比较的是存放的值是否一样);
- is比较的是id(比较的是存放数据的地址是否一样);
常量
- 常量即指不变的量或在程序运行中不会改变的量,在python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量。
- PRIME_AGE = 56
补充:变量的命名推荐使用“匈牙利命名法”,匈牙利命名法是把变量的类型缩写,放到变量名的最前面。关键在于,这里说的变量类型,指的是那些和代码业务逻辑相关的类型。比如有两个变量:students和teachers,分别代表的是用来的存储学生的集合和用来存储老师的列表。使用匈牙利命名法之后,可以把名字改写成这样:
- students->set_students
- teachers->list_teachers
4. 基本数据类型
4.1 说明
- Python属于强类型的动态脚本语言
- 强类型:不允许不同类型相加
- 动态:定义变量不同数据类型声明,且确定一个变量的类型是第一次赋值的时候。
4.2 字符串(str)
- 形如’ '或者“ ”或者‘“”’,单引号或者双引号或者三引号中间写内容的这种定义方式就是str类型,叫做字符串类型;
- 定义的时候把等号右侧的值赋值给等号左侧的变量;
- 在学习一个数据类型的时候不仅要知道数据类型,还要知道是一个可变类型还是不可变类型;
- 不可变类型:当变量值改变的时候id也会一起改变,相当于重新开辟一块内存空间,给变量重新赋值,原来的值是不可变的,str就是一个不可变类型;
- 可变类型:当变量值改变时,id可以保持不变,相当于在原来的基础上进行修改,位置还是没有变。
4.3 整型(int)
- 整型是一个不可变类型,例如age = 18;
4.4 浮点型(float)
- 浮点型是一个不可变类型;
4.5 列表(list)
- 当需要存储一个班级所有学生的名字的时候,就用一个变量去存储多个值,以上三种数据类型都只能存储一个值,这种情况可以用list数据类型来完成,叫列表;
- 定义形式:中括号内,多个元素用逗号分割,每个元素可以是任意的数据类型,列表是一个可变类型;
4.6 元组(tuple)
- tuple是一种和list类型的数据类型,叫元组,用法和list非常相似,只是列表是可以修改的。而元组是不能修改的,只能查看;
- 定义方式是在小括号内,多个元素用逗号分割,每个元素可以是任意的数据类型;
- 元组是一个不可变类型;
4.7 字典(dict)
- 定义形式:花括号内多个元素用逗号分割,每个元素按照key:value的形式,需要注意的是:字典的key只能用不可变类型,一般使用字符串;
- 字典是一个可变类型;
4.8 集合(set)
- 列表和元组的值是可以重复的,集合中的元素是不能重复的;
- 定义形式:花括号内多个元素用逗号分割,每个元素可以是任意的数据类型,但是不能重复;
- 集合是一个可变类型。
4.9 布尔(Bool)
- 只有两个值,True和False;
5. 注释
代码注释分为三种:
- 单行注释,注释单独占一行,以#开头,打一个空格,后面写注释的内容;
- 行内注释,在代码尾部,打两个空格,然后打一个#,接着再打一个空格,后面写注释的内容;
- 多行注释,可以用三对双引号或者三对单引号中间写注释内容,和明显多行注释就是可以注释多行,当注释比较长的使用,写很长的一行不便于阅读,这时候推荐使用多行注释;
代码注释原则:
- 不用全部注释,只需要在自己觉得重要或不好理解的部分加注释即可;
- 注释可以使用中文或者英文,但不要用拼音,也不要用中英文混杂;
6. 文件头
注意:既然是文件头,那么自然是要放在文件顶部,这也是开发规范的一些细节;
#!/user/bin/env python # 指定解释器
# -*- coding: utf-8 -*- # 指定文件字符编码
可以在pycharm中配置好上面这些代码,以后每次新建一个文件自动就会添加文件头。MacOS系统的用户可以按照先点击Pycharm左上角,按照:Pycharm-Preferences-Editor-File and Code Templates-Python Script的顺序找到一块空白的区域,把代码粘贴进去;Windows系统的用户可以按照:File-Setting-Editor-File and Code Templates-Python Scripts,执行同样的操作,注意:作者那一行代码可以改成自己的名字;
#!/user/bin/env python # 指定解释器
# -*- coding: utf-8 -*- # 指定文件字符编码
# @Time : ${data} ${TIME}
# @Author : Huang Junfu
# @File : ${NAME}.py
7. 实现用户交互
用户交互就是程序等待用户输入数据之后,再执行下一步的程序,使用input来完成这个操作;
name = input('请输入姓名') # 把输入的内容赋值给name这个变量
print('你好' + name) # 当用户输入完成自己的姓名之后就会打印出来 你好XXX
Python2和Python3的区别
- 在Python3中input:用户输入任何值,都存成字符串类型;
- 在Python2中的input:用户输入什么类型,就存成什么类型;
- Python2中的raw_input:等于Python3的input;
需要注意的是,当需要输入一个数字的时候,考虑到我们会用这个数据做计算,而Python3的input会默认转成str,所以需要把用户输入的数据转化成int
age = input('请输入年龄')
age = int(age) # 把字符串age转化成int类型age用于计算