Python编程基础 实验指导手册
Python编程基础 实验指导手册
前言 简介 掌握本实验手册内容,您将能够进行基础Python编程。 内容描述 本实验指导书书共包含三个实验,分别是Python基础编程、Python高级和Python实现的资 金管理系统,希望学员或者读者能够熟悉Python语言,具备Python基础编程能力, 读者知识背景 为了更好地掌握本书内容,阅读本书的读者应首先具备以下基本条件 ·了解计算机编程。 实验环境说明 Python开发工具: 本实验环境是基于Python3:.6环境开发编译的
前 言 简介 掌握本实验手册内容,您将能够进行基础 Python 编程。 内容描述 本实验指导书书共包含三个实验,分别是 Python 基础编程、Python 高级和 Python 实现的资 金管理系统,希望学员或者读者能够熟悉 Python 语言,具备 Python 基础编程能力。 读者知识背景 为了更好地掌握本书内容,阅读本书的读者应首先具备以下基本条件: 了解计算机编程。 实验环境说明 Python 开发工具: 本实验环境是基于 Python3.6 环境开发编译的
目录 简介 内容描述… 2 读者知识背景 实验环境说明 1 Python编程基础 1.1实验介绍 5 1.1.1关于本实验 5 11.2实验目的 .5 1.2实验代码… 1.2.1 Hello world. 1.2.2数据类型:数值 1.2.3数据类型:字符串 12.4数据类型:列表 12.5数据类型:元组 12.6数据类型:字典 1.27数据类型:集合 12.8深拷贝和浅拷贝 1.2.9if语句 9 1.2.10循环语句… 9 1.211自定义函数 10 1.212面向对象 11 1.2.13标准库的使用 14 1.2.1410操作 17 2 Python高级. .19 2.1实验介绍 19 2.1.1关于本实验 2.1.2实验目的…
目录 简介 ................................................................................................................................2 内容描述 .................................................................................................................................................................................... 2 读者知识背景............................................................................................................................................................................ 2 实验环境说明............................................................................................................................................................................ 2 1 Python 编程基础.........................................................................................................5 1.1 实验介绍 ............................................................................................................................................................................ 5 1.1.1 关于本实验..................................................................................................................................................................... 5 1.1.2 实验目的......................................................................................................................................................................... 5 1.2 实验代码 ............................................................................................................................................................................ 5 1.2.1 Hello world ................................................................................................................................................................... 5 1.2.2 数据类型:数值 ............................................................................................................................................................ 5 1.2.3 数据类型:字符串 ........................................................................................................................................................ 6 1.2.4 数据类型:列表 ............................................................................................................................................................ 6 1.2.5 数据类型:元组 ............................................................................................................................................................ 7 1.2.6 数据类型:字典 ............................................................................................................................................................ 8 1.2.7 数据类型:集合 ............................................................................................................................................................ 8 1.2.8 深拷贝和浅拷贝 ............................................................................................................................................................ 9 1.2.9 if 语句 .............................................................................................................................................................................. 9 1.2.10 循环语句 ...................................................................................................................................................................... 9 1.2.11 自定义函数 ................................................................................................................................................................10 1.2.12 面向对象 ....................................................................................................................................................................11 1.2.13 标准库的使用............................................................................................................................................................14 1.2.14 IO 操作........................................................................................................................................................................17 2 Python 高级..............................................................................................................19 2.1 实验介绍 ..........................................................................................................................................................................19 2.1.1 关于本实验...................................................................................................................................................................19 2.1.2 实验目的.......................................................................................................................................................................19
2.2实验代码 …19 2.2.1数据库编程 2.2.2多任务 26 2.2.3迭代器、生成器和装饰器. 28 2.2.4正则表达式 31 3资金管理系统, .34 3.1实验介绍 34 3.1.1关于本实验 34 3.1.2实验目的. .34 3.2实验代码 34 3.2.1实验思路. 34 3.2.2实验实现 34
2.2 实验代码 ..........................................................................................................................................................................19 2.2.1 数据库编程...................................................................................................................................................................19 2.2.2 多任务...........................................................................................................................................................................26 2.2.3 迭代器、生成器和装饰器..........................................................................................................................................28 2.2.4 正则表达式...................................................................................................................................................................31 3 资金管理系统.............................................................................................................34 3.1 实验介绍 ..........................................................................................................................................................................34 3.1.1 关于本实验...................................................................................................................................................................34 3.1.2 实验目的.......................................................................................................................................................................34 3.2 实验代码 ..........................................................................................................................................................................34 3.2.1 实验思路.......................................................................................................................................................................34 3.2.2 实验实现.......................................................................................................................................................................34
Python编程基础 1.1实验介绍 1.1.1关于本实验 本实验介绍了Python(Python3)语言的基础,帮助读者快速掌握Python语言中的基本数据 类型、Python编程语言的基本语法、Pythoni面向对像编程和Python的文件操作。 1.1.2实验目的 通过以下小的实验可以帮助我们掌握Pythor这门编程语言,为以后的A1实验打下基础。 1.2实验代码 1.2.1 Hello world 第-个Python程序,打印hello world, print('he1 lo world")打印出:he1 lo world print("he110wor1a")打印出:he110orld。单双引号输出相同. 1.2.2数据类型:数值 熟悉Python中数值的基本运算。注意,Python中的“与或非"布尔操作不是使用操作符,而 是使用关键饲and/or/not,. print(True+False) #输出1,True默认为1,Fa1se为0 print(True or False】#输出True,关键字or执行“或"操作 print(5//2) 输出2,/为取整运算符 print(582) #输出1,为取余运算符 print (3++2) 输出9,+表示乘方操价 print(5+1.6) #输出6,6,不同精度的类型的数字相加默认取高精度类型作为结果
1 Python 编程基础 1.1 实验介绍 1.1.1 关于本实验 本实验介绍了 Python(Python3)语言的基础,帮助读者快速掌握 Python 语言中的基本数据 类型、Python 编程语言的基本语法、Python 面向对象编程和 Python 的文件操作。 1.1.2 实验目的 通过以下小的实验可以帮助我们掌握 Python 这门编程语言,为以后的 AI 实验打下基础。 1.2 实验代码 1.2.1 Hello world 第一个 Python 程序,打印 hello world。 print('hello world') #打印出:hello world print("hello world") #打印出:hello world。单双引号输出相同。 1.2.2 数据类型:数值 熟悉 Python 中数值的基本运算。注意,Python 中的“与或非”布尔操作不是使用操作符,而 是使用关键词 and/or/not。 print(True+False) # 输出 1,True 默认为 1,False 为 0 print(True or False) # 输出 True,关键字 or 执行“或”操作 print(5//2) # 输出 2,//为取整运算符 print(5%2) # 输出 1,%为取余运算符 print(3**2) # 输出 9,**表示乘方操作 print(5+1.6) # 输出 6.6,不同精度的类型的数字相加默认取高精度类型作为结果
1.2.3数据类型:字符串 步骤1字符串的基本操作。 s.'python ,给变量s赋值python #len(obj):返回对家的长度 print(len(s)) 输出6 print(s[0],S[1],s[-1]) #输出py,按照索引获取元素 print (s+'1',*2) #输出pythonl pythonpython:合并和重复 步骤2字符串的不可变性。 s='python' 共变量赋估 s[0]='z" 卡程序异常 s1='z'+S【1:1 #生成了新的字符串ython,.并题值给s1 print ("S:8s,S1:8s"8(S,S1)) #输出s:python,s1:Zython 步骤3字符串的常用操作, s="python 变量贩值 str,plit(str=",num=-1):通过指定分隔符对字符串进行切片,如果参数num有指定值,则分隔 nm+1个子字符串,-1表示分制所有. print(s.split('h')) 输出['pyt','on,根据h对字符串切 :str,replace(old,new【,ma×J):返回字符串中的old(旧字符串)替换成new(新字符串)后生成 的新字符串,如果指定第三个参数max,则替换不超过max次。 print (S.replace('py','PY')) 卡ython,将字符串中的py替换为Y 青str.pper0:返回小写字符转化为大写后的值。 print(S.upper() #PYTHON str.lower(): 返回大写字符转化为小写后的值, print ('PYTHON'.lower () python,字符串转小写 line='aa,bb,ccc,dd\n 青n为换行 #str.join(sequence):sequence:要连接的序列,返回指定字符连接序列中元素后生成的新字符串 print('.join('1ife',,is','short'])#输出1 ife is short,join拼接字符串 hw12="8ss8d'8('he11o','wor1d',12) 青格式化字符串 print (hwl2) #输出he11ow0r1d12 1.2.4数据类型:列表 列表的常用操作: animals ['cat','dog','monkey'] #I1st.append(obi):在列表末尾添动加新的对象」 animals.append('fish') 追加元
1.2.3 数据类型:字符串 步骤 1 字符串的基本操作。 S = 'python' # 给变量 S 赋值 python # len(obj): 返回对象的长度 print(len(S)) # 输出 6 print(S[0],S[1],S[-1]) # 输出 pyn ,按照索引获取元素 print(S+'1',S*2) # 输出 python1 pythonpython:合并和重复 步骤 2 字符串的不可变性。 S = 'python' # 变量赋值 S[0] = 'Z' # 程序异常 S1 ='Z'+S[1:] # 生成了新的字符串 Zython,并赋值给 S1 print("S:%s,S1:%s"%(S,S1)) # 输出 S:python,S1:Zython 步骤 3 字符串的常用操作。 S = "python" # 变量赋值 # str.split(str="", num=-1):通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串,-1 表示分割所有。 print(S.split('h')) # 输出[‘pyt’,’on’],根据 h 对字符串切割 # str.replace(old, new[, max]):返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成 的新字符串,如果指定第三个参数 max,则替换不超过 max 次。 print(S.replace('py','PY')) # Python,将字符串中的 py 替换为 PY # str.upper():返回小写字符转化为大写后的值。 print(S.upper()) # PYTHON # str.lower():返回大写字符转化为小写后的值。 print('PYTHON'.lower()) # python,字符串转小写 line='aa,bb,ccc,dd\n' # \n 为换行 # str.join(sequence):sequence:要连接的序列,返回指定字符连接序列中元素后生成的新字符串。 print(''.join(['life', 'is' ,'short'])) # 输出 life is short,join 拼接字符串 hw12='%s %s %d' % ('hello','world',12) # 格式化字符串 print(hw12) # 输出 hello world 12 1.2.4 数据类型:列表 列表的常用操作: animals = ['cat', 'dog', 'monkey'] # list.append(obj):在列表末尾添加新的对象。 animals.append('fish') # 追加元素
print(animals) 青输出【'cat','dog','monkey',fish'】 青1ist.remove(obj):移除列表中某个值的第一个匹配项。 animals.remove('fish') #删除元素figh print (animals) t输出【'cat',dog','monkey'1 青list.insert(index,,obj):用于将指定对像插入列表的指定位置。index:插入位置 animals.insert(1,'fish') #在下标1的地方插入元家£ish print(animals) 输出【"eat',fia,aog',monkey'门 青list.pop(【index=--l]):要移除列表中对下标对应的元素(默认是最后一个),Index:下标 animals.pop(1) 删除下标为1的元素 print(animals) t输出【'cat','dog','monkey'】 遍历并获取元素和对应索 #enumerate(sequence):将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,一 般用在Eor循环当中。 for i in enumerate (animals): print(i) 元素下标和元素所组成的索引 输出:(0,cat) (1,dog) (2,monkey) #列表推导式 squares=【x*2for in animals】#批量生成符合规则的元素组成的例表 print (squares #['catcat ''dogdog ''monkeymonkey ' 118t1=[12,45,32,55】 青list.sort(cmp=Wone,key=None,reverse=-Fa1se):cmp为可选参数,如果指定了该参数,会使 用该参数的方法进行排序。key是用来进行比较的元素。rever8e为排序规则,ra1se为升序. list1.sort() 对列表进行排 print(list1) #输出[12,32,45,55] 1ist.reverse):反向列表中元素 list1.reverse() #对列表进行逆置 print (listi) #输出55,45,32,121] 1.2.5数据类型:元组 元祖的常用操作, T=(1,2,3) 创建元组 print (T+(4,5)) 元组合并,输出:(1,2,3,4,5) t=42,1 只有一个元靠的元组,区别于数字 tup1e1=(12,45,32,55,[1,0,3]) #创建元祖 tuplel[0]"good' #程序异常,元组的不可变性 tuple1[4]【 1=2 元组中可变的元素是可以变斧 print(tuplel) #(12,45,32,55,[2,0,3])
print(animals) # 输出 ['cat', 'dog', 'monkey', ‘fish’] # list.remove(obj):移除列表中某个值的第一个匹配项。 animals.remove('fish') # 删除元素 fish print(animals) # 输出 ['cat', 'dog', 'monkey'] # list.insert(index, obj):用于将指定对象插入列表的指定位置。index:插入位置 animals.insert(1,'fish') # 在下标 1 的地方插入元素 fish print(animals) # 输出 ['cat', ‘fish’, 'dog', 'monkey'] # list.pop([index=-1]):要移除列表中对下标对应的元素(默认是最后一个)。Index:下标 animals.pop(1) # 删除下标为 1 的元素 print(animals) # 输出 ['cat', 'dog', 'monkey'] #遍历并获取元素和对应索引 # enumerate(sequence) :将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,一 般用在 for 循环当中。 for i in enumerate(animals): print(i) # 元素下标和元素所组成的索引 输出:(0, cat) (1, dog) (2, monkey) #列表推导式 squares = [x*2 for x in animals] # 批量生成符合规则的元素组成的列表 print(squares) #['catcat ', 'dogdog ', 'monkeymonkey '] list1 = [12,45,32,55] # list.sort(cmp=None, key=None, reverse=False):cmp 为可选参数, 如果指定了该参数,会使 用该参数的方法进行排序。key 是用来进行比较的元素。reverse 为排序规则,False 为升序。 list1.sort() # 对列表进行排序 print(list1) # 输出[12,32,45,55] # list.reverse():反向列表中元素。 list1.reverse() # 对列表进行逆置 print(list1) # 输出[55,45,32,12] 1.2.5 数据类型:元组 元祖的常用操作。 T=(1,2,3) #创建元组 print(T+(4,5)) #元组合并,输出:(1, 2, 3, 4, 5) t=(42,) #只有一个元素的元组,区别于数字 tuple1 = (12,45,32,55,[1,0,3]) # 创建元祖 tuple1[0] = "good" # 程序异常,元组的不可变性 tuple1[4][0] = 2 # 元组中可变的元素是可以变得 print(tuple1) # (12,45,32,55,[2,0,3])
1.2.6数据类型:字典 字典的常用操作: #字典的三种值操作 'spam','quantity':4,'color':'pink') -dict (food-'Spam',quantity-4,color-'pink') x dict ([("food "spam"),("quantity","4"),("color","pink")1) #dict.copy):拷贝数据 d =x.copy() dl'color'l'red' print (x) #('food':'Spam','quantity':4,'color':'pink' print(d) #{'food':'Spam','quantity':4,'color':'red') 元泰访问 print(d['name']) 得到错误信息 print (d.get('name')) t输出None print(d.get('name',键值不存在!')输出键值不存 print(d.keys()) 0输出dict keys(['food",·quantity','color11) print(d..values(0】 输出dict_values('spam',4,'red]) print(d.items()) #dict items([('food','Spam'),('quantity',4),('color','red')] d.clear 清空字典中的所有数据 print(d) 输出行 del(d) 到除字典 print(d 程序异常,提示"。”未定义 1.2.7数据类型:集合 集合的常用操作: sample_set =('prince', Techs print('Data'in sample_set) #输出False,in的作用是检查集合中是否存在某一元索 #set.add(ob):给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作. sample_set.add('Data) 向集合中增加元素Data print(sample set) t输出{'Prince',1 Techs','Data' print(len(sample_set)) 输出3 #set,remove(obj):移除集合中的指定元素, sample set.remove('Data') #除元素Data t'Prince','Techs'】 print(list(set(list2))) 输出【1,3,5,利用集合元素的唯一性进行列表去重 sample_set=frozenset(sample_set)#不可变集合
1.2.6 数据类型:字典 字典的常用操作: # 字典的三种赋值操作 x = {'food':'Spam','quantity':4,'color':'pink'} X =dict(food='Spam',quantity=4, color='pink') x = dict([("food", "Spam"),("quantity", "4"),("color","pink")]) # dict.copy():拷贝数据 d =x.copy() d['color'] = 'red' print(x) # {'food':'Spam','quantity':4,'color':'pink'} print(d) # {'food':'Spam','quantity':4,'color':'red'} #元素访问 print(d['name']) # 得到错误信息 print(d.get('name')) # 输出 None print(d.get('name','键值不存在!')) # 输出 键值不存在 print(d.keys()) # 输出 dict_keys(['food', 'quantity', 'color']) print(d.values()) # 输出 dict_values(['Spam', 4, 'red']) print(d.items()) # 输出 dict_items([('food', 'Spam'), ('quantity', 4), ('color', 'red')]) d.clear() # 清空字典中的所有数据 print(d) # 输出 {} del(d) # 删除字典 print(d) # 程序异常,提示“d”未定义 1.2.7 数据类型:集合 集合的常用操作: sample_set = {'Prince', 'Techs'} print('Data' in sample_set) # 输出 False,in 的作用是检查集合中是否存在某一元素 # set.add(obj):给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。 sample_set.add('Data') # 向集合中增加元素 Data print(sample_set) # 输出 {'Prince', 'Techs', 'Data'} print(len(sample_set)) # 输出 3 # set.remove(obj):移除集合中的指定元素。 sample_set.remove('Data') # 删除元素 Data print(sample_set) # {'Prince', 'Techs'} list2 = [1,3,1,5,3] print(list(set(list2))) # 输出 [1,3,5],利用集合元素的唯一性进行列表去重 sample_set = frozenset(sample_set)# 不可变集合
1.2.8深拷贝和浅拷贝 使用Python中的copy模块来实现深考贝的功能 mport copy Dict1='name':1ee','age':89,'num':1,2,8]新建字典 Dict_copy =Dictl.copy() #浅拷贝 Dict_dcopy=copy.deepcopy(Dictl)#深贝 Dict1['num'】[1】=6 #修改原数据中嵌列表的值 print('Dict1:'+str(Dict1)+"\n",'Dict_copy:'+str(Dict_copy)+"\n",Dict_dcopy:'+ str(Dict_dcopy)) 输出结果: Dict1:('name':'lee',age':89,'num'[1,6,8]) Dict_copy ['name':'lee',age':89,'num':[1,6,81) 幸浅拷贝数据一起被修改 Dict_dcopy ('name':'lee',age':89,'num':[1,2,8] 幸深拷贝没有修改 1.2.9if语句 接收一个用户输入的分数,然后判断用户所输入的分数属于什么级别。使用Pyho中的if语句 可以完成此功能, !根据输入的分数判断 input():用于接收输入 score=input("请输入你的分数") 青input函数接收输入,为字符串类型 score float(score) :将分数转化为数字类型 青try:,except Exception:-是ython中用于捕获异常的语句,如果try中的语句出现错误,则会 执行except中的语句. try: 1f100>-score>90 ·判断输入的值是否大于等级分数 print("优") ·满足条件后输出等级 elif 90 score >80 print("良") 80>8c e>0: print("中") else: print(和差n》 except Exception piat(“请输入正确的分教 1.2.10循环语句 步骤1for循环
1.2.8 深拷贝和浅拷贝 使用 Python 中的 copy 模块来实现深拷贝的功能。 import copy Dict1 = { 'name': 'lee', 'age':89, 'num':[1,2,8]} # 新建字典 Dict_copy = Dict1.copy() # 浅拷贝 Dict_dcopy = copy.deepcopy(Dict1) # 深拷贝 Dict1['num'][1] = 6 # 修改原数据中嵌套列表的值 print('Dict1:'+str(Dict1)+"\n",' Dict_copy:'+ str(Dict_copy)+"\n",' Dict_dcopy:'+ str(Dict_dcopy)) 输出结果: Dict1:{‘name’:’lee’, ‘age’:89, ‘num’:[1,6,8]} Dict_copy :{‘name’:’lee’, ‘age’:89, ‘num’:[1,6,8]} # 浅拷贝数据一起被修改 Dict_dcopy :{‘name’:’lee’, ‘age’:89, ‘num’:[1,2,8]} # 深拷贝没有修改 1.2.9 if 语句 接收一个用户输入的分数,然后判断用户所输入的分数属于什么级别。使用 Python 中的 if 语句 可以完成此功能。 #根据输入的分数判断 # input():用于接收输入。 score = input("请输入你的分数") # input 函数接收输入,为字符串类型 score = float(score) # 将分数转化为数字类型 # try:… except Exception:… 是 Python 中用于捕获异常的语句,如果 try 中的语句出现错误,则会 执行 except 中的语句。 try: if 100>=score>=90: # 判断输入的值是否大于等级分数 print("优") # 满足条件后输出等级 elif 90 > score >= 80: print("良") elif 80>score>0: print("中") else: print("差") except Exception: print("请输入正确的分数") 1.2.10 循环语句 步骤 1 for 循环
使用for循环打印九九乘法表。 fox主1 n range(1,10):#定义外层循环 forj in range(1,i+1):#定义内层循环 专字符串的格式化输出,让打印结果进行对济,ed属性设置打印结尾符号默认为/加 print ("sd*8d=82d"8(i)end="") print() 输出结果: 1*1=1 4144*2-4*3=124*4=16 5*1=552=105*3=155*4=205*5=25 6+1m66+2126+3m186+a246+5m306+636 7*1-77*2-147*3=217*4=287+5=357*6=427*7=49 8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64 9*1-99+2=189*3-279*4-369*5=459+6=549*7-639*8-729*9-81 步骤2 while循环 当满足条件时循环执行语句块,想要结束循环时,使用break或continue结束循环。 while循环 1=0 卡新建i变量 while i<9: 幸设置循环条件 i+-1 +每次活环1增加 if i =3: 专判断条件是否满足 print("跳出此次循环") continue continue跳出当前的这一次循 1f1==5: print("跳出当前大的循环"】 break 幸跳出当前的大的循环 print (i) 输出结果: 跳出此次循环 跳出当前大的循环 1.2.11自定义函数 步骤1定义函数
使用 for 循环打印九九乘法表。 for i in range(1,10): #定义外层循环 for j in range(1,i+1):# 定义内层循环 # 字符串的格式化输出,让打印结果进行对齐,end 属性设置打印结尾符号默认为/n print("%d*%d=%2d"%(i,j,i*j), end=" ") print() 输出结果: 1*1= 1 2*1= 2 2*2= 4 3*1= 3 3*2= 6 3*3= 9 4*1= 4 4*2= 8 4*3=12 4*4=16 5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 步骤 2 while 循环 当满足条件时循环执行语句块,想要结束循环时,使用 break 或 continue 结束循环。 #while 循环 i = 0 # 新建 i 变量 while i<9: # 设置循环条件 i+=1 # 每次循环 i 增加 1 if i == 3: # 判断条件是否满足 print("跳出此次循环") continue # continue 跳出当前的这一次循环 if i == 5: print("跳出当前大的循环") break # 跳出当前的大的循环 print(i) 输出结果: 1 2 跳出此次循环 4 跳出当前大的循环 1.2.11 自定义函数 步骤 1 定义函数