- 编译型:源代码转换为目标代码的过程。程序执行所用为目标代码(静态)
- 解释型:源代码逐条转换为目标代码并同时逐条运行目标代码的过程(脚本)
IPO(Input Process Output)程序编写
output
差异化记忆
符号 | 作用 |
---|---|
range() | 产生一个[n,m)的整数序列 |
** | 幂运算 |
// | 整除 |
id() | 查看内存地址 |
type() | 查看数据类型 |
ord() | 得到unicode码 |
str() | 转化为字符串类型 |
+ | 连结字符串 |
- Unicode码与Ascill码类似,Unicode为每种语言中的每个字符设定了统一并且唯一的二进制编码
中文编码范围[U4e00~U9fa5],可用ord()函数得出unicode编码值
输出函数print
- print(输出内容)
- print(value,...,sep=' ',end='\n',file=None)
print('北京欢迎你',end='-->')#修改了结束符,不会换行
- 将print()函数输出到文件
fp=open('note.txt','w')#打开(创建)文件,w --> write print('北京欢迎你',file= fp) fp.close()
输入函数input
x=input() #中文提示词,input数据类型为字符串
x=int(x) #强制转换 ,将字符型转为整型
注释
单行 #
多行 ''' ''' ; """ """
中文声明注释:Python文件编码格式由第一行代码(中文声明注释)决定
关键字的查询
impor keyword
print(keyword.kwlist)#获取关键字
print(len(keyword.kwlist))#获取关键字个数
标识符命名规范
模块名 grame_main
包名 com.yspython
类名 Myclass
模块内部的类 _InnerMyClass
常量 全部为大写字母
Python专用标识 双下划线开头结尾 _init_() 初始化函数
数值类型
整数类型(不可变数据类型)
不可变数据类型,无增改删等一系列操作
进制种类 | 引导符 |
---|---|
十进制 | 无 |
二进制 | 0b或0B |
八进制 | 0o或0O |
十六进制 | 0x或0X |
浮点型(不可变数据类型)
- 科学计数法数据类型为浮点型
- 两个浮点型的数进行运算时,有一定概率在结果增加一些不确定的尾数问题
可使用round()函数解决
round(a,b)
a 需要进行四舍五入的数字。
b 指定的位数,按此位数进行四舍五入
如果 b 大于 0,则四舍五入到指定的小数位
如果 b 等于 0,则四舍五入到最接近的整数
如果 b 小于 0,则在小数点左侧进行四舍五入
- 虚数
real表示实部,imag表示虚部
x=5+3j
print("该虚数的实部为:"x.real,"该虚数的虚部为:"x.imag)
字符串类型(不可变数据类型)
由单引号或双引号括起来的部分
三引号可进行定义多行字符串
转义字符
/t 进入下一个制表位,一个制表位8个字符
print(hello/toooo)#helllo为5个字符/t所占即为3个字符
/' ; /" : 输出引号
r/R 使转义字符失效,成为普通字符
print(r"北京/n欢迎你")
输出为:北京/n欢迎你
切片的语法结构
字符串或字符串变量s[N:M](从N开始,到M结束但不包括M)
若无N,默认从0开始;若无M,默认到结尾
s='HELLOWORLD'
print(s[0],s[-10])
print('HELLOWORLD'[0])
#结果输出均为 H
常用字符串操作
x+y | 将字符串x,y连接起来 |
x*n或n*x | 复制n次字符串x |
x in s | x为s的子串,结果为Ture,否则为False |
布尔类型(不可变数据类型)
x=True
print(x)
print(x+10)
print(x+10.1)
结果:
True
11
11.1
布尔值为False
- False,None
- 数值0;0.0;虚数0
- 空(序列,字符串......)
类型转换
隐式转换
发生在计算过程中
显示转换
通过函数进行转换
函数 | 描述 |
---|---|
int(x) | x转换为整型 |
float(x) | x转换为浮点型 |
str(x) | x转换为字符串 |
chr(x) | 将整数x转换为一个字符 |
ord(x) | 将一个字符x转换为对应Unicode码的数值 |
hex(x) | 整数x转换为十六进制字符串 |
oct(x) | 整数x转换为八进制字符串 |
bin(x) | 整数x转换为二进制字符串 |
浮点型强制转换为整数型只会保留整数部分
字符串非数字部分无法转换
eval函数
去掉字符串最外侧引号,并执行相关操作
eval()常与input()一起使用
#input()函数所得为字符串类型
运算符
优先级
运算符 | 描述说明 |
---|---|
** | 幂运算 |
~,+,- | 取反,正好,负号 |
*,/,&,// | 算术运算符 |
+,- | 算术运算符 |
<< , >> | 位运算符 |
& | 位运算符 |
^ | 位运算符 |
| | 位运算符 |
< , <= , > , >= , !=... | 比较运算符 |
= | 赋值运算符 |
逻辑运算符
将布尔值进行运算
位运算符
将数字看作二进制运算(16位)
“位与” &
数字对齐,同一为一,不同为0
“位或” |
数字对齐,有一为一
“位异或” ^
同为0,不同为1
“位取反” ~
对于单个数字而言,取反
“左移位” <<
将二进制向左移动指定位数,左端丢弃,右端补0
“右移位” >>
将二进制向右移动指定位数,右端丢弃,右端补相应数字
模式匹配
- 与switch()类似
match score:#score为变量名
case 'A':
print("优秀")
python3.11新特性
1.结构模型匹配
语法结构
match data:
case {}:
pass
case[]:
pass
case():
pass
case_:
pass
2.字典合并运算符 |
3.同步迭代
match data1,data2:
case data1,data2:
pass
循环结构
遍历循环for
扩展:for...else...for板块正常运行,就执行else板块
无限循环while
- 初始化变量
- 条件判断
- 语句块
- 条件变化
扩展while-else结构
pass语句
占位符,代替语句块使语法完整
序列
字符串
列表
创建方式
直接创建
使用[]直接创建
列表名=[element1,element2,element3......]
list()
列表名=list(序列)
列表生成式的使用(间接创建)
lst=[expression for item in range]
item是对expression的解释
lst=[expression for item in range if condition]
列表遍历操作
1.for循环
2.for循环+索引
3.enumerate函数
for idex ,item,in enumerate()
idex序号,默认从0开始
item元素
列表相关操作方法
排序操作
1.lst.sort(key=None,reverse=False)
key:排序规则 reverse排序方式,默认升序False,Ture为降序
2.内置函数 sorted(iterable,key=None,reverse=False) 产生新列表
iterable:排序对象
元组
创建方式
1.元组名=(元素1,元素2,...)逗号不能省略
2.元组名=tuple(序列)
字典
创建方式
1.{}直接创建
d={key1:value1,key2:value2,...
2.内置函数dict()
(1)映射函数创建字典zip(lst1,lst2)
(2)关键字创建dict(key1=value1,key2=value2,...)
取值
d[key]或d.get(key)
区别:若key不存在,d.get(key)可以指认一个值
遍历
1.遍历key与value的元组
for element in d.items()
2.分别遍历出可key,value
for key,value in d.items()
相关操作
字典生成式
d={key:value for item in range}
d={key:value for key,value in zip(lst1 lst2)}
集合
创建方式
1.{}直接创建
语法结构 : s={element1,element2,...}
2.内置函数set()创建
语法结构 : s=set(可迭代对象)
相关操作
---------------------------------------------------------------------------------------------------------------------------------
......