python實(shí)現(xiàn)隨機(jī)加減法生成器
本文實(shí)例為大家分享了python實(shí)現(xiàn)隨機(jī)加減法生成器的具體代碼,供大家參考,具體內(nèi)容如下
為了讓外甥女練習(xí)算術(shù),用python給她寫了個(gè)自動(dòng)出加減法的小程序。
該程序使用了文字轉(zhuǎn)語音的庫pyttsx,程序運(yùn)行時(shí),會(huì)有相對(duì)應(yīng)的語音提示。pyttsx文檔
為了防止小孩亂按鍵盤,導(dǎo)致非法輸入,我添加了異常處理:
def validate(num):#判斷輸入是否非法 try: num=int(num) except: say("非法輸入,請(qǐng)重新輸入") return False return True
完整的代碼如下:
import random import pyttsx #print(random.randint(0,9)) def say(s): engine=pyttsx.init() engine.setProperty('voice','HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\TTS_MS_ZH-CN_HUIHUI_11.0' ) engine.setProperty('rate', 250) engine.say(s) engine.runAndWait() def validate(num):#判斷輸入是否非法 try: num=int(num) except: say("非法輸入,請(qǐng)重新輸入") return False return True def askadd(a,b,c):#詢問加法 if a+b==int(c): print("答對(duì)了") say("答對(duì)了") else: print("答錯(cuò)了,正確答案是:"+str(a+b)) say("答錯(cuò)了,正確答案是:"+str(a+b)) def asksub(a,b,c):#詢問減法 if a==int(c): print("答對(duì)了") say("答對(duì)了") else: print("答錯(cuò)了,正確答案是:"+str(a)) say("答錯(cuò)了,正確答案是:"+str(a)) if __name__ == "__main__": k=1#統(tǒng)計(jì)題數(shù) while True: a=random.randint(1,20) b=random.randint(1,20) #a,b是加法中的兩個(gè)加數(shù);a+b被減數(shù),b減數(shù) #a,b的范圍為1-20 rule=random.randint(0, 1)#隨機(jī)生成加減法,1 is plus,0 is sub if rule==1: say('第'+str(k)+'題:'+str(a)+'+'+str(b)+'=') c=input('第'+str(k)+'題:'+str(a)+'+'+str(b)+'=') while not validate(c): c=input(str(a)+'+'+str(b)+'=') askadd(a, b, c) k=k+1 continue else: say('第'+str(k)+'題:'+str(a+b)+'減'+str(b)+'=') c=input('第'+str(k)+'題:'+str(a+b)+'-'+str(b)+'=') while not validate(c): c=input(str(a+b)+'-'+str(b)+'=') asksub(a, b, c) k=k+1 continue
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 用Python生成器實(shí)現(xiàn)微線程編程的教程
- Python函數(shù)生成器原理及使用詳解
- python顏色隨機(jī)生成器的實(shí)例代碼
- Python字典生成式、集合生成式、生成器用法實(shí)例分析
- 詳解C語言和Python中的線程混用
- Python 如何創(chuàng)建一個(gè)線程池
- Python3 socket即時(shí)通訊腳本實(shí)現(xiàn)代碼實(shí)例(threading多線程)
- Python多線程正確用法實(shí)例解析
- python多線程實(shí)現(xiàn)同時(shí)執(zhí)行兩個(gè)while循環(huán)的操作
- python 實(shí)現(xiàn)兩個(gè)線程交替執(zhí)行
- Python 使用生成器代替線程的方法
相關(guān)文章
使用Python實(shí)現(xiàn)MP4轉(zhuǎn)GIF
在日常生活中,我們經(jīng)常會(huì)遇到需要將 MP4 文件轉(zhuǎn)換為 GIF 文件的需求,本文將介紹一種使用 Python 實(shí)現(xiàn) MP4 轉(zhuǎn) GIF 程序的方法,這種方法簡(jiǎn)單易學(xué),而且完全免費(fèi),需要的可以參考下2023-12-12利用python解決mysql視圖導(dǎo)入導(dǎo)出依賴的問題
這篇文章主要給大家介紹了關(guān)于利用python解決mysql視圖導(dǎo)入導(dǎo)出依賴的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12Python3 MySQL 數(shù)據(jù)庫連接的使用示例
本文我們?yōu)榇蠹医榻B Python3 使用 PyMySQL 連接數(shù)據(jù)庫,并實(shí)現(xiàn)簡(jiǎn)單的增刪改查,需要的朋友可以參考下2021-06-06Python自動(dòng)掃雷實(shí)現(xiàn)方法
這篇文章主要介紹了Python自動(dòng)掃雷實(shí)現(xiàn)方法,提供了Python實(shí)現(xiàn)自動(dòng)掃雷的代碼思路并備有注釋說明,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07python讀取mnist數(shù)據(jù)集方法案例詳解
這篇文章主要介紹了python讀取mnist數(shù)據(jù)集方法案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09