python实战练习做一个随机点名的程序
作者:Master WHY 发布时间:2022-06-16 07:42:31
标签:Python,随机点名,实战
用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


猜你喜欢
- 前言go 当中的并发编程是通过goroutine来实现的,利用channel(管道)可以在协程之间传递数据,实现协程的协调与同步。使用新建一
- 想使用正则表达式来获取一段文本中的任意字符,写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发
- 用于处理XML文档的DOM元素属性 childNodes:返回当前元素所有子元素的数组; firstChild:返回当前元素的第一个下级子元
- 设置部分:首先网页登录QQ邮箱设置一些待会儿会用到的参数:首先开启POP3/SMTP和IMAP/SMTP服务,然后生成授权码,然后复制到代码
- 模板的继承完美在写html的时候会发现,自己多个html文件中又好多东西是一样的,包括静插件的引入 还有有些简单的css样式都不需要修改,这
- 前言一段时间没有用Union和Union,再用的时候忘了怎么用了。。。所以做一篇文章来记录自己学Union和Union的经历。提前准备在Sq
- 前言:关于数据库范式,时常有听说过,一直没有详细去了解。一般数据库书籍或数据库课程会介绍范式相关内容,范式也经常出现在数据库考试题目中。不清
- 在计算机科学中,二进制是一种由 0 和 1 组成的数字系统。Python 中提供了一种易于使用的方式来将二进制字符串转换为整数,并支持多种进
- 误区 #13.在SQL Server 2000兼容模式下不能使用DMV错误 对
- 一、定位元素的8种方式1、方法介绍定位一个元素定位多个元素含义find_element_by_id()find_elements_by_id
- 一、查询SQL Server中所有的表SQL语句:SELECT * FROM sys.tablesname列表示所有的表名。二、查询SQL
- 1.用于简单的对象检测、跟踪2.简单前背景分割#encoding:utf-8#黄色检测import numpy as npimport ar
- 本文实例讲述了Python实现周期性抓取网页内容的方法。分享给大家供大家参考,具体如下:1.使用sched模块可以周期性地执行指定函数2.在
- Python# coding=utf-8import timeimport sysdef func(): # 格式化输出时间 &
- PDOStatement::setAttributePDOStatement::setAttribute — 设置一个语句属性(PHP 5
- 本文实例讲述了Python实现获取邮箱内容并解析的方法。分享给大家供大家参考,具体如下:# -*- coding: utf-8 -*-fro
- 说明可以调取k8s API 接口的工具有很多,这里我就介绍下client-gogitlab上client-go项目地址: https://g
- 首先恭喜月影,当然希望好书大卖!原文提供了样章下载1.1M,pdf格式的。如果大家想下载可以访问源地址:http://bbs.51js.co
- 这两天一直在看tensorflow中的读取数据的队列,说实话,真的是很难懂。也可能我之前没这方面的经验吧,最早我都使用的theano,什么都
- 大家都知道对于一个页面来说,最基本的结构呢就是<html> <head> <!-- 头部信息内容区域