欢迎光临散文网 会员登陆 & 注册

Python的字典用法 音符所占百分比 (如何用Python编写音乐)

2021-01-23 17:25 作者:GXTon_阿通  | 我要投稿

这是一个新的坑,我打算用Python编写一个midi生成程序,不知道自己能够坚持多久,看一下有没有人看吧.目前打算是用"遗传算法"生成midi.

今天打算讲解如何利用字典,来实现音符出现概率的统计.

也就是一首曲子中,某个音符出现的百分比.

这部分打算用字典实现.


字典是Python中的一个数据结构.

比如, 一个人的成绩,  语文:90 数学:70 英语:60

那么就可以用字典来表示.表示方法如下:

dic={"Chinese":90,"Math":70,"English":60}

如上面这样,一个成绩的字典dic就建立好了.

"Chinese" "Math" "English" 这些叫做字典的"键"

90 70 60这些叫做字典的"值"

通过"键"可以访问"值"

比如dic["English"] 它的结果就是60;


与上面类似,我们需要知道一个音符在整首曲子中用到了多少次,或所占的百分比.

也可以用字典实现.

一个音符在Python程序中,就是一个数字而已,一首曲子在Python程序中就是一个数字序列.

比如 song=[1,2,3,4,  1,2,3,4,  1,2,3,4,  1] 就可以在Python中代表一首曲子啦.当然真是情况可能不会这么简单.

目前就用这个序列做个实验吧.

我们要统计一首曲子song序列中各个音符:1,2,3,4,分别出现了多少次,然后所占百分比也就可以求出来了.

1,2,3,4就是字典的"键"  ,至于字典的"值"就是出现的次数,需要我们统计.

输出的结果

我们可以看到,最终

1:4   ->1这个音符出现了4次

2:3   ->2这个音符出现了3次

3:3   ->3这个音符出现了3次

4:3   ->4这个音符出现了3次

完全符合我们的预期,当然也可以用其他的方式.(不一定要用字典的...)


这样输出来的字典并不是很直观,于是我想到了用图片表示它,这里用饼状图吧.

温馨提示一下:如果你想写一个大工程,就要有规划,上面是数据分析,生成字典.可以放到一个.py文件中.画图就不属于数据处理了,可以重新建立一个.py文件,用于专门编写一些生成图片的函数.(比如饼状图,折线图,曲线图,柱状图...都可以放到绘图.py文件中,有利于模块化的管理)


下面我新建立了一个文件:DY_plot_0.py 名字可以随便起的.它的作用就是,里面编写了各种各样的绘图函数,然后,某个时候要绘图时,可以调用这个文件.

先添加一些头文件:在DY_plot_0.py文件中.

然后编写一个绘制饼状图的函数:

然后就可以绘图了.

然后运行一下:

就会把字典:

1:4   ->1这个音符出现了4次

2:3   ->2这个音符出现了3次

3:3   ->3这个音符出现了3次

4:3   ->4这个音符出现了3次

转换成更加直观的图片了:

饼状图会自动转换成所占百分比

我希望自己能够坚持下去,用Python实现一个midi文件,前方路还很远,只能在假期去做.自己还有很多音乐的知识不是很懂.希望大家支持 :-)

Python的字典用法 音符所占百分比 (如何用Python编写音乐)的评论 (共 条)

分享到微博请遵守国家法律