python语言程序设计基础的复习笔记 第一章内容 1.在python语言中解释和编译的区别 ①编译 编译是将源代码转换成目标代码的过程。 源代码是计算机高级语言的代码,而目标代码则是机器语言的代码。 执行编译的计算机程序称为编译器(Compiler) ②解释 解释是将源代码逐条转换成目标代码,同时逐条运行目标代码的过程。 执行解释的计算机程序称为解释器(Interpreter) 编译和解释的区别 编译是一次性的翻译,一旦程序被编译,不需要编译,不在需要编译程序后或者源代码, 解释则在每次程序运行时都时需要解释器和源代码。 编译的过程只进行一次 2.Python语言的特点有哪些 1.语法简结 2.与平台无关 3.粘性扩张 4 .开源理念 5.通用灵活 6.强制可读 7.支持中文 8、模式多样 9.类库丰富 3.运行Python程序的两种方式和具体内容 第一种方法: 交互式 具体内容: 通过Windows命令行工具进行交互式运行python。同时按下Windows键和R键,启动“运行”,在“运行”中输入cmd然后回车,即弹出命令行工具,然后输入python回车, 第二种方法: 文件式启动 具体内容: 按照Python的语法格式去编写代码,并保存为.py形式的文件。 一些习题的练习: 1.1 整数序列求和,用户输入一个正整数N,计算从1到N(包含1和N)相加之后的结果 这道题考察的知识点是: range()函数的for循环 意思是将到N之前的结果全部进行打印 range()函数有两种格式: <1> range(stop) 一般默认0为下标 <2> range(start,stop[,step]) 1.2 计算1+2!+3!+.......+10!的结果。 第二章的知识点复习 关于turtle库的主要用途和介绍 2.2.1 turtle库概述 turtle(海龟)库是turtle绘图体系的Python实现
绘图坐标体系: tuetle.setup(width,height,startx,starty) 作用:设置主窗体的大小和位置 画笔控制函数: turtle.penup()\turtle.up()\turtle.pu() 作用:抬起画笔,之后移动画笔不绘制形状 turtle.pendown()\turtle.down()\turtle.pd() 作用:落下画笔,之后移动画笔会绘制形状 turtle.pensize(width)\turtle.width() 作用:设置画笔宽度,无参数时返回当前画笔宽度 turtle.pencolor(colorstring)\turtle.pencolor((r,g,b)) 作用:设置画笔颜色,无参数时返回当前画笔颜色 形状绘制函数: turtle.fd(distance)\turtle.forward(distance) 作用:向小海龟当前行进方向前进distance个像素的距离 turtle.seth(to_angle)\turtle.setheading(to_angle) 作用:设置小海龟当前前进方向为to_angle,该角度是绝对方向角度值 turtle.circle(radius, extent=None) 作用:根据半径radius绘制extent角度的弧形 2.1: import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40,80)
turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3) 第三章知识复习重点 p62的表3.1,了解八进制、十六进制表示 3.1 数字类型及操作 3.1.1 整数类型 可正可负,没有取值范围限制 pow(x,y)函数:计算 x^y,想算多大算多大 4种进制表示形式 十进制:1010, 99, -217 二进制,以0b或0B开头:0b010, -0B101 八进制,以0o或0O开头:0o123, -0O456 十六进制,以0x或0X开头:0x9a, -0X89 ———————————————— 3.1.2浮点数类型
-
浮点数间运算存在不确定尾数 >>> 0.1 + 0.3
0.4
>>> 0.1 + 0.2
0.30000000000000004 ---不确定尾数
-
round(x, d):对x四舍五入,d是小数截取位数 浮点数间运算及比较用round()函数辅助
>>> 0.1 + 0.2 == 0.3
False
>>>round(0.1 + 0.2) == 0.3
True
11.科学计数法的表示 (p63) 浮点数有两种表示方法:十进制表示和科学计数法表示 科学计数法用e或E作为幂的符号,以10为基数 $$ <a>e<b> = a*10^b $$ 例如:4.3e-3 值为0.0043 9.6E5 值为960000.0 12.复数的实部和虚部的表示 (p65、p66:3.4) 复数可以看作是实数对(a,b),表示为a+bj,其中a是实数部分,b是虚数部分。 在Python语言中,复数的虚数部分通过后缀“J”或“j”表示,如: $$ 1.23e-4+5.67e+89j $$ 复数其实就是实数在二维平面空间旋转的一种表示。 对于复数z,可以用z.real和z.imag来分别获取它的实部和虚部。例如:
>>>(1.23e-4+5.67e+89j).real
0.000123
>>>(1.23e-4+5.67e+89j).imag
5.67e+89
课后习题的练习: 问: python语言为什么要使用浮点型和整型常量 答 :为了使运算的精度更高,因为用浮点型常量,会导致在15位之后进行了不准确性。 问: 复数2.3e+3-1.34e-3j的实部和虚部分别是什么?采用什么方法提取一个复数的实部和虚部? 答: 实部:2.3e 虚部:-1.34e
>>>(2.3e+3-1.34e-3j).real #获取实部
>>>(2.3e+3-1.34e-3j).imag #获取虚部
14.p66-p67 表3.2,p67运算规则
运算规则:
-
整数之间运算,如果数学意义上的结果是小数,结果是浮点数
-
整数之间运算,如果数学意义上的结果是整数,结果是整数
-
整数和浮点数混合运算,输出结果是浮点数
-
整数或浮点数与复数运算,输出结果是复数
3.3 字符串类型及操作 3.3.1 字符串类型的表示 字符串由一对单引号或一对双引号表示 "请输入带有符号的温度值: "或者 ‘C’ 字符串是字符的有序序列,可以对其中的字符进行索引 “请” 是 "请输入带有符号的温度值: " 的第0个字符 由一对单引号或双引号表示,仅表示单行字符串 由一对三单引号或三双引号表示,可表示多行字符串 若要在字符串中包含双引号或单引号 ‘这里有个双引号(")’ 或者 “这里有个单引号(’)” 如果希望在字符串中既包括单引号又包括双引号呢? ‘’’ 这里既有单引号(’)又有双引号 (") ‘’’ 3.3.2 字符串的使用
字符串切片高级用法 ——— 使用[M: N: K]根据步长对字符串切片 <字符串>[M: N],M缺失表示至开头,N缺失表示至结尾 “〇一二三四五六七八九十”[:3] 结果是 “〇一二” <字符串>[M: N: K],根据步长K对字符串切片 “〇一二三四五六七八九十”[1:8:2] 结果是"一三五七" “〇一二三四五六七八九十”[::-1] 结果是 “十九八七六五四三二一〇” 3.3.3 字符串操作符
3.3.4 字符串处理函数
-
len(x) 长度,返回字符串x的长度 len(“一二三456”) 结果为 6
-
str(x) 任意类型x所对应的字符串形式 str(1.23)结果为"1.23" str([1,2])结果为"[1,2]"
19 .19.format()函数 p85-p88 思考与练习 3.21 槽的内部样式如下: {<参数序号>:<格式控制标记>}
: |
<填充> |
<对齐> |
<宽度> |
<,> |
<精度> |
<类型> |
引导符号 |
用于填充的单个字符 |
<左对齐 >右对齐 ^居中对齐 |
槽的设定输出宽度 |
数字的千位分隔符 适用于整数和浮点数 |
浮点数小数部分的精度或 字符串的最大输出长度 |
整数类型b,c,d,o,x,X 浮点数类型e,E,f,% |
>>>"{0:30}".format(s) #默认左对齐
'Python '
>>>"{0:>30}".format(s) #右对齐
' Python'
>>>"{0:*^30}".format(s) #居中且使用*填充
'************Python************'
>>>"{0:-^30}".format(s) #居中且使用-填充
'------------Python------------'
>>>"{0:-^20,}".format(1234567890) #千位分隔符
'---1,234,567,890----'
>>>"{0:-^20}".format(1234567890) #对比输出
'-----1234567890-----'
>>>"{0:.2f}".format(12345.67890) #对于浮点数,精度表示小数部分输出的有效位数
'12345.68'
>>>"{0:.4}".format("Python") #对于字符串,精度表示输出的最大长度
'Pyth' 对于整数类型,输出格式包括以下六种:
-
b:输出整数的二进制方式
-
c:输出整数对应的unicode字符
-
d:输出整数的十进制方式
-
o:输出整数的八进制方式
-
x:输出整数的小写十六进制方式
-
X:输出整数的大写十六进制方式
>>>"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
'110101001,Ʃ,425,651,1a9,1A9' 对于浮点数类型,输出格式包括以下四种:
-
e:输出浮点数对应的小写字母e的指数形式
-
E:输出浮点数对应的大写字母E的指数形式
-
f:输出浮点数的标准浮点形式
-
%:输出浮点数的百分形式
>>>"{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
>>>"{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14)
'3.14e+00,3.14E+00,3.14,314.00%' 3.21: >>>print("{:>15s}:{:<8.2f}".format("Length",23.87501))
Length:23.88 第四章知识点复习 20.p105 实例代码 5.1 4.2 "身体质量指数BMI"实例讲解 # e5.1CalBMI
height, weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))
bmi = weight / pow(height, 2)
print("BMI数值为:{:.2f}".format(bmi))
who, dom = "", ""
if bmi < 18.5: # who标准
who = "偏瘦"
elif bmi < 25: # 18.5<=bmi<25
who = "正常"
elif bmi < 30: # 25<=bmi<30
who = "正常"
else:
who = "肥胖"
if bmi < 18.5: # 我国卫生部标准
dom = "偏瘦"
elif bmi < 24: # 18.5<=bmi<24
dom = "正常"
elif bmi < 28: # 24<=bmi<28
dom = "正常"
else:
dom = "肥胖"
print("BMI指标为:国际'{0}',国内'{1}'".format(who,dom)) 21.p107 思考与练习 4.11 判断题:Python中条件24<=28<25是合法的,且输出为False 对。24<=28<25等价于24<=28 and 28<25,即true and false,这样结果就是false 22.p109中break和continue用法的区别 break用来跳出最内层for或while循环,脱离该循环后程序从循环代码后继续执行。每个break语句只有能力跳出当前层次循环。 continue用来结束当前当次循环,即跳出循环体中下面未执行的语句,但不跳出当前循环。 continue语句和break语句的区别是,continue语句只结束本次循环,而不终止整个循环的执行;而break语句则是结束整个循环过程,不在判断执行循环的条件是否成立。 23.p112 表4.3 randint(a,b) randint(a,b) 生成一个[a,b]之间的整数 24.函数定义的格式 p124 Python使用def保留字定义一个函数: def <函数名>(<参数列表>):
<函数体>
return<返回值列表> 函数名可以是任何有效的Python标识符 25.p127 中lambda函数和def函数等价转换 p128思考与练习 5.1、5.2、5.3 lambda是Python的32个保留字之一,用于定义一种特殊的函数——匿名函数,又称lambda函数。匿名函数有函数名,只是将函数名作为函数结果返回。 lambda语法格式如下: <函数名> = lambda <参数列表>:<表达式> 等价于: def <函数名>(<参数列表>)
return <表达式> 26.函数返回时的return语句 p129 return语句用来推出函数并将程序返回到函数被调用的位置继续执行。return语句可以同时将0个、1个或多个函数运算后的结果返回给函数被调用处的变量。 函数也可以没有return,此时函数并不返回值。 27.了解全局变量和局部变量 p130-131 全局变量是指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效。 局部变量指在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不存在。 28.type()函数,len()函数 type()函数返回每个数据对应的类型 len()函数返回对象中项目的数量 29.p160-162 列表的操作 思考与练习 6.4、6.7 列表是包含0个或多个对象引用的有序序列,属于序列类型。 列表类型的操作:
函数或方法 |
描述 |
ls[i] = x |
替换列表ls第i项数据为x |
ls[i:j] = lt |
用列表lt替换列表ls中第i到第j项数据(不含第j项) |
ls[i:j:k] = lt |
用列表lt替换列表ls中第i到第j项数据以k为步数的数据 |
del ls[i:j] |
删除列表ls第i到第j项数据,等价于ls[i:j]=[] |
del ls[i:j:k] |
删除列表ls第i到第j项数据以k为步数的数据 |
ls+=lt 或 ls.extend(lt) |
将列表lt元素增加到列表列表ls中 |
ls *= n |
更新列表ls,其元素重复n次 |
ls.append(x) |
在列表ls最后增加一个元素x |
ls.clear() |
删除ls中所有元素 |
ls.copy() |
生成一个新列表,复制ls中的所有元素 |
ls.insert(i,x) |
在列表ls的第i个位置增加一个元素x |
ls.pop(i) |
将列表ls中的第i项元素取出并删除该元素 |
ls.remove(x) |
将列表中出现的第一个元素x删除 |
ls.reverse() |
列表ls中的元素反转 |
6.4 列表ls=[2,5,7,1,6],请对列表按照升序和降序的方式分别排列。请使用Python内置函数。 ls = [2, 5, 7, 1, 6]
ls.sort() #升序
print(ls)
ls.sort(reverse=True) #降序
print(ls) 6.7 列表ls=[[2,3,7],[[3,5],25],[0,9]],len(ls)值是多少? >>>ls=[[2,3,7],[[3,5],25],[0,9]]
>>>len(ls)
3 30.p167 字典的操作 思考与练习 6.11 字典类型的操作:
函数和方法 |
描述 |
<d>.keys() |
返回所有的键信息 |
<d>.values() |
返回所有的值信息 |
<d>.items() |
返回所有的键值对 |
<d>.get(<key>,<default>) |
键存在则返回相应值,否则返回默认值 |
<d>. pop(<key>,<default>) |
键存在则返回相应值,同时删除键值对,否则返回默认值 |
<d>. popitem() |
随机从字典中取出一个键值对,以元组(key,value)形式返回 |
<d>.clear() |
删除所有的键值对 |
del<d>[<key>] |
删除字典中某一个键值对 |
<key>in<d> |
如果在字典中则返回True,否则返回False |
6.11 判断题:在字典里,同一个键可以对应两个或多个值。 对 31.了解文本open()函数,write()函数 p184 表7.2 p185 表7.3 Python通过解释器内置的open()函数打开一个文件,并实现该文件与一个程序变量的关联。 open()函数的格式如下: <变量名> = open(<文件名>,<打开模式>) open()函数有两个参数:文件名和打开模式。open()函数提供7种打开模式:
文件的打开模式 |
含义 |
'r' |
只读模式,如果文件不存在,返回异常FileNotFoundError,默认值 |
'w' |
覆盖写模式,文件不存在则创建,存在则完全覆盖 |
'x' |
创建写模式,文件不存在则创建,存在则返回异常FileExistsError |
'a' |
追加写模式,文件不存在则创建,存在则在文件最后追加内容 |
'b' |
二进制文件模式 |
't' |
文本文件模式,默认值 |
'+' |
与r/w/x/a模式一同使用,在原功能基础上增加同时读写功能 |
文件的读写: Python提供四个常用的文件内容读取方法:
操作方法 |
含义 |
<file>.readall() |
读入整个文件内容,返回一个字符串或字节流* |
<file>.read(size=-1) |
从文件中读入整个文件内容,如果给出参数,读入前size长度的字符串或字字节流 |
<file>.readline(size=-1) |
从文件中读入一行内容,如果给出参数,读入前size长度的字符串或字字节流 |
<file>.readlines(hint=-1) |
从文件中读入所有行,以每行为元素形成一个列表,如果给出参数,读入hint行 |
Python提供三个与文件内容写入有关的方法:
方法 |
含义 |
<file>.write(s) |
向文件写入一个字符串或字节流 |
<file>.writelines(lines) |
将一个元素全为字符串的列表写入文件 |
<file>.seek(offset) |
改变当前文件操作指针的位置,offset的值: 0——文件开头;1——当前位置;2——文件结尾 |
|