Python模擬鋼琴鍵盤(pán)實(shí)現(xiàn)演奏數(shù)鴨子歌曲
前言
前幾天上課老師給我們講了兩個(gè)模塊,然后利用這兩個(gè)模塊來(lái)模擬鋼琴鍵盤(pán)去簡(jiǎn)單地演奏《數(shù)鴨子》今天來(lái)分享給大家。
模塊1:winsound
模塊2:keyboard
winsound模塊
winsound模塊提供對(duì)windows平臺(tái)的基本聲音播放功能的訪(fǎng)問(wèn),他還包含函數(shù)和一些常量。
1.安裝winsound模塊
在cmd窗口下輸入
pip install winsound
2.導(dǎo)入模塊
import winsound
3.winsound模塊下的函數(shù)
winsound.Beep(frequency, duration)
嗶嗶聲PC揚(yáng)聲器,頻率參數(shù)frequency指定聲音的頻率,以Hz為單位,必須在37~32767的范圍內(nèi)。持續(xù)時(shí)間參數(shù)duration指定聲音應(yīng)該持續(xù)的毫秒數(shù)。如果系統(tǒng)不能發(fā)出喇叭聲,會(huì)提RuntimeError錯(cuò)誤。
因?yàn)檫@里能用到的函數(shù)就一個(gè),其他的函數(shù)就不過(guò)多解釋了。
keyboard模塊
keyboard模塊就很容易理解了,就是用來(lái)控制鍵盤(pán)的相關(guān)事件。
1.安裝模塊
pip install keyboard
2.導(dǎo)入模塊
import keyboard
以下就是keyboard模塊的基本功能
1.允許我們阻止特定按鈕的動(dòng)作
2.我們可以使用點(diǎn)擊監(jiān)視器從鍵盤(pán)管理意圖
3.跨平臺(tái)兼容性
4.支持鍵盤(pán)上可用的特殊熱鍵。
現(xiàn)在直接上干貨↓
《數(shù)鴨子》簡(jiǎn)譜
源代碼
import winsound # 導(dǎo)入winsound模塊 import keyboard # 導(dǎo)入keyboard模塊 while True: # 循環(huán) # 中音 # Returns True if the key is pressed,如果被按下就發(fā)出聲音 if keyboard.is_pressed('1'): winsound.Beep(262*2, 400) if keyboard.is_pressed('2'): winsound.Beep(294*2, 400) if keyboard.is_pressed('3'): winsound.Beep(330*2, 400) if keyboard.is_pressed('4'): winsound.Beep(349*2, 400) if keyboard.is_pressed('5'): winsound.Beep(392*2, 400) if keyboard.is_pressed('6'): winsound.Beep(440*2, 400) if keyboard.is_pressed('7'): winsound.Beep(494*2, 400) # 低音 # Returns True if the key is pressed,如果被按下就發(fā)出聲音 if keyboard.is_pressed('z'): winsound.Beep(262, 400) if keyboard.is_pressed('x'): winsound.Beep(294, 400) if keyboard.is_pressed('c'): winsound.Beep(330, 400) if keyboard.is_pressed('v'): winsound.Beep(349, 400) if keyboard.is_pressed('b'): winsound.Beep(392, 400) if keyboard.is_pressed('n'): winsound.Beep(440, 400) if keyboard.is_pressed('m'): winsound.Beep(494, 400) # 高音 # Returns True if the key is pressed,如果被按下就發(fā)出聲音 if keyboard.is_pressed('a'): winsound.Beep(294*2, 400) if keyboard.is_pressed('s'): winsound.Beep(294*2, 400) if keyboard.is_pressed('d'): winsound.Beep(294*2, 400) if keyboard.is_pressed('f'): winsound.Beep(294*2, 400) if keyboard.is_pressed('g'): winsound.Beep(294*2, 400) if keyboard.is_pressed('h'): winsound.Beep(294*2, 400) if keyboard.is_pressed('j'): winsound.Beep(294*2, 400) else: pass # 琴鍵上的高音"do"是電腦上的"a"鍵,要注意一下
運(yùn)行結(jié)果
直接在運(yùn)行框里輸入就行,運(yùn)行框內(nèi)的空格和豎線(xiàn)是為了更好的理解。
到此這篇關(guān)于Python模擬鋼琴鍵盤(pán)實(shí)現(xiàn)演奏數(shù)鴨子歌曲的文章就介紹到這了,更多相關(guān)Python模擬鋼琴鍵盤(pán)演奏歌曲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中__slots__節(jié)約內(nèi)存的具體做法
在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python中__slots__節(jié)約內(nèi)存的具體做法,有需要的朋友們可以跟著學(xué)習(xí)參考下。2021-07-07詳解Python中表達(dá)式i += x與i = i + x是否等價(jià)
這篇文章主要介紹了關(guān)于Python中表達(dá)式i += x與i = i + x是否等價(jià)的相關(guān)資料,文中通過(guò)示例代碼介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起看看吧。2017-02-02python編程冒泡排序法實(shí)現(xiàn)動(dòng)圖排序示例解析
這篇文章主要介紹了python編程中如何使用冒泡排序法實(shí)現(xiàn)動(dòng)圖排序的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10Python中字符串String的基本內(nèi)置函數(shù)與過(guò)濾字符模塊函數(shù)的基本用法
這篇文章主要介紹了Python中字符串String的基本內(nèi)置函數(shù)與過(guò)濾字符模塊函數(shù)的基本用法 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05中秋送禮分配不均這款python刮刮卡完美解決問(wèn)題
這篇文章主要介紹了用Python實(shí)現(xiàn)一個(gè)抽獎(jiǎng)刮刮卡來(lái)解決給小朋友的禮物不均,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2021-09-09Python字典常見(jiàn)操作實(shí)例小結(jié)【定義、添加、刪除、遍歷】
這篇文章主要介紹了Python字典常見(jiàn)操作,結(jié)合實(shí)例形式總結(jié)分析了Python字典的定義、添加、刪除、遍歷等常見(jiàn)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-10-10