python综合练习
复习与巩固
- python语言的缺点?
- Python语言的优点有哪些,列举4个。
- 什么是跨平台性?
-——————————————————————————————-
什么是模块?
安装第三方模块用到哪个工具,安装的语法命令是什么?
导入第三方模块的语法是什么?
什么是标识符,有哪些规范?
python中的注视有几种,语法分别是?
什么是字符串,语法是?
数据类型分为哪几类(都有哪些)?
复习上节dos界面的几个程序。
复习pycharm创建项目
-———————————————————————————-
- 什么是列表?它的语法?
- 什么是集合,它的语法是什么,特点是什么?
- 什么是元组,它的语法是?
- 集合与列表的区别是什么?
- 什么是字典?定义字典的语法是什么?
- **持久性存储的方式是什么?将对象序列化的方法有哪些?将序列话后的数据恢复的方法有哪些?(loads(file)**)
练习字典
定义一个字典名为introduce,包括以下内容:
昵称:xiaoer,
密码:******,
性别:男
爱好:跑步
年龄:22
个人简介:……
要求输出绿色的内容。
练习1****:
已知BMI****值的计算公式如下:
体质指数(BMI****)= 体重(kg)÷身高^2(m****)
本实例要求编写代码实现:从键盘上输入一个人的姓名,然后输入该用户的的身高,体重数据,最后计算BMI指数,并且输出它的姓名,身高,体重,BMI值。
练习2****:
*从键盘上输入三角形的三个边长,a,b,c的值(3,4,5),求三角形的面积S***。#**开平方运算(跟号运算)
import math
**a=math.sqrt(**数据)
练习3:
给你一个圆的半径r,求得圆的周长d和圆的面积S。Pi=math.pi,
练习4:
给一个数a,然后判断a是奇数还是偶数,要求输出a是奇数还是偶数。
import math
r=input(“请输入数据r:”)
b=input(“请输入数据b:”)
c=input(“请输入数据c:”)
s=int(r)**2*math.pi
print(“圆的面积是等数据:”,s,r,b,c)
分支结构练习1****:闰年平年问题:
被整除的特性不同 *非整百年的年份中,能被4整除的为闰年,不能被4整除的为平年。如2004年就是闰年,2001年平年。* *整百年的年份中,能被400整除的是闰年,不能被400整除的是平年。如2000*年是闰年…
循环结构
练习0#
从键盘上输入一个数N,要求输出从0到N之间各个数是奇数还是偶数。参考课本56页。用while循环实现。
练习1
使用while循环,输出100以内能够被M整除的所有数(从键盘上输入一个数M,2<M<10****)。
练习2
公鸡5****元一只 母鸡3****元一只 小鸡1元3只 要求100元刚好买100只鸡的买法
练习3
9*9乘法表
练习4
0~N的和。(从键盘上输入一个数N)
*练习1***:循环输入一个同学的姓名,平时成绩,****期末成绩,然后计算总成绩(平时成绩50%+****期末成绩50%**)。当总成绩不及格时,输出该同学的信息(姓名,平时成绩,期末成绩,总成绩,不及格),并终止循环。
*练习2猜数字(100*以内的数):你输入一个数字/**随机生成一个数字,然后让你的小伙伴猜数字,给出提示信息,大了还是小了,直到猜中为止,统计他猜了多少次。
练习3 **摇色子/**石头剪刀布()
A和B摇色子,显示每次A和B摇的结果,当A赢的时候,输出A摇了几次,终止循环。提示使用随机函数,如import random A=random.randint(1,6)
例如:
- A摇的是5,B****摇的是6
- A摇的是4,B摇的是3,A****赢了,摇了两次。
//////////////////////////////////////////////////////////////////////////////////////
Shijianbu=[“石头”,”剪刀”,”****布”], zsh=random.randint(0,2) xm=random.randint(0,2)
Shijianbu[zsh]==”石头” and Shijianbu[xm]==”剪刀”
1,zsh的是石头,xm****的是布
2,zsh的是石头,xm的是剪刀,zsh赢了,玩了两次。
练习4数N的游戏
**#数字游戏:从键盘上输入一个数(2<N<10)
N=int(input(“请输入您要玩的数字N:要求(2<N<10*):”))
for i in range(1,101):
#(1)7*的倍数,(2)个位上带7的,如17,27,37,47*,……97.(3)十位上带7的,如70,71,72,73*,……79
if i%10==0:
print()
if i%N==0 or i%10==N or i//10==N:
print(“**拍手”,end=’ ‘)
else:
print(i,end=”\t”)
- *从键盘上输入一句***英文语句,要求输出具有正确的英文格式的语句(首单词首字符大写,其他字符都小写)。提示使用capitalize()**,lower()
例如,****输入i like PYTHON. 输出是I like python.
- 从键盘上输入一句汉语,把其中出现的敏感词(傻X,SB****,杀人)常用的处理方法
**是使用特殊符号(如“****”)对敏感词进行替换。输出没有敏感词的语句。提示使用
*replace(old, new),如输入:你真坑,输出:你真**
- *从键盘上输入一段话***,要求程序能够具备删除空格、英文标点替换(,****;.**。)、英
**文单词全部大写功能,提示使用upper()***,replace(old, new)*,lstrip()。如输入: math* 是很棒的一个科目, 我很喜欢学习数学. 输出:MATH是很棒的一个科目,我很喜欢学习数学。*
列表练习1****:
#定义一个列表名score,暂时不添加任何元素。要求从键盘上输入10个成绩插入到score里,然后输出score的最大值,和最小值。
# 提示方法 max(score),min(score)
源码:
cs=[]
**for i in (input(“**请输入一个学生的成绩:”).split(‘ ‘)):
cs.append(float(i))
print(cs)
列表的推导式my_set = [int(i) for i in input(“请输入学生的成绩:”).split()]
字典,集合的推导式:
元组练习1****:
#定义一个元组名score,暂时不添加任何元素。要求从键盘上输入10个成绩插入到score里,然后输出score的最大值,和最小值,和它的长度。
# 提示方法 list(元组名),tuple(列表名),max(score),min(score),len().
#color1 = (1, 2, ‘red’, ‘green’, ‘pink’)
#color1=list(color1)
集合练习1
#定义一个集合名score,暂时不添加任何元素。要求从键盘上输入5个成绩插入到score里,然后输出它的长度,它本身,删除等于59的成绩,并输出删除后的集合本身。
# 提示方法 set(),len(),add()
字典练习1
访问字典的键,访问字典的值,访问所有。
cs={1:’name’,2:’age’,3:’like’}
for i,v in cs.items():
print(i,v)
print(cs.values())
print(cs.items())
字典练习2
通讯录是记录了联系人姓名和联系方式的名录,手机通讯录是最常见的通讯录之一,人们可以在通讯录中通过姓名查看相关联系人的联系方式等信息,也可以在其中新增联系人,或修改、删除联系人信息。
本实例要求编写程序,实现具备添加、查看、修改以及删除联系人信息功能的手机通讯录。
通讯录参考部分源码:
txl={}
#1,增加,2,修改,3删除,0退出。
print(“请输入您的指令:\n0,查询联系人\n1,增加联系人\n2,修改联系人\n3,删除联系人\n-1,退出程序。”)
while(True):
flag=input(“请输入您的指令,如1:”)
if(flag==’1’):
name=input(“请输入要插入的姓名,如zsh:”)
txl[name]=input(“请输入他的联系方式:”)
print(‘添加成功!请继续操作。’)
elif(flag==’0’):
print(f”该通讯录是{txl}”)
elif(flag==-1):
print(‘谢谢使用!’)
break
通讯录参考源码:
txl={}
#1,增加,2,修改,3删除,0查询所有联系人,00查询某个联系人,-1退出。
print(“请输入您的指令:\n0,查询所有联系人\n00,查询某个联系人\n1,增加联系人\n2,修改联系人\n3,删除联系人\n-1,退出程序。”)
while(True):
flag=input(“请输入您的指令,如0:”)
if(flag==’0’):
print(“该通讯录所有联系人的信息是:”)
for i in txl.keys():
print(f”{i}”)
print(‘———————————‘)
#—————————————————————-
elif(flag == ‘00’):
name = input(“请输入要查询的姓名,如zsh:”)
if(name in txl):
print(f’他的联系方式是{txl[name]}’)
print(‘———————————‘)
else:
print(“该联系人不在,请添加他的信息。”)
print(‘———————————‘)
# —————————————————————-
elif (flag == ‘1’):
name = input(“请输入添加人的姓名,如zsh:”)
if (name in txl):
print(f’{name}的联系方式是{txl[name]},请勿重复添加!’)
print(‘———————————‘)
else:
txl[name]=input(“请输入该联系人的联系方式:”)
print(f’已添加成功,他的信息是{name},{txl[name]}’)
print(‘———————————‘)
# —————————————————————-
elif (flag == ‘2’):
name = input(“请输入修改人的姓名,如zsh:”)
if (name not in txl):
print(f’该修改人不在,请添加他的信息!’)
print(‘———————————‘)
else:
txl[name]=input(“请输入该联系人新的联系方式:”)
print(f’已修改成功,他修改后的信息是{name},{txl[name]}’)
print(‘———————————‘)
# —————————————————————-
elif (flag == ‘3’):
name = input(“请输入删除人的姓名,如zsh:”)
if (name not in txl):
print(f’该修改人不存在,无法删除,请进行其他操作!’)
print(‘———————————‘)
else:
del txl[name]
print(f’已成功删除,删除后的所有的联系人的信息是{txl}’)
print(‘———————————‘)
# —————————————————————-
elif(flag == ‘-1’):
print(“谢谢使用!”)
break
复杂数据类型综合练习1****、
学校拟组织一场歌手大赛,从参赛选手中选拔出十名相对突出的学生,授予“校园十大歌手”称号。比赛之中设置有评委组,每名选手演唱完毕之后会由评委组的十名评委打分。为保证比赛公平公正,防止作弊和恶意打分,计算得分时会先去掉最高分和最低分,再计算平均分。
本实例要求编写程序,实现根据需求对每位歌手计算平均分的功能。(输入他的姓名,10****个成绩,删除他的最高分,最低分,然后求平均分,最后输出他的姓名,最高分,最低分和平均分。
复杂数据类型综合练习2****、
如今两年偶像选秀节目风头正盛,吸引了许多喜欢唱跳、有一颗明星梦想的少年少女参加,青春有你正是节目之一。青春有你采用计票机制,选手获得的票数越多,排名就越靠前。
本实例要求编写程序,接收10名选手的姓名和票数,输出排序后的成绩(姓名,票数)。如
张三 100
李四 99
歌手排名源码1****:
mingdan=[i for i in input(“请输入所有歌手的姓名,以英文逗号分隔:”).split(‘,’)]
# print(mingdan)
geshou=dict.fromkeys(mingdan,0)
print(‘初始化后的字典为:’,geshou)
for i in mingdan:
print(f”请输入{i}的成绩,保留两位小数:”,end=’ ‘)
geshou[i]=float(input())
# geshou={‘zsh’:85,’xll’:84,’zjl’:75}
print(geshou)
cj=[j for j in geshou.values()]
cj.sort(reverse=True)
# print(cj)
geshou2={j:i for i,j in geshou.items()}
print(“最终成绩如下:”)
for i in cj:
print(geshou2[i],i)
歌手排名源码2****:
**mingdan=[i for i in input(“请输入10名歌手的姓名:”).split(‘,’)]
gsxx={}
gsxx=dict.fromkeys(mingdan,0)
for i in mingdan:
gsxx[i]=input(f”****请输入{i}**的成绩:”)
sc=[i for i in gsxx.values()]
# print(sc)
sc.sort(reverse=True)
gsxx={j:i for i,j in gsxx.items()}
for i in sc:
print(f’{gsxx[i]},{i}’)
红心算法源码
from turtle import *
pensize(10)
pencolor(‘red’)
fillcolor(‘pink’)
speed(8)
up()
goto(-30, 100)
down()
begin_fill()
left(90)
circle(120,180)
circle(360,70)
left(38)
circle(360,70)
circle(120,180)
end_fill()
up()
goto(-100,-100)
down()
敏感词源码
sentens=input(“请输入一句话:”)
minganci=[“傻X”,”SB”,”杀人”,”坑”,”塔被偷了”]
# for i in range(len(minganci)):
# sentens=sentens.replace(minganci[i],”**“)
for i in minganci:
flag=”*“*len(i)
sentens=sentens.replace(i,flag)
猜数字(100****以内的数)源码
import random
Num=random.randint(0,100)
print(“随机数为:”,Num)
for i in range(12):
print(“—————————-“)
times=0
while True:
c=int(input(“您猜的数字为:”))
times=times+1
if c==Num:
print(“你真棒,总共猜了”,times,”次”)
break
elif c>Num:
print(“你猜的偏大了,请往小了猜”)
else:
print(“你猜的偏小了,请往大了猜”)
石头剪刀布的游戏源码
import random
shijianbu=[“石头”,”剪刀”,”布”,”剪刀”]#0,1,2,3
times=0
while True:
xiabiao=random.randint(0,3)
ziji=input(“您出的是”)
times=times+1
#if ziji == “石头” and shijianbu[xiabiao] == “剪刀”
if (ziji==”石头” and xiabiao==1) or (ziji==”石头” and xiabiao==3 ) or (ziji==”剪刀” and xiabiao==2) or (ziji==”布” and xiabiao==0):
print(“这是第”, times, “次”, “你出的是:”, ziji,”电脑出的是:”, shijianbu[xiabiao],”你赢了”)
break
else:
print(“这是第”, times, “次”, “你出的是:”, ziji,”电脑出的是:”, shijianbu[xiabiao])
车牌号源码:
import random
#random.randint(i, j),产生一个i到j范围内整数
j=random.randint(0, 25)
zimu=[‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’,’l’,’m’,’n’,’o’,’p’,’q’,’r’,’s’,’t’,’u’,’v’,’w’,’x’,’y’,’z’]
#print(zimu[i])
while True:
i=random.randint(1000000, 100000000)
print(‘豫L’,zimu[j],i)
break
第9周函数
练习1:从键盘上输入r,然后定义两个函数,如下# getArea(r)求圆的面积。
# getPerimeter(r)求圆的周长,最后调用这些函数输出,对应半径下,圆的面积以及周长。
练习2:
定义一个gsxx字典存储10名选手的姓名和票数,定义一个函数paiming(gsxx)功能是输出排序后的成绩(姓名,票数)。
练习3,4
3、从键盘上接受一个数N,定义一个函数JO(n),该函数用来判断n奇数偶数。最后输出N是奇数还是偶数。
4、 从键盘上接受一个年份Y,定义一个函数RP(y),该函数用来判断y是闰年还是平年,最后输出Y是什么年。
练习5
从键盘上输入一个N,然后定义一个SUM(n)函数求1~N的累加和,最后输出结果。
练习6
# 本实例要求编写代码,利用函数实现具有显示饮品信息、计算总额等功能的程序。
# 1、娃哈哈(2元),2、王老吉(3元),3、脉动(4元)。
N代表类型,M代表买的个数。从键盘上输入N,M。
定义一个gouwu(N,M),返回计算的总额。最后输出商品信息(2瓶王老吉)以及总额。
#0,选择结束。定义一个Shangpin列表,用来存储购买商品的个数。[2,3,4],gouwu(shangpin)
自动购物机源码。
# 0代表选择结束,1代表增加娃哈哈,2代表增加王老吉,3代表增加脉动。4……
# 定义一个Shangpin列表,用来存储购买商品的个数。[2,3,4],gouwu(shangpin)
danjia={“娃哈哈”:2,”王老吉”:3,”脉动”:4}
leixing={0:”结束”,1:”娃哈哈”,2:’王老吉’,3:”脉动”}
shangpin=[0,0,0,0,0]
j=0
while True:
N=int(input(“请输入您的选择:(如0选择,1娃哈哈,2王老吉,3脉动…):”))
if N==1 or N==2 or N==3:
L = int(input(f”请输入购买{leixing[N]}个数:”))
shangpin[N-1]=shangpin[N-1]+L # shangpin[0] = shangpin[0] + L
print(f”已添加{leixing[N]}{shangpin[N-1]}瓶。”)
elif N == 0:
print(“已添加”, end=”\t”)
for i in shangpin:
j = j + 1
if i == 0:
continue
else:
print(f”{leixing[j]}{i}瓶”, end=”\t”)
print(“请稍后付款…”)
# print(f”已添加娃哈哈{shangpin[0]}瓶,王老吉{shangpin[1]}瓶,脉动{shangpin[2]}瓶,请稍后付款。”)
break
else:
print(“该商品暂时缺货,请耐心等待!”)
totalprice=0
def Gouwu(SP):
global totalprice
totalprice=SP[0]*danjia[“娃哈哈”]+SP[1]*danjia[“王老吉”]+SP[2]*danjia[“脉动”]
return totalprice
j=0
print(“已成功付款”,end=”\t”)
for i in shangpin:
j = j + 1
if i==0:
continue
else:
print(f”{leixing[j]}{i}瓶”,end=”\t”)
print(f”总价:{Gouwu(shangpin)}元。”)
# print(f”已成功付款,娃哈哈{shangpin[0]}瓶,王老吉{shangpin[1]}瓶,脉动{shangpin[2]}瓶,总价:{Gouwu(shangpin)}元。”)