<> 复习整理 第1-3章

第一章 程序设计基本方法

1.1 计算机的概念

/计算机是根据指令操作数据的设备,具备功能性可编程性两个基本特性.
/摩尔定律:单位面积集成电路可容纳晶体管的数量约每两年翻一倍.翻倍翻倍翻倍翻倍.......(戈登.摩尔是Intel的创始人之一)

1.2 程序设计语言

/程序设计语言的执行方式包括编译执行和解释执行两种.

1.2.1 程序设计语言概述

/程序设计语言包括三类:机器语言.汇编语言.高级语言
/"编程不是一件很难的事"

1.3 Python语言概述

/Python语言是一个语法简洁,跨平台,可扩展的开源通用脚本语言.

1.3.1 Python语言的发展

balabalabala...

1.3.2 编写Hello程序

>>> print("Hello World")
Hello World

1.3.3 Python语言的特点

/语法简洁.跨平台.粘性扩展.开源理念.通用灵活.强制可读.支持中文.模式多样.类库丰富

1.4 Python语言开发环境配置\

/IDLE是一个轻量级Python语言开发环境,可以支持交互式和批量式两种编程方式.

1.4.1 安装Python解释器

balabalbalabala...

1.4.2 运行Hello程序

balabalabala...

1.4.3 运行Python小程序

/圆面积的计算

>>> radius = 25 #圆的半径是25
>>> area = 3.1415*radius *radius #输入计算圆面积的公式
>>> print(area)
1963.4375000000002
>>> print("{:.2f}".format(area)) #只输出两位小数
1963.44
>>> 

/斐波那契数列的计算

>>> a,b = 0,1
>>> while a < 1000: #输出不大于1000的序列
    print(a,end =",")
    a,b =b,a+b

    
0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

1.5 程序的基本编写方法

1.5.1 IPO程序编写方法

/IPO(输入Input,处理Process,输出Output).
/输入Input:包括文件输入,网络输入,控制台输入,交互界面输入,随机数据输入,内部参数输入等.
/处理Process:程序对数据进行计算产生输出结果的过程.算法是程序的灵魂.
/输出Output:控制台输出,图形输出,网络输出,文件输出,操作系统内部变量输出.

1.5.2 理解问题的计算部分

/编写程序的目的是"使用计算机解决问题"
1.分析问题:计算机只能解决问题的计算部分.
2.划分边界
3.设计算法
4.编写程序
5.调试测试
6.升级维护

1.6 Python语言的版本更迭

/Python2.x一件已经是遗产,Python3.x是这个语言的现在和未来
/选新不选旧嘛!

第2章 Python程序实例解析

/温度转换

tempstr = input("请输入带有符号的温度值:")
if tempstr[-1] in ["f","F"]:
    C = (eval(tempstr[0:-1]) - 32)/1.8
    print("转换后的温度是{:.2f}C".format(C))
elif tempstr[-1] in ["c","C"]:
    F = 1.8*eval(tempstr[0:-1]) +32
    print("转换后的温度是{:.2f}F".format(F))
else:
    print("输入格式错误")

2.2 Python程序语法元素分析

/Python程序包括格式框架,注释,变量,表达式,分支语句,循环语句,函数等语法元素.

2.2.1 程序的格式框架

/Python语言采用严格的"缩进"来表明程序的格式框架.
/缩进表达了所属关系.

2.2.2 注释

#单行注释使用井号#引导
'''
多行注释
开头使用三个引号
结尾使用三个引号
'''

2.2.3 命名与保留字

/Python语言允许采用大写字母,小写字母,数字,下划线_和汉字等字符及组合给变量命名,但名字的首字母不能是数字,中间不能出现空格,长度没有限制.
/Python语言对大小写敏感.
/命名不可与保留字相同,Python语言有33个保留字,如下:

False def if raise
None del import return
True elif in try
and else is while
as except lambda with
assert finally nonlocal yield
break for not
class from or
contine global pass

2.2.4 字符串

/字符串是由双引号或者单引号括起来的零个或多个字符.
/字符串遵循正向递增(0: )和反向递减序号( :-1)

2.2.5 赋值语句

/程序中产生或计算新数据值得代码称为表达式,类似数学中的计算公式.
/"=",等号表示"赋值",将等号右侧的值,赋予等号左侧的变量.
/同步赋值:
<变量1>...<变量N> = <表达式1>...<表达式N>

2.2.6 input函数

/获得用户输入
/无论客户输入内容是什么,都用字符串形式输出.

2.2.7 分支语句

if<条件1>:
<语句块1>
elif<条件2>:
<语句块2>
...
else:
<语句块N>

2.2.8 eval()函数

/eval(<字符串>)函数是Python表达式的方式解析并执行字符串,并返回输出结果.

>>> x=1
>>> eval("x+1")
2

/eval()的作用是将输入的字符串转变成Python语句,并执行该语句.

2.2.9 print()函数

/输出函数

2.2.10 循环语句

while <条件>:
<语句块1>
<语句块2>

2.2.11 函数

/函数可以理解为对一组表达特定功能表达式的封装,它与数学函数类似,能够接收变量并输出结果.
def <函数名>():
<语句块>

2.3 实例2:Python蟒蛇绘制

2.4 turtle库语法元素分析

/for i in range(循环次数):
<语句块>

第3章 基本数据类型

3.1 数字类型

/Python 语言提供整数,浮点数,复数3种类型.

3.1.1 数字类型概述

/整数,复数,浮点数

3.1.2 整数类型

/十进制,二进制,八进制,十六进制

3.1.3 浮点数类型

/Python中的浮点数类型必须带有小数部分,小数部分可以为0
/浮点数有两种表达方式:十进制和科学计数法
/科学计数法:
4.3-3 = 0.0043
9.6E5 或 9.6E+5 = 960000.0
/浮点数在超过15位数字计算中产生的误差,与计算机内部采用二进制运算有关,使用浮点数无法进行极高精度的数学运算.
/所以在高精度运算中,可将浮点数转换为整数,进行计算.
/Python通过标准库decimal提供一个更高精度的数字类型Decimal,使用getcontext().prec参数自定义浮点数精度的位数.

import decimal
a=decimal.Decimal("3.141592653")
b=decimal.Decimal("1.234567898")
decimal.getcontext().prec=20
# 精确度为整数部分,小数点,小数点后共20位
print(a*b)
print(type(a*b))

#运行结果:
3.878509437986453394

3.1.4 复数类型

/复数可以看作是二元有序实数对(a,b),表示为a+bj,其中a是实数部分,简称实部,b是虚部部分,简称虚部.复数是实数在二维平面空间旋转的一种表示.
/Python语言中,复数的叙述部分通过后缀J或者j来表示.
/可以通过<复数>.real和<复数>.imag分别获得<复数>的实数部分和虚数部分.

3.2 数字类型的操作

/内置的数值运算操作符

操作符 描述
x+y x与y的和
x-y x减y
x*y x乘以y
x/y x除以y
x//y x除以y,取整
x%y 模运算,x除以y,取余
-x x的负值
+x x本身
x**y x的y次方

3.2.2 内置的数值运算函数

/内置的运算数值运算函数

函数 描述
abs(x) x的绝对值
divmod(x,y) (x//y,x%y),输出为元组形式
pow(x,y[,z]) (xy)%z,[..]表示该参数可以省略,即pow(x,y),它与xy相同
round(x[,ndigits]) 对x四舍五入,保留ndigits位小数.round(x)返回四舍五入的整数值
max(x1,x2,x3...xn) x1,x2,x3...xn中的最大值
min(x1,x2,x3...xn) x1,x2,x3...xn中的最小值

/例:
可用pow(x,y,1000)求x的y次方的最后几位3位数.
可用pow(x,y,10000)求x的y次方的最后几位4位数.

3.2.3 内置的数字类型转换函数

函数 描述
int(x) 将x转换为整数,x可以是浮点数或字符串
float(x) 返回浮点数x或者字符串x所对应的整数类型
complex(re[,im]) 生成一个附属,实部为re,虚部为im,re可以是整数,浮点数或字符串,im可以是整数或浮点数,但不可以是字符串

3.3 模块1:math库的使用

/Python数学计算的标准函数库math共提供4个数学常数和44个函数

3.2.1 math库概述

/Python提供的内置数学类函数库.
/math库不支持复数类型

3.2.2 math库解析

/math库的数学常数

常数 数学表示 描述
math.pi π 圆周率,值为3.141592653589793
math.e e 自然对数,值为2.7182818228459045
math.inf 正无穷大,负无穷大为-math.inf
math.nan 非浮点数标记,NaN(Not a Number)

/math库的数值表示函数

函数 描述
math.fabs(x) 返回x的绝对值
math.fmod(x,y) x%y,返回x与y的模,取余
math.fsum(x,y,...) 浮点数精确求和
math.ceil(x) 向上取整
math.floor(x) 向下取整
math.factorial(x) x的阶乘.如果x是小数或者是负数,返回ValueError
math.gcd(a,b) 返回a和b的最大公约数
math.frexp(x) x=m*(2的e次方) 返回(m,e),当x=0时,返回(0.0,0)
math.ldexp(x,i) 返回x*(2的i次方)的值
math.modf(x) 返回x的小数和整数部分
math.trunc(x) 返回x的整数部分
math.copysign(x,y) 用数值y的正负号替换数值x的正负号
math.isclose(a,b) 比较a和b的相关性,返回True或False
math.isfinite(x) 当x不是无穷大或NaN,返回True;否则,返回False(负无穷也是False)
math.isinf(x) 当x为正无穷大或负无穷大,返回True;否则返回False
math.isnan(x) 当x是NaN,返回True;否则,返回False
import math
print(math.modf(3.14))  
#运行
(0.14000000000000012, 3.0)


import math
a = math.isfinite(math.inf)
b = math.isfinite(-math.inf)
c = math.isfinite(3.14)
print(a,b,c)
#运行
False False True


import math
a = math.isinf(math.inf)
b = math.isinf(-math.inf)
c = math.isinf(3.14)
print(a,b,c)
#运行
True True False

/math库的幂对数函数

函数 描述
math.pow(x,y) 返回x的y次幂
math.exp(x) 返回e的x次幂,e是自然对数
math.expml(x) 返回e的x次幂-1
math.sqrt(x) 返回x的平方根
math.log(x[,base]) 返回x的对数值,只输入x时,返回自然对数,即lnx
math.log1p(x) 返回1+x的自然对数值
math.log2(x) 返回x的2对数值
math.log10(x) 返回x的10对数值

/math库的三角函数
/略,知道能算各种三角函数得了,又繁琐,暂且也用不上,打出来也都忘.
/math库的高等特殊函数
/略

3.4 天天向上的力量

3.5 字符串类型及操作

/字符串是字符的序列表示,可以通过基本字符串操作符,内置字符串处理函数和字符串处理方法等对字符串进行操作.

3.5.1 字符串类型的表示

/正向递增(0开始向右),反向递减(-1开始向左),可以混用.
/反斜杠 \ 为特殊字符,表示转义,即该字符与后面相邻的字符共同组成新的含义:
\n表示换行
\表示反斜杠
'表示单引号
"表示双引号
\t表示制表符(Tab)
\a 蜂鸣,响铃
\b 回退,向后退一格
\f 换页
\r 回车,光标移动到下行首行
\v 垂直制表
等等等...

3.5.2 基本的字符串操作符

操作符 描述
x+y 连接字符串x与y
xn或nx 复制n次字符串x
x in s 如果x是s的子串返回True,否则返回False
str[i] 索引,返回第i个字符
str[N:M] 切片,返回第N到第M个字符,不包含第M个字符

3.5.3 内置的字符串处理函数

函数 描述
len(x) 返回字符串x的长度,也可返回其他组合数据类型元素个数
str(x) 返回任意类型x所对应的字符串形式
chr(x) 返回Unicode编码x对应的单字符
ord(x) 返回单字符x对应的Unicode编码
hex(x) 返回整数x对应十六进制数的小写形式字符串
oct(x) 返回整数x对应的八进制的小数形式字符串

3.5.4 内置的字符串处理方法

方法 描述
str.lower() 返回字符串str的副本,全部字符小写
str.upper() 返回字符串str的副本,全部字符大写
str.islower() 当str所有字符都是小写时,返回True,否则返回False
str.isprintable() 当字符串str是可以打印时,返回True,否则返回False
str.isnumeric() 当字符串str所有字符都是数字时,返回True,否则返回False
str.isspace() 当字符串str都是空格时,返回True,否则返回False
str.endswith(suffix[,start[,end]]) 当字符串str[start:end]是以suffix结尾时,返回True,否则返回False
str.startswith(prefix[,start[,end]]) 当字符串str[start:end]是以prefix开头时,返回True,否则返回False
str.split(sep=None,maxsplit=-1) 返回一个一个列表,由str根据sep被分割的部分构成.sep是分割的标识符,默认分割符是空格.maxsplit是最大分割次数,可以不给出
str.count(sub[,start[,end]]) 返回str[start:end]中sub子串出现的次数
str.replace(old,new[,count]) 返回字符串str的副本,所有子串old被替换为new,如果count给出,则前count次出现的old被替换
str.center(width,[,fillchar]) 字符串居中函数
str.strip([chars]) 返回字符串str的副本,在其左侧和右侧去掉chars中列出的字符
str.zfill(width) 返回字符串str的副本,长度为width,不足部分在左侧添加0
str.format() 返回字符串str的一种排版格式
str.join(iterable) 返回一个新的字符串,由组合数据类型iterable便利的每个元素组成,元素间用str分割

3.6 字符串类型的格式化

/字符串通过format()方法进行格式化处理
/<模板字符串>.format(<逗号分割的参数>)
/模板字符串由一系列槽组成,用来控制修改字符串中嵌入值出现的位置.其基本思想是将format()方法中否好分割的参数,按照序号关系替换到字符串的槽中.
/槽用大括号{}表示,如果大括号中没有序号,则按照出现顺序替换.
/如果大括号中有参数序号,则按照序号替换.参数从0开始编号

3.6.2 format()方法的格式控制

/槽内部样式如下:
{<参数序号>:<格式控制标记>}

: <填充> <对齐> <宽度> <,> <精度> <类型>
引导符号 用于填充的单个字符 <左对齐;>右对齐;^居中对齐 操的设定输出宽度 数字的千位分隔符,适用于整数和浮点数 浮点数小数部分的精度或字符串的最大输出长度 整数类型b,c,d,o,x,X;浮点数类型e,E,f,%

/格式控制标记包含<填充><对齐><宽度><,><精度><类型>6个字段,每个字段都是可选的,可以组合使用的.
/<宽度>,<对齐>,<填充>是三个相关字段

>>> s = "PYTHON"
>>> "{0:30}".format(s)    #30长度,默认左对齐,默认以空格填充
'PYTHON                        '
>>> "{0:*^30}".format(s)     #30长度,以*填充,^居中
'************PYTHON************'
>>> "{0:>30}".format(s)        #>右对齐
'                        PYTHON'

/格式控制标记中的逗号,用于显式数学类型的千位分隔符

>>> "{0:-^30}".format(1234567890)
'----------1234567890----------'
>>> "{0:-^30,}".format(1234567890)
'--------1,234,567,890---------'
>>> "{0:-^30,}".format(12345.67890)
'---------12,345.6789----------'

/<.精度>表示两个含义,由小数点(.)开头.对于浮点数,精度表示小数部分输出有效位数,对于字符串,精度表示输出的最大长度.

>>> "{0:.2f}".format(12345.67890)
'12345.68'
>>> "{0:*^30.3f}".format(12345.67890)
'**********12345.679***********'
 "{0:*^30.3f}".format(12345.67111)    #遵循四舍五入
'**********12345.671***********'
>>> "{0:.4}".format("PYTHON")
'PYTH'

/<类型>表示输出整数和浮点数类型的格式规则.对于整数类型,输出格式包括以下6种:

b c d o x X
输出整数的二进制方式 输出整数对应的Unicode字符 输出整数的十进制方式 输出整数的八进制方式 输出整数的小写十六进制 输出整数的大写十六进制

/对于浮点数数类型,输出方式有以下4种:

e E f %
输出浮点数对应的小写字母e的指数形式 输出浮点数对应的大写字母E的指数形式 输出浮点数的标准浮点数类型 输出浮点数的百分百形式

3.7 实例4:文本进度条

3.7.1 简单的开始

import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
    a,b = "**"*i,".."*(scale-i)
    c = (i/scale)*100
    print("{:^3.0f}%[{}->{}]".format(c,a,b))
    time.sleep(0.1)
print("------执行结束------")

3.7.2 单行动态刷新

/转义符\r可以让光标回到开头
/end=""使结尾不换行

import time
for i in range(101):
    print("\r{:3}%".format(i),end="")
    time.sleep(0.05)

3.7.3 带刷新的文本进度条

/time.purt_counter() 添加时间,增加用户体验

import time
scale = 50
print("执行开始".center(scale//2,"-"))
t = time.perf_counter()
for i in range(scale+1):
    a = "*"*i
    b="."*(scale-1)
    c=(i/scale)*100
    t=time.perf_counter()-t
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,t),end="")
    time.sleep(0.05)
print("\n"+"执行结束".center(scale//2,"-"))

你可能感兴趣的:(<> 复习整理 第1-3章)