python實(shí)戰(zhàn)練習(xí)做一個隨機(jī)點(diǎn)名的程序
用python做一個簡單的隨機(jī)點(diǎn)名程序(不重復(fù)點(diǎn)名)
這是我來到csdn的第一篇文章,內(nèi)容如果有瑕疵的地方或者代碼可以進(jìn)一步改善,請大家對我指點(diǎn)一二。謝謝!廢話不多說,上代碼!
import random #導(dǎo)入隨機(jī)模塊 import pyttsx3 #導(dǎo)入第三方語音模塊 listen = pyttsx3.init() #初始化一個變量 txt_path = input('請輸入txt文件的path:') #使用者輸入名單文件的路徑(名單文件為txt,一行只能有一個姓名,姓名必須在行首不能有空格) txt = open(f'{txt_path}','r',encoding='utf-8') #打開名單文件 name_list = [] #創(chuàng)建空列表用于存儲名單 for i in txt: #for循環(huán)遍歷 i = i.replace('\n','') #處理字符串將換行符去掉 name_list.append(i) #添加到姓名列表里 print(name_list) #打印名單 txt.close() #關(guān)閉名單文件 while True: #永真無限循環(huán) if len(name_list) == 0: #當(dāng)名單里所有人都被點(diǎn)到過一次時結(jié)束 print('結(jié)束') break r_num = random.randint(0, len(name_list) - 1) #創(chuàng)建隨機(jī)數(shù) a = input('輸入b退出,其他值繼續(xù):') #讓用戶選擇繼續(xù)點(diǎn)名還是退出點(diǎn)名 if a == 'b': #當(dāng)用戶輸入b退出即退出 print('結(jié)束') break else: #否則就開始隨機(jī)點(diǎn)名 print(f'本次被點(diǎn)到名的是:{name_list[r_num]}') listen.say(f'{name_list[r_num]}') #輸出姓名語音 listen.runAndWait() #運(yùn)行語言 name_list.pop(r_num) #將點(diǎn)過名的去除掉以防重復(fù) print() #間隔作用
將代碼分割成四部分
一、導(dǎo)入模塊
需要兩個模塊,一個內(nèi)置模塊一個第三方模塊分別是:random、pyttsx3(這個是第三放模塊,需要安裝).
import random import pyttsx3
二、用戶輸入名單文件,并且用程序加工一下
txt_path = input('請輸入txt文件的path:') #使用者輸入名單文件的路徑(名單文件為txt,一行只能有一個姓名,姓名必須在行首不能有空格) txt = open(f'{txt_path}','r',encoding='utf-8') #打開名單文件 name_list = [] #創(chuàng)建空列表用于存儲名單 for i in txt: #for循環(huán)遍歷 i = i.replace('\n','') #處理字符串將換行符去掉 name_list.append(i) #添加到姓名列表里 print(name_list) #打印名單 txt.close()
用戶要輸入名單文件的路徑例如
這時我們運(yùn)行一下程序,將名單的路徑輸入看看效果
三、使用pyttsx3模塊
listen = pyttsx3.init() listen.say('輸出語音') listen.runAndWait() #開始輸出語音
注意pyttsx3模塊是要自己下載的,下載方式就是在cmd里輸入pip install pyttsx3這個命令即可
四、隨機(jī)開始
while True: #永真無限循環(huán) if len(name_list) == 0: #當(dāng)名單里所有人都被點(diǎn)到過一次時結(jié)束 print('結(jié)束') break r_num = random.randint(0, len(name_list) - 1) #創(chuàng)建隨機(jī)數(shù) a = input('輸入b退出,其他值繼續(xù):') #讓用戶選擇繼續(xù)點(diǎn)名還是退出點(diǎn)名 if a == 'b': #當(dāng)用戶輸入b退出即退出 print('結(jié)束') break else: #否則就開始隨機(jī)點(diǎn)名 print(f'本次被點(diǎn)到名的是:{name_list[r_num]}') listen.say(f'{name_list[r_num]}') #輸出姓名語音 listen.runAndWait() #運(yùn)行語言 name_list.pop(r_num) #將點(diǎn)過名的去除掉以防重復(fù) print() #間隔作用
隨機(jī)點(diǎn)名是根據(jù)創(chuàng)建隨機(jī)數(shù)然后名單根據(jù)隨機(jī)數(shù)索引來達(dá)到隨機(jī)的效果。。。
這就是我做的一個簡單的隨機(jī)點(diǎn)名程序。本人是一名初學(xué)者,如果代碼有問題或者可以改進(jìn)請大家指點(diǎn)出來,謝謝!
到此這篇關(guān)于python實(shí)戰(zhàn)練習(xí)做一個隨機(jī)點(diǎn)名的程序的文章就介紹到這了,更多相關(guān)python 隨機(jī)點(diǎn)名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于Python實(shí)現(xiàn)簡單的學(xué)生點(diǎn)名系統(tǒng)
- 基于Python編寫一個點(diǎn)名器的示例代碼
- Python寫一個簡單上課點(diǎn)名系統(tǒng)(附源碼)
- Python實(shí)現(xiàn)上課點(diǎn)名器系統(tǒng)
- 一起用Python做個上課點(diǎn)名器的制作過程
- python用tkinter實(shí)現(xiàn)一個簡易能進(jìn)行隨機(jī)點(diǎn)名的界面
- 基于python tkinter的點(diǎn)名小程序功能的實(shí)例代碼
- python寫一個隨機(jī)點(diǎn)名軟件的實(shí)例
- Python輕松寫個課堂隨機(jī)點(diǎn)名系統(tǒng)
相關(guān)文章
python openpyxl方法 zip函數(shù)用法及說明
這篇文章主要介紹了python openpyxl方法 zip函數(shù)用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05Pandas實(shí)現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換的一些小技巧匯總
這篇文章主要給大家匯總介紹了關(guān)于Pandas實(shí)現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換的一些小技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05