目录
- 1 书写格式
- 1.1 程序框架格式
- 1.1 注释
- 1.2 保留字
- 2 数据
- 2.1 整数类型
- 2.2 浮点类型
- 2.3 复数类型
- 2.4 数值运算符
- 2.5 数值运函数
- 2.6 数值类型转换函数
- 2.7 math 库
- 2.8 字符串
- 2.8.1 字符串的表示
- 2.8.2 字符串的区间访问
- 2.8.3 字符串操作符
- 2.8.4 字符串操作函数
- 2.9 字符串类型的格式化 farmat() 函数
- 2.9.1 连接不同类型
- 2.9.2 对齐/填充
- 2.9.3 千位分隔符
- 2.9.3 小数精度截取
- 2.9.4 输出不同进制整数类型
- 3 程序的控制结构
- 3.1 关系操作符
- 3.2 逻辑操作符
- 3.3 if 语句
- 3.3.1 单分支语句
- 3.3.2 二分支语句
- 3.3.3 多分支语句
- 3.4 循环语句
- 3.4.1 for 语句
- 3.4.2 while 语句
- 3.4.3 break 和 continue
- 4 函数
- 4.1 简单函数
- 4.2 含参函数
- 4.2.1 可选参数
- 4.2.1 可变数量参数
- 4.2.3 参数的无序写法
- 4.3 带返回值函数
- 4.4 全局变量和局部变量
- 5 组合数据类型
- 5.1 序列
- 5.1.1 字符串(str)
- 5.1.2 元组(tuple)
- 5.1.3 列表(list)
- 5.2 集合
- 5.2.1 集合(set)
- 5.3 映射类型
- 5.3.1 字典
- 6 文件和数据格式化
- 6.1 文件操作
- 6.1.1 文件打开关闭
- 6.1.2 文件读写
1 书写格式
1.1 程序框架格式
说明:Python 采用严格的<缩进>来表明程序的格式框架。
1.1 注释
格式:使用#号、双引号和单引号。
代码示例:
'''
这是一个多行注释
这三个点可以是三个单引号,也可以是双引号加一个单引号
'''
"""
多行注释也可以全是双引号
"""
import turtle #这是一个单行注释
turtle.setup(650,350,200,200)
1.2 保留字
使用下述代码可以输出打印出python的保留字列表。
代码示例:
print(keyword.kwlist) # 列出保留字
False | None | True | and | as | assert |
---|---|---|---|---|---|
async | await | 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 |
2 数据
2.1 整数类型
进制种类 | 引导符号 |
---|---|
十进制 | 无 |
二进制 | 0b或0B |
八进制 | 0o或0O |
十六进制 | 0x或0X |
代码示例:
a = 10
a = -8
b = 0x5d
c = 0b11001100
d = 0o745621
2.2 浮点类型
代码示例:
e = 10.2
e = 50.0
f = 4.1e-5
注:
- 浮点数使用必须带有小数部分,小数部分可以是‘0’
- 浮点数运算,计算机只能提供15位数字的准确性。Python通过标准库 decimal 提供更准确的数字类型Decimal。
2.3 复数类型
定义:就是高中数学中 x2 = -1 求解得出的那个复数。复数类型中,实数部分和虚数部分都是浮点类型。
代码示例:
g = 12.4+4j
h = -3.6+5J
k = g.real # 获取实部
l = g.imag # 获取虚部
2.4 数值运算符
操作符 | 描述 |
---|---|
x+y | 求和 |
x-y | 求差 |
x*y | 求积 |
x/y | 求商 |
x//y | x除以y的整数商 |
x%y | x除以y的余数,模运算 |
-x | x的负数 |
+x | x本身 |
x**y | x的y次幂,即 xy |
2.5 数值运函数
函数 | 描述 |
---|---|
abs(x) | x的绝对值 |
divmod(x,y) | 以二元组形式输出(x//y,x%y) |
pow(x,y[z]) | (x**y)%z,[…]表示该参数可以省略 |
round(x[ndigits]) | 对x四舍五入,保留 ndigits 位小数 ,round(x) 表示返回四舍五入的整数 |
max(x1,x2,…,xn) | 求 x1,x2,…,xn的最大值,n没有限制 |
min(x1,x2,…,xn) | 求 x1,x2,…,xn的最小值,n没有限制 |
2.6 数值类型转换函数
函数 | 描述 |
---|---|
int(x) | 将x转换为整数,x可以为浮点数或字符串 |
float(x) | 将x转换为浮点数,x可以为整数或字符串 |
complex(re[,im]) | 生成一个复数,实部为re,虚部为im,re可以是整数,浮点数或字符串,im 可以是整数或浮点数但不能为字符串 |
2.7 math 库
定义:math 库:包含了 π,e,∞;还包含向上/向下取整、返回x的阶乘、返回小数或整数部分、返回最大公约数、比较相似性等函数和求对数。三角函数运算、高斯误差函数,余补高斯误差函数,伽马函数等。
2.8 字符串
2.8.1 字符串的表示
代码示例:
a = '单引号表示'
b = "双引号表示"
c = '''三引号表示'''
字符串使用的是Unicode编码方式,因此也可以使用Unicode码值输出一些特殊字符。
2.8.2 字符串的区间访问
代码示例:
a = 'Python语言程序设计'
表示 | 输出 | 描述 |
---|---|---|
print(a[0],a[3],a[8]) | P h 程 | |
print(a[3:8]) | hon语言 | |
print(a[::-1]) | 计设序程言语nohtyP | 反向输出 |
print(a[0:10:2]) | Pto语程 | 2是步长 |
print(a[5:]) | n语言程序设计 | |
print(a[:8]) | Python语言 |
2.8.3 字符串操作符
操作符 | 描述 |
---|---|
x+y | 连接两个字符串 |
x*n | 复制n次字符串x |
x in s | 如果x是s的子串,返货True,否则返回False |
str[i] | 索引,返回第 i 个字符 |
str[N:M] | 切片,返回第N到M个字符串,其中不包含M |
x+y | |
x+y |
2.8.4 字符串操作函数
函数 | 描述 |
---|---|
len(x) | 返回字符串的长度 |
str(x) | 返回任意类型所对应的字符串形式 |
chr(x) | 返回Unicode编码x对应的单字符 |
ord(x) | 返回单字符对应的Unicode编码 |
hex(x) | 返回整数x对应十六进制的小写形式字符串 |
oct(x) | 返回整数x对应八进制的小写形式字符串 |
str.lower() | 返回字符串的副本,全部小写 |
str.upper() | 返回字符串的副本,全部大写 |
str.islower() | 当字符串都是小写时,返回True,否则返回False |
str.isprintable() | 当字符串都可打印的,返回True,否则返回False |
str.isnumeric() | 当字符串都是数字时,返回True,否则返回False |
… | … |
2.9 字符串类型的格式化 farmat() 函数
格式: <模板字符串>.farmat(<逗号分隔的参数>)
2.9.1 连接不同类型
代码示例:
print("{}{}{}{}".format("红豆生南国,","春来发几枝。","愿君多采撷,","此物最相思。"))
运行结果:
输出:红豆生南国,春来发几枝。愿君多采撷,此物最相思。
2.9.2 对齐/填充
代码示例:
x = 'Python'
print("{0:30}".format(x)) #默认左对齐
print("{0:>30}".format(x)) #右对齐
print("{0:^30}".format(x)) #居中
print("{0:-^30}".format(x)) #居中并填充字符-
运行结果:
Python
Python
Python
------------Python------------
2.9.3 千位分隔符
代码示例:
a = 123456789
print("{0:,}".format(a))
运行结果:
123,456,789
2.9.3 小数精度截取
代码示例:
x = 12.36547
print("{0:.2f}".format(x)) # 保留两位有效数字,且四舍五入
运行结果:12.37
2.9.4 输出不同进制整数类型
代码示例:
x = 200
print("{0:b}".format(x)) # 二进制
print("{0:c}".format(x)) # Unicode
print("{0:d}".format(x)) # 十进制
print("{0:o}".format(x)) # 八进制
print("{0:x}".format(x)) # 十六进制
运行结果:
11001000
È
200
310
c8
注:由于该函数过于强大,此处不能够一一列举各种用法。
3 程序的控制结构
3.1 关系操作符
和C语言的几个操作符一样~
操作符 | 含义 |
---|---|
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
== | 等于 |
!= | 不等于 |
3.2 逻辑操作符
逻辑符 | 含义 |
---|---|
X and Y | 与 |
X or Y | 或 |
not X | 非 |
3.3 if 语句
3.3.1 单分支语句
格式:条件不用括号包含,最后注意有个冒号;
代码示例:
x = 200
if x < 100 :
print("x小于100")
3.3.2 二分支语句
代码示例:
x = 1000
if x <= 100 :
print("小于100")
else:
print("x大于100")
3.3.3 多分支语句
代码示例:
x = 63
if x < 60 :
print("不及格")
elif 60 <= x <70:
print("及格")
elif 70 <= x <80:
print("中等")
elif 80 <= x <90:
print("良好")
elif x >=90:
print("优秀")
注:上文有一个很神奇地方,它的条件语句可以像数学公式一样写70 <= x < 80
3.4 循环语句
3.4.1 for 语句
格式:
for <循环变量> in <遍历结构>:
····<语句块>
注:遍历结构可以是:字符串、文件、组合数据类型或range()函数等。
代码示例:
for i in range(10) :
print("当前运行次数:"+ str(i) )
循环和else结合的用法:当循环正常执行完成后才执行else语句块中的内容
代码示例:
for i in range(10) :
print("当前运行次数:"+ str(i) )
else:
print("循环正常结束")
3.4.2 while 语句
格式:
while<条件> :
····<语句块>
代码示例:
while x < 5:
print("当前运行次数:"+ str(x) )
x = x+1
else:
print("循环正常结束")
3.4.3 break 和 continue
break
用法和C语言中一致,用来跳出当前最内层循环结构,继续下面的语句代码。
continue
用法和C语言中一致,用来提前结束本次循环,跳过循环体中尚未结束的代码,然后开始下次循环。
4 函数
格式:
def <函数名>(<参数列表>):
····<函数体>
····return <返回值列表>
4.1 简单函数
代码示例:
#定义函数
def happy() :
print("自定义子函数输出")
happy() # 调用函数
4.2 含参函数
代码示例:
#定义函数
def happy(name) :
print("祝{}生日快乐!".format(name))
happy("LiMing") # 调用函数
4.2.1 可选参数
代码示例:
#定义函数
def addnum(a,b=5) :
c = a+b
return c
print(addnum(1)) # 运行结果就是6
4.2.1 可变数量参数
代码示例:
#定义函数
def vfun(a,*b) :
print(type(b))
for n in b:
a += n
return a
print(vfun(1,2,3,5,7))
'''
运行结果是:
<class 'tuple'>
18
'''
4.2.3 参数的无序写法
代码示例:
#定义函数
def addnum(a,b) :
c = a+b
return c
print(addnum(b=1,a=8)) # 这种写法可以不在乎参数顺序
4.3 带返回值函数
代码示例:
#定义函数
def addnum(a,b) :
c = a+b
return c
print(addnum(1,2))
print(addnum(b=1,a=8)) # 这种写法可以不在乎参数顺序
函数可以返回0个,1个或多个返回值。当返回多个返回值的时候,多个值以元组类型保存输出。
代码示例:
#定义函数
def vfun(a,b) :
return a,b+a
print(vfun(1,5))
'''
运行结果是:
(1, 6)
'''
4.4 全局变量和局部变量
- 简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放,如有全局同名变量,其值不变。
- 简单数据类型变量在用
global
保留字声明后,作为全局变量使用,函数退出后该变量保留且值被函数改变。 - 对于组合数据类型的全局变量,如果在函数内部没有被真实创建的同名变量,则函数内部可以直接使用并修改全局变量的值。
- 如果函数内部真实创建了组合数据类型变量,无论是否有同名全局变量,函数仅对局部变量进行操作,函数退出后局部变量被释放,全局变量值不变。
5 组合数据类型
5.1 序列
定义:序列类型是一唯元素向量,元素之间存在先后关系,通过序号访问。
5.1.1 字符串(str)
详见 2.8 节
5.1.2 元组(tuple)
定义:一旦创建不能被修改,用于表达固定数据项、函数返回值、多变量同步赋值、循环遍历等;
表示方式:元组使用逗号和圆括号表示。
代码示例:
('cat','dog',123,0x5f)
5.1.3 列表(list)
定义:
列表是包含0个或多个对象引用的有序序列,属于序列类型。与元组不同,列表的长度和内容都是可变的,可自由对列表中的数据项进行增加、删除或替换。长度无限制,元素类型多样。
列表可以通过[ ]表示,也可以通过list()函数将元组或字符串转化为列表。
代码示例:
Is = [425,"BIT",(10,"cs"),456]
is2 = list("Python程序设计基础")
print(Is)
print(is2)
运行结果:
[425, ‘BIT’, (10, ‘cs’), 456]
[‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘程’, ‘序’, ‘设’, ‘计’, ‘基’, ‘础’]
5.2 集合
5.2.1 集合(set)
定义:集合与数学概念中的集合类似。包含0个或多个数据项的无序组合。集合中的元素不可重复,元素类型只能是固定的数据类型,例如整数、浮点数、字符串、元组等。列表、字典和集合烈性本身都是可变数据类型,不能作为集合的元素。
代码示例:
s = {425,"BIT",(10,"cs"),456}
print(s)
5.3 映射类型
定义:
映射类型是“键-值”数据项的组合,每个元素是一个键值对。即元素是(key,value),元素之间是无序的。键值对(key,value)是一种二元关系,源于属性和值的映射关系。
键(key)表示一个属性,可以理解为一个类别或项目,值(value)是属性的内容,键值对刻画了一个属性和它的值。
键值对将映射关系结构化,用于存储和表达。
5.3.1 字典
格式:
{<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>}
键值对的访问使用中括号<值> = <字典变量>[<键>]
代码示例:
dcountry={"中国":"China","俄罗斯":"Russia","法国":"France"}
print(dcountry["中国"])
代码示例:元素增删
dcountry={"中国":"China","俄罗斯":"Russia","法国":"France"}
dcountry["英国"]="England" #新增键值对
print(dcountry)
del dcountry["法国"] #删除键值对
print(dcountry)
输出:
{‘中国’: ‘China’, ‘俄罗斯’: ‘Russia’, ‘法国’: ‘France’, ‘英国’: ‘England’}
{‘中国’: ‘China’, ‘俄罗斯’: ‘Russia’, ‘英国’: ‘England’}
6 文件和数据格式化
6.1 文件操作
6.1.1 文件打开关闭
格式:
文件打开:<变量名> = open(<文件名>,<打开模式>)
文件关闭:<变量名>.close()
打开模式 | 含义 |
---|---|
‘r’ | 只读模式,如果文件不存在,返回异常FileNotFoundError,默认值 |
‘w’ | 覆盖写模式,文件不存在则创建,存在则完全覆盖 |
‘x’ | 创建写模式,文件不存在则创建,存在则返回异常FileExistsError |
‘a’ | 追加写模式,文件不存在则创建,存在则在文件最后追加内容 |
‘b’ | 二进制文件模式 |
‘t’ | 文本文件模式,默认值 |
‘+’ | 与r/w/x/a一同使用,在原功能基础上增加同时读写功能 |
代码示例:
x = open('12.txt','r')
x.close()
6.1.2 文件读写
三种文件读取函数
函数 | 含义 |
---|---|
line = fo.read() | 读出整个文件的内容 |
line = fo.readline() | 读出一行内容 |
line = fo.readlines() | 读所有行,每行以元素形成一个列表 |
代码示例:
fo = open('C:\\Users\ZHAOBO\Desktop\短歌行.txt','rt')
line = fo.read()
print(line)
fo.close()
注:文本的编码方式需要是ANSI,中文才可以在运行窗口正确的显示出来!
三种文件写入函数
函数 | 含义 |
---|---|
<文件>.write(s) | 向文件写入字符串 |
<文件>.writelines(list) | 将一个元素全为字符串的列表写入 |
<文件>.seek(offset) | 改变文件操作指针位置:0-文件开头;1-当前位置;2-文件结尾 |
代码示例:
fo = open('C:\\Users\ZHAOBO\Desktop\短歌行.txt','w+')
ls = ["富强 ","民主 ","文明 ","和谐"]
fo.writelines(ls)
fo.close()