python实战练习做一个随机点名的程序
作者:Master WHY 时间:2022-06-16 07:42:31
用python做一个简单的随机点名程序(不重复点名)
这是我来到csdn的第一篇文章,内容如果有瑕疵的地方或者代码可以进一步改善,请大家对我指点一二。谢谢!废话不多说,上代码!
import random #导入随机模块
import pyttsx3 #导入第三方语音模块
listen = pyttsx3.init() #初始化一个变量
txt_path = input('请输入txt文件的path:')#使用者输入名单文件的路径(名单文件为txt,一行只能有一个姓名,姓名必须在行首不能有空格)
txt = open(f'{txt_path}','r',encoding='utf-8')#打开名单文件
name_list = []#创建空列表用于存储名单
for i in txt:#for循环遍历
i = i.replace('\n','')#处理字符串将换行符去掉
name_list.append(i)#添加到姓名列表里
print(name_list)#打印名单
txt.close()#关闭名单文件
while True:#永真无限循环
if len(name_list) == 0:#当名单里所有人都被点到过一次时结束
print('结束')
break
r_num = random.randint(0, len(name_list) - 1)#创建随机数
a = input('输入b退出,其他值继续:')#让用户选择继续点名还是退出点名
if a == 'b':#当用户输入b退出即退出
print('结束')
break
else:#否则就开始随机点名
print(f'本次被点到名的是:{name_list[r_num]}')
listen.say(f'{name_list[r_num]}')#输出姓名语音
listen.runAndWait()#运行语言
name_list.pop(r_num)#将点过名的去除掉以防重复
print()#间隔作用
将代码分割成四部分
一、导入模块
需要两个模块,一个内置模块一个第三方模块分别是:random、pyttsx3(这个是第三放模块,需要安装).
import random
import pyttsx3
二、用户输入名单文件,并且用程序加工一下
txt_path = input('请输入txt文件的path:')#使用者输入名单文件的路径(名单文件为txt,一行只能有一个姓名,姓名必须在行首不能有空格)
txt = open(f'{txt_path}','r',encoding='utf-8')#打开名单文件
name_list = []#创建空列表用于存储名单
for i in txt:#for循环遍历
i = i.replace('\n','')#处理字符串将换行符去掉
name_list.append(i)#添加到姓名列表里
print(name_list)#打印名单
txt.close()
用户要输入名单文件的路径例如
这时我们运行一下程序,将名单的路径输入看看效果
三、使用pyttsx3模块
listen = pyttsx3.init()
listen.say('输出语音')
listen.runAndWait() #开始输出语音
注意pyttsx3模块是要自己下载的,下载方式就是在cmd里输入pip install pyttsx3这个命令即可
四、随机开始
while True:#永真无限循环
if len(name_list) == 0:#当名单里所有人都被点到过一次时结束
print('结束')
break
r_num = random.randint(0, len(name_list) - 1)#创建随机数
a = input('输入b退出,其他值继续:')#让用户选择继续点名还是退出点名
if a == 'b':#当用户输入b退出即退出
print('结束')
break
else:#否则就开始随机点名
print(f'本次被点到名的是:{name_list[r_num]}')
listen.say(f'{name_list[r_num]}')#输出姓名语音
listen.runAndWait()#运行语言
name_list.pop(r_num)#将点过名的去除掉以防重复
print()#间隔作用
随机点名是根据创建随机数然后名单根据随机数索引来达到随机的效果。。。
这就是我做的一个简单的随机点名程序。本人是一名初学者,如果代码有问题或者可以改进请大家指点出来,谢谢!
来源:https://blog.csdn.net/m0_53482319/article/details/120623245
标签:Python,随机点名,实战
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
sql server update 表的问题
2009-10-04 20:32:00
python使用json序列化datetime类型实例解析
2021-03-03 05:33:40
怎样开启phpStudy服务器
2023-05-25 00:38:06
完美解决python遍历删除字典里值为空的元素报错问题
2023-04-23 13:39:50
MySQL错误中文参照列表
2010-09-30 14:41:00
Python方法的延迟加载的示例代码
2022-09-05 03:25:00
使用 XML 模板 (MSSQL手册)
2008-09-04 14:25:00
动态加载JavaScript的小实践
2009-11-12 12:38:00
![](https://img.aspxhome.com/file/UploadPic/200911/12/yui-loader-bug-in-ie-58s.png)
js鼠标滑过图片震动特效的方法
2023-08-23 21:38:50
详解tensorflow载入数据的三种方式
2023-07-22 19:35:56
![](https://img.aspxhome.com/file/2023/4/62904_0s.jpg)
pycharm进入时每次都是insert模式的解决方式
2023-08-09 09:52:16
![](https://img.aspxhome.com/file/2023/6/62906_0s.jpg)
使用apidoc管理RESTful风格Flask项目接口文档方法
2022-11-24 10:05:14
![](https://img.aspxhome.com/file/2023/8/75888_0s.jpg)
利用python脚本如何简化jar操作命令
2021-02-12 11:08:15
css元素层叠级别及z-index剖析
2008-08-29 12:41:00
SQL Server数据库触发器安全隐患解析
2009-03-25 12:56:00
在pandas中遍历DataFrame行的实现方法
2022-02-16 13:13:26
![](https://img.aspxhome.com/file/2023/7/75867_0s.jpg)
php投票系统之增加与删除投票(管理员篇)
2023-10-14 09:44:53
![](https://img.aspxhome.com/file/2023/0/55710_0s.png)
关于WARNING:Ignoring invalid distribution -pencv-python....警告信息的处理方法(已解决!)
2021-01-14 18:14:28
![](https://img.aspxhome.com/file/2023/7/65517_0s.png)
python有几个版本
2021-09-12 00:44:30
Python实现的爬取百度文库功能示例
2022-09-08 22:34:46