python基础知识
一、 什么是python
Python是一门编程语言:解释型语言、动态语言类型、强定义语言类型(安全型语言)
(一) 编译型语言与解释型语言
- 1. 编译型语言:
编译器将源程序的每一行代码全都先翻译成机器语言,以二进制进行存储,再调用时直接以机器语言进行执行:
1) 优点:执行效率高
2) 缺点:开发效率低
- 2. 解释性语言
解释器只在调用程序时,才将源代码一条一条解释成机器语言来执行。
1) 优点:开发效率高
2) 缺点:执行效率低
(二) 动态语言与静态语言
- 1. 动态语言
动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。
- 2. 静态语言
静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
(三) 强类型语言与弱类型语言
- 1. 强类型语言
强制数据类型定义的语言。一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。
- 2. 弱类型语言
数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
二、 Python优缺点
1) 优美、清晰、简单
2) 开发效率高,有强大的第三方库
3) 可移植性强——Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)
4) 可扩展性——可以把部分程序用C或C++编写,然后在Python程序中使用它们
5) 可嵌入性——可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
(一) Python2x与python3x:
- 1. Python2x:
代码冗余:重复、混乱
不识别中文,input输入的数据类型为所输入类型:可用raw_input()模拟python3x
- 2. Python3x:
优美、清晰、简单
Input获取的数据类型均为字符串
三、 Python种类
(一) CPython
当我们从Python官方网站下载并安装好Python 3.6后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。
(二) IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
(三) PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。
(四) Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
(五) IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
四、 Python环境变量配置与pycharm的安装破解
五、 编码
(一) ASCII码
英文1个字节,8位二进制
中文2字节,16位二进制
(二) Unicode
中英文都采用2字节
(三) Utf-8
英文1字节,欧洲2字节,中文3字节
(四) Gbk
英文1字节,中文2字节
六、 Python基础知识
(一) 变量:
暂时存放数据,以便程序调用
变量命名规范:
a) 只能是字母、数字、下划线
b) 不能以数字开头
c) 不能使用python的系统预留关键字
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
d) 要具有可描述性
e) 不宜过长,区分大小写
f) 推荐使用下划线、驼峰体
(二) 常量
生活中理论上不发生改变的量,例如:π,身份证号等等
(三) 注释
单行注释:#
多行注释:’’’ ‘’’’ 或者 “”””””(多行注释可以错开嵌套使用:‘’‘ “”“ ”“” ’‘’)
(四) 交互
输入:input( )
打印:print( )
格式化输出:
字符串用三引号可以保持原样输出
用特定的占位符%进行格式化输出:print(“姓名:%s,年龄:%d” % (name,age))
(五) 基础数据类型
- 1. 整型int
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1
- 2. 字符串型str
加了引号的字符都被认为是字符串:’’ “” ‘’’ ‘’’’(多行字符串必须用三引号)
字符串可以拼接+,与数字相乘str*int(表示重复)
- 3. 布尔型bool
一个True(真),一个False(假), 主要用于逻辑判断
- 4. 元组tuple
- 5. 列表list
- 6. 集合set
- 7. 字典dict
(六) 基本运算符
- 1. 算术运算符
+ - * / % ** //
- 2. 赋值运算符
= += -= *= /=
- 3. 比较运算符
> < >= <= != <>
- 4. 逻辑运算符
and or not
and or 二元运算符,返回值为其对结果有决定性作用的值
- 5. 成员运算符
in not in
- 6. 位运算
- 7. Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 |
描述 |
** |
指数 (最高优先级) |
~ + - |
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // |
乘,除,取模和取整除 |
+ - |
加法减法 |
>> << |
右移,左移运算符 |
& |
位 'AND' |
^ | |
位运算符 |
<= < > >= |
比较运算符 |
<> == != |
等于运算符 |
= %= /= //= -= += *= **= |
赋值运算符 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not and or |
逻辑运算符 |
(七) 转移字符
换行符:\n
制表符:\t
……
七、 Python中的if结构
五大结构:
(一) 两种选择,可选
if 条件:
语句体
(二) 两种选择,二选一
if 条件:
语句体
else:
语句体
(三) 多种选择,可选
if 条件:
语句体
elif 条件:
语句体
elif 条件:
语句体
(四) 多种选择,多选一
if 条件:
语句体
elif 条件:
语句体
elif 条件:
语句体
else:
语句体
(五) if嵌套
if 条件:
if 条件:
语句体
elif 条件:
语句体
八、 Python中的while结构
(一) 基本结构
while 条件:
循环体
(二) 终止循环:
条件为假
break
(三) continue跳出本次循环进行下一次
(四) while…else…固定搭配:
只有当break执行时,else才不执行
while 条件:
循环体
break
else:
语句体