?:的使用

先看如下代码:

import re

str = 'aabbbaafffccdddcc'

patter = re.compile('(aa.*?aa)|(cc.*?cc)',re.DOTALL)
date = patter.findall(str)
print(date)

执行结果如下:

[('aabbbaa', ''), ('', 'ccdddcc')]

这里我们想提取aa…aa或者cc…cc的内容,但是返回的结果却是列表嵌套元组的形式,并不是我们想要的结果,我们就需要改变这种子存储的结构,让其作为一个单元存储

import re

str = 'aabbbaafffccdddcc'

patter = re.compile('(?:aa.*?aa)|(?:cc.*?cc)',re.DOTALL)
date = patter.findall(str)
print(date)

执行结果如下:

['aabbbaa', 'ccdddcc']
module dianziqin( input clk2, // 系统时钟(50MHz) input [17:0] Key, // 18个按键输入(高电平有效) output reg F = 0 // 方波输出(初始0) ); // 音调编码部分 - 高电平有效 reg [7:0] tone; // 存储音调值 always @(*) begin casez(Key) // 所有音符周期 < 100us (频率 > 10kHz) // 完整18位模式,使用?表示不关心的位 18'b???????????????1??: tone = 8'd249; // 10.0kHz (按键0) 18'b??????????????10??: tone = 8'd231; // 10.8kHz (按键1) 18'b?????????????100??: tone = 8'd214; // 11.7kHz (按键2) 18'b????????????1000??: tone = 8'd198; // 12.6kHz (按键3) 18'b???????????10000??: tone = 8'd183; // 13.7kHz (按键4) 18'b??????????100000??: tone = 8'd169; // 14.8kHz (按键5) 18'b?????????1000000??: tone = 8'd156; // 16.0kHz (按键6) 18'b????????10000000??: tone = 8'd144; // 17.3kHz (按键7) 18'b???????100000000??: tone = 8'd133; // 18.8kHz (按键8) 18'b??????1000000000??: tone = 8'd123; // 20.3kHz (按键9) 18'b?????10000000000??: tone = 8'd114; // 21.9kHz (按键10) 18'b????100000000000??: tone = 8'd105; // 23.8kHz (按键11) 18'b???1000000000000??: tone = 8'd97; // 25.8kHz (按键12) 18'b??10000000000000??: tone = 8'd90; // 27.8kHz (按键13) 18'b?100000000000000??: tone = 8'd83; // 30.1kHz (按键14) 18'b1000000000000000??: tone = 8'd77; // 32.5kHz (按键15) 18'b000000000000000?1?: tone = 8'd71; // 35.2kHz (按键16) 18'b0000000000000000?1: tone = 8'd66; // 37.9kHz (按键17) default: tone = 8'd0; // 无按键 endcase end // 分频器部分 reg [15:0] counter = 0; // 主计数器 wire period_end = (counter >= {8'd0, tone}); // 周期结束标志 always @(posedge clk2) begin if(tone == 0) begin counter <= 0; F <= 0; end else begin if(period_end) begin counter <= 0; F <= ~F; // 翻转输出 end else begin counter <= counter + 1; end end end endmodule将这段电子琴代码改为用ep4ce115f29c7的led代替蜂鸣器输出
最新发布
06-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值