1.Python基本概念:①Python是一门高级语言,经编译器编译之后变为机器语言才可执行 (Python是脚本语言); ②Python是一门解释型语言,需要将源代码逐条转换成目标代码,同时逐条运行目标代码,执行解释的计算机程序也称为解释器;③Python特点:明确简单而优雅,库丰富而多样。
2.Python应用领域:①web开发;②数据分析与科学计算;③人工智能与机器学习(常用TensorFlow,Keras,PyTorch);④自动化测试与运维;⑤网络爬虫(request);⑥游戏开发!
目前学习工具与平台:pycharm3.8
基本的程序编写流程:IPO程序编写方法
1.input函数:变量名 = input('提示文字')? ? ? 注意事项:input获取的数据返回为字符串类型
2.注释:单行注释加前缀#,多行注释使用''' '''
3.代码缩进:每行语句开始前的空白区域,因为Python语法较为简洁,没有c语言或者JS一样的多个嵌套的括号,因此嵌套关系常看缩进,需要严格的缩进。(pycharm的提示选项内有格式化选项)
4.print函数:
print(内容)
其完整版其实是
print(内容,...,sep='内容间分隔方式',end='尾部内容',file=写入位置) 注意事项:字符要加引号,变量等不用
5.文件打开与写入:
fp = open('text.txt', 'w')
#其中的w指的是插入形式(write)
print(chr(28145), file=fp)
6.关键字(保留字):在Python中被赋予特定定义的一些单词,不可作为变量名与对象名等使用,以下为基本的保留字
and | as | assert | break | class | continue | def |
del | elif | else | except | finally | for | from |
False | global | if | import | in | is | lambda |
nonlocal | not | None | or | pass | raise | return |
try | True | while | with | yield | await | async |
7.Python标识符命名规则与规范:
①可用中英文,下划线,数字;②第一个不能是数字;③不用关键字;④严格区分大小写;⑤下划线开头的具有特殊意义;? ? ? ? ? ?①全部小写的短小单词,以下划线分隔;②包名尽量短小,以点分割;③模块内部类:下划线+Pascal命名法,如MyClass内部的_InnerMyClass;④函数,类的属性和方法的命名,一般全用小写字母,多个单词之间以下划线分隔⑤常量一般全用大写,下划线分隔;⑥以单下划线开头的模块变量与函数受保护,在使用“from xxx import *”语句从模块中导入时,这些模块变量或函数不能被导入;⑦双下划线开头慎用,是类私有的;⑧头尾双下划线是Python专用标识,勿使用此型
8.变量与常量
变量的语法结构: 除了一般的数据结构之外还可赋值为一个方法返回的参数
变量名 = value
常量的语法结构:与变量无异,但是命名规则要注意,而且一般直接赋值
9.数值类型
①整数类型:没有小数部分的数值,包含正整数、负整数和0
注:Python中不同进制之前需要引导符号以用于被辨识。十进制无前缀,二进制以0b或0B作为前缀,八进制以0o或者0O作为前缀,十六进制以0x或者0X作为前缀
②浮点数类型:表示带有小数点的数值,计算时注意浮点误差
复数:Python中的复数与数学中形式一致,实数部分以.real表示,虚数部分以.imag表示
# 实部与虚部
x = 123 + 456j
print(x)
print(x.real)
print(x.imag)
10.字符串类型与操作
①普通字符串,可以表示计算机所能识别的一切字符
②界定符:单引号,双引号,三引号
③转义字符:\+字母或符号,具体查表
④原字符:字符串界定符前加r或者R,使转义字符失效变为普通字符
⑤索引:有序的字符序列(字符串)中,某个字符的检索号称为索引(正序从0开始,逆序从-1开始)
⑥切片:对字符串中某个子串或者区间的检索,基本语法结构如下(左闭右开):
#字符串切片
s = 'hello world'
print(s[0])
print(s[-2])#反向
print('hello world'[2:5:3])#2到5,跨步为3
print(s[:5])#从零开始到第五个
⑦字符串操作:拼接x+y? ?复制n次x*n? 检索x是否为s的子串,返回布尔值x in s
11.布尔类型:True表示1,False表示0(反之,在进行判断时除了0以外其他都视为True)false情况:False或者None,各种数值中的0,空序列,自定义对象的实例,该对象的__bool__()方法返回False或__len__()方法返回0?
12.数据类型之间的转换:
①隐式转换:在函数运算以及程序运行过程中内置函数导致的转换(可能类似于JS?有待学习)
②显式转换:使用转换函数转换数据类型
函数 | 描述说明 |
int(x) | 将x转换为整数类型 |
float(x) | 将x转换为浮点数类型 |
str(x) | 将x转成字符串 |
chr(x) | 将整数 x转换为一个字符 |
ord(x) | 将一个字符x转换为其对应的整数值 |
hex(x) | 将一个整数 x转换为一个十六进制字符串 |
oct(x) | 将一个整数 x转换为一个八进制字符串 |
bin(x) | 将一个整数 x转换为一个二进制字符串 |
13.eval函数:python中的内置函数,去掉语句最外侧的引号后执行该语句(注意,该语法格式为 :变量名=eval(字符串)与其他函数共用时注意格式与嵌套关系)
num = eval(input('输入算式'))
print('千位为', num // 1000)
print('百位为', num % 1000 // 100)
print('十位为', num % 100 // 10)
print('个位为', num % 10 // 1)
14.算术运算符:处理四则运算,优先级为:** 其次?*,/,%,// 其次 -,+ ,具体如下:
运算符 | 描述说明 | 示例 | 结果 |
+ | 加法 | 1+1 | 2 |
- | 减法 | 1-1 | 0 |
* | 乘法 | 2*3 | 6 |
/ | 除法 | 10/2 | 5.0 |
// | 整除 | 10//3 | 3 |
% | 取余 | 10%3 | 1 |
** | 幂运算 | 2**4 | 16 |
15.赋值运算符 :故名思议,具体如下:
运算符 | 描述说明 | 示例 | 展开形式 |
= | 简单的赋值运算 | x=y | x=y |
+= | 加赋值 | x+=y | x=x+y |
-= | 减赋值 | x-=y | x=x-y |
*= | 乘赋值 | ? ? ? ? ? ? ? ? ? ? ?x*=y | x=x*y |
/= | 除赋值 | x/=y | x=x/y |
%= | 取余赋值 | x%=y | x=x%y |
**= | 幂赋值 | x**=y | x=x**y |
//= | 整除赋值 | x//=y | x=x//y |
16.比较运算符,依旧看图:?
运算符 | 描述说明 | 示例 | 展开形式 |
> | 大于 | 98>90 | True |
< | 小于 | 98<90 | False |
== | 等于 | 98==90 | False |
!= | 不等于 | 98!=90 | True |
>= | 大于或等于 | 98>=98 | True |
<= | 小于或等于 | 98<=98 | True |
17. 逻辑运算符,与或非三巨头,具体如下:
运算符 | 描述说明 | 用法 | 结合方向 |
and | 逻辑与 | 表达式1 and 表达式2 | 从左到右 |
or | 逻辑或 | 表达式1 or 表达式2 | 从左到右 |
not | 逻辑非 | not? 表达式 | 从右到左 |
18. 位运算符,将数字看做二进制进行计算与操作。首先以“位与”举例:当两数对应位置都为一时结果为一,否则为零,其他运算符也都如此运算一般,是“按位”进行运算。
?①位与(&):对两个操作数的每个对应位执行逻辑与操作,只有当两个位都为 1 时,结果才为 1,否则为 0。
②位或(|):对两个操作数的每个对应位执行逻辑或操作,只有当两个位都为 0 时,结果才为 0,否则为 1。
③位异或(^):对两个操作数的每个对应位执行逻辑异或操作,当两个位不同时,结果为 1,否则为 0。
④位取反(~):对操作数的每个位执行逻辑非操作,将每个位取反。
⑤左移(<<):将操作数的二进制表示向左移动指定的位数,并在右侧用零填充。
⑥右移(>>):将操作数的二进制表示向右移动指定的位数,并在左侧用符号位填充(对于正数是 0,对于负数是 1 注意:填充时空出的位置全部都是填符号位)。
注意:在使用位运算符时,操作数会被转换为整数进行计算。
下为举例,内部过程自己写一手二进制数即可:
#位与
a = 5 # 二进制表示为 0101
b = 3 # 二进制表示为 0011
result = a & b
print(result) # 输出 1,即二进制的 0001
#位或
a = 5 # 二进制表示为 0101
b = 3 # 二进制表示为 0011
result = a | b
print(result) # 输出 7,即二进制的 0111
#位异或
a = 5 # 二进制表示为 0101
b = 3 # 二进制表示为 0011
result = a ^ b
print(result) # 输出 6,即二进制的 0110
#位取反
a = 5 # 二进制表示为 0101
result = ~a
print(result) # 输出 -6,即二进制的 -0110
#左移
a = 5 # 二进制表示为 0101
result = a << 2
print(result) # 输出 20,即二进制的 10100
#右移
a = 5 # 二进制表示为 0101
result = a >> 2
print(result) # 输出 1,即二进制的 0001
14-18运算符优先级:?
①**? ?②~、+、-? ?③*、/、%、//? ?④+、-? ?⑤<<、>>? ?⑥&? ?⑦^? ?⑧|? ?⑨<、<=、>、>=、!=、==? ?若有赋值运算符则优先级最低(最后运行)
19.