python练手经典100例,python练手项目实战
大家好,我是辣家伙~
之前给你更新过的很多小练手项目我都看了,但是渐渐发现很多人连最基础的都不知道。所以今天我给大家整理十五个经典练手案例。我希望你会继续喜欢他们。当然,放在收藏夹里也是可以的~
另外,你也可以去我的主页找更多的项目案例。
和我分享一些详细的笔记:
前言1。猜拳游戏2。计算1~100(包括1和100)的累计和3。计算1~100(包括1和100)之间偶数的累计和4。印刷下列图形:5。打印三角形6。学校办公室作业7。函数封装(1) 8。函数封装(2) 9。学生管理系统X,99乘法表XI,制作文档备份XII,文件名批量修改XIII,斐波那契数列XIV,水仙花XV,冒泡排序。
一、猜谜游戏的需要:
1.从控制台输入3354冲头(1)/剪刀(2)/布(3)。
2.电脑随机打卡——。首先假设计算机只会出来完成整体的代码功能。
3.无论输赢。
参考代码:
随机导入
Player=input(请输入:剪刀(0)石头(1)布(2):)
player=int(player)
#生成一个随机整数:0、1、2中的一个
computer=random.randint(0,2)
#用于测试
#print(播放器=%d,计算机=%d ,(播放器,计算机))
if((player==0)and(computer==2))or((player==1)and(computer==0))or((player==2)and(computer==1)):
打印(赢了,哈哈,你太厉害了)
elif player==计算机:
打印(“平局,想再来一局”)
否则:
打印(输了就别走,洗手加油,战斗到天亮)
二。计算1~100(包括1和100)的累计和。参考代码:
#编码=utf-8
i=1
总和=0
当i=100时:
总和=总和I
i=1
打印( 1 ~ 100的累计和是:%d% sum )
三。计算1到100之间(包括1和100)的偶数的累计和。参考代码:
#编码=utf-8
i=1
总和=0
当i=100时:
如果i % 2==0:
总和=总和I
i=1
打印( 1 ~ 100的累计和是:%d% sum )
四。打印以下图形:* * * * *
* * * * *
* * * * *
* * * * *
* * * * *参考代码:
i=1
当i=5时:
j=1
当j=5时:
打印( * ,end= )
j=1
打印()
i=1
动词(verb的缩写)打印三角形*
* *
* * *
* * * *
* * * * *参考代码:
i=1
当i=5时:
j=1
当j=i时:
打印( * ,end= )
j=1
打印()
i=1
6.学校办公室给一个学校分配三个办公室。现在有八名教师等待分配工作站。请写一个程序来完成随机分配。
参考代码:
#编码=utf-8
随机导入
#定义一个包含3个办公室的列表
办公室=[[],[],[]]
#定义一个列表来存储8名教师的姓名
names=[A , B , C , D , E , F , G , H]
i=0
对于名称中的名称:
index=random.randint(0,2)
办公室[索引]。追加(名称)
i=1
对于办公室中的临时名称:
print( office % d 中的人数是:%d%(i,len(tempNames)))
i=1
对于临时名称中的名称:
打印( %s%name,end= )
打印( \n )
打印(-*20)
七。功能封装(一)1。写一个函数,打印一条水平线。
2.打印自定义行数的水平线。
参考代码:
#打印一条水平线
def printOneLine():
打印(-*30)
#打印多条水平线
def printNumLine(数字):
i=0
#因为printOneLine函数已经完成了打印水平线的功能,
#你只需要多次调用这个函数
当我数时:
printOneLine()
i=1
打印数字线(3)
八。功能封装(二)1。写一个函数,求三个数的和
2.写一个函数,求三个数的平均值
参考代码:
#求3个数的和
def sum3Number(a,b,c):
return a b c # return后面可以跟一个数值或一个表达式。
#完成3个数字的平均
定义平均3个数字(a,b,c):
#因为sum3Number函数已经完成了三个数的求和,所以只需要调用它。
#即把收到的3个数作为参数传递。
sumResult=sum3Number(a,b,c)
aveResult=sumResult/3.0
返回一个结果
#调用函数完成3个数的平均。
结果=平均值3Number(11,2,55)
打印(“平均值为% d“%结果”)
九。学生管理系统#学生的信息可以使用字典类型。
#管理学生可以使用的列表
#定义全局变量学生列表
student_list=[] # list()
# print(全局变量:,id(学生列表))
#显示功能菜单的功能
定义show_menu():
打印(-学生管理系统1.0版-)
打印( 1。添加学生’)
打印( 2。删除学生’)
打印( 3。修改学生信息’)
打印( 4。查询学生信息’)
打印( 5。显示所有学生信息’)
打印( 6。退出’)
#添加学生
def add_student():
Name=input(请输入学生的姓名:)
年龄=输入(请输入学生的年龄:)
性别=输入(请输入学生的性别:)
#定义学生词典类型的变量
学生_字典={} #字典()
#将学生信息存储在字典中。
student_dict[name]=name
student_dict[age]=年龄
学生_字典[性]=性
这里可以省略# global,因为list是可变类型,可以在原始数据的基础上进行修改,内存地址保持不变。
#因为链表的内存地址是一样的,所以全局变量不需要使用global。
# plus global表示内存地址将会改变。
#将学生信息添加到学生列表
学生列表附加(学生字典)
#全球学生列表
# # student_list=[{ 姓名:李四,年龄: 18 ,性别:男 }]
#学生列表.追加(学生字典)
#显示所有学生信息
定义show_all_student():
# print(学生列表,id(学生列表))
对于索引,enumerate(student_list)中的student_dict:
#学号和下标之间的关系
学生编号=索引1
Print(学号:%d姓名:%s年龄:%s性别:% s% (student _ no,student _ dict [name],
student_dict[年龄],student_dict[性别]))
#删除学生信息
def remove_student():
Student_no=int(input(请输入要删除的学生的学号:))
#获取学生词典信息的下标
index=学生编号- 1
如果index=0且index len(student_list):
#根据下标删除学生信息
del student _ list[索引]
否则:
打印(“请输入正确的学号”)
#修改学生信息
def modify_student()。
Student_no=int(input(请输入要修改的学生的身份证号:))
#根据学号计算下标
index=学生编号- 1
如果index=0且index len(student_list):
#根据下标获取学生词典信息
学生名单[索引]
Name=input(请输入您修改后的名称:)
年龄=输入(请输入您修改后的年龄:)
性别=输入(请输入您修改后的性别:)
student_dict[name]=name
student_dict[age]=年龄
学生_字典[性]=性
否则:
打印(“请输入正确的学号”)
#查询学生
def搜索_学生():
Name=input(请输入要查询的学生姓名:)
#遍历学生列表信息
对于索引,enumerate(student_list)中的student_dict:
# pass #空实现
if student_dict[name]==name:
学生编号=索引1
#意思是这个学生已经找到了
Print(学号:%d姓名:%s年龄:%s性别:% s% (student _ no,student _ dict [name],
student_dict[年龄],student_dict[性别]))
破裂
否则:
打印(“对不起,找不到这个学生”)
#程序启动的功能
定义运行():
虽然正确:
#显示功能菜单
显示菜单()
#接收来自用户的指令
Menu_option=input(请输入您需要的功能选项:)
if menu_option==1 :
打印(“添加学生”)
add_student()
elif menu_option==2 :
打印(“删除学生”)
移除_学生()
elif menu_option==3 :
打印(“修改学生信息”)
修改_学生()
elif menu_option==4 :
打印(“查询学生信息”)
搜索_学生()
elif menu_option==5 :
打印(“显示所有学生信息”)
显示所有学生()
elif menu_option==6 :
打印(“退出”)
破裂
#执行程序启动的功能
运行()
X.99乘法表参考代码:
i=1
而i=9:
j=1
当j=i时:
print({}*{}={} )。format(j,I,i*j),end= )
j=1
打印()
i=1
XI。备份文件输入文件名,然后程序自动完成文件的备份。
参考代码:
#提示输入文件
OldFileName=input(请输入要复制的文件的名称:)
#以已读方式打开文件。
oldFile=open(oldFileName, rb )
#提取文件的后缀
fileFlagNum=oldFileName.rfind( . )
如果fileFlagNum 0:
fileFlag=old filename[fileFlagNum:]
#组织一个新文件名
新文件名=旧文件名[:文件标志][副本]文件标志
#创建新文件
newFile=open(新文件名, wb )
#将旧文件中的数据逐行复制到新文件中。
对于oldFile.readlines()中的lineContent:
newFile.write(lineContent)
#关闭文件
oldFile.close()
newFile.close()
十二。批量修改文件名批量修改现有文件
参考代码:
#编码=utf-8
#批处理文件名前缀
导入操作系统
FunFlag=1 # 1表示添加标志,2表示删除标志。
folderName=。/renameDir/
#获取指定路径的所有文件名
dirList=os.listdir(文件夹名)
#遍历并输出所有文件名
对于目录列表中的名称:
打印(姓名)
如果funFlag==1:
NewName=[图灵]_ 名称
elif funFlag==2:
Num=len([ Turing] _ )
newName=name[num:]
打印(新名称)
os.rename(文件夹名,文件夹新名)
十三。斐波那契数列的参考码
1 def fibonacci():
2 num=input(请输入您的号码\n )
I,a,b=0,0,1//赋值
4如果int(num) 0:
5打印(您输入的数据不合理)
6 elif int(num)==1:
7打印(一)
8其他:
9 while i int(num):
10印(一)
11 #总和=a b
12 #a=b
13 #b=总和
14 a,b=b,a b #a,b=b,a b在这里不能写成a=b=a b。如果这样写,B不是前两位数之和,而是已经被B赋值的A和B之和。
15 i=1
16斐波那契()
十四。水仙花号参考代码:
对于范围内的n(100,1000):
i=n //100
j=n //10 % 10
k=n % 10
如果n==i ** 3 j ** 3 k ** 3:
打印(n)
十五。冒泡排序是一种常见的排序算法,比较简单。
冒泡排序重复访问要排序的元素列表,依次比较两个相邻的元素,如果顺序(例如从大到小或从小到大)错误,则交换它们的位置。重复,直到没有相邻元素需要交换,元素列表排序完成。
参考代码:
#编码=utf-8
def bubble_sort(数组):
对于范围内的I(1,len(array)):
对于范围内的j(0,len(array)-i):
if array[j] array[j 1]:
数组[j],数组[j 1]=数组[j 1],数组[j]
返回数组
if __name__==__main__ :
array=[10,17,50,7,30,24,27,45,15,5,36,21]
print(bubble_sort(array))
本文五包辣条
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。