打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python基础知识:以实例学随机数产生和字符/ASCII码转换

实例说明

使用Python语言,产生20个“a-z”之间的随机字符序列。

基本实现方法1

使用python内置的random模块产生随机数,我们知道字符“a”和“z”对应的ASCII码分别为97122,所以对于题目要求产生“a-z”之间的随机字符序列,只需使用random模块产生97-122之间的随机数,然后将其转换为对应的字符即可。其中,字符转数字的函数为ord函数,数字转字符的函数为chr函数。根据这个思路,实现代码如下图所示:

 

  

上面代码中,先创建一个空列表a,在for循环中,每次产生一个ord(a)-ord(z)之间(即97-122之间)的随机数,再将其使用chr转换为字符,添加到列表a中,循环20次后,即可产生20个“a-z”之间的随机字符序列。

改进方法2

将方法1中列表a的产生,使用map函数实现,列表中每个随机字符的产生在lambda函数内部实现,代码如下图所示:

 

  

改进方法3

思路是先使用列表推导式产生一个a-z”之间的顺序字符序列,然后在maplambda函数里面,每次使用random模块的choice函数从顺序字符序列中随机抽取一个字符,得到最后的随机字符序列a,代码如下图所示:

 

  

改进方法4

思路同方法3完全一样,唯一的区别是,在产生一个“a-z”之间的顺序字符序列时,使用的了Python内置string库的ascii_lowercase得到这个顺序序列。代码如下图所示:

 

  

改进方法5

这种方法使用了numpy库,用该库提供的random模块的randint函数直接产生2097-122之间的随机数数组,然后再用列表推导式将每个随机数使用chr函数将其转换为字符,从而得到整个“a-z”之间的随机字符序列。代码如下图所示:

 

  

完整的测试代码

完整的测试代码如下图所示:

 

  

 

运行结果如下图所示:

 

  

总结

这个题目虽小,但涉及到的Python编程的基础知识点挺多,包括:随机数的产生、字符/ASCII码相互转换、列表推导式、map/lambda/for等函数的使用。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python 随机数函数(random,uniform,randint,randrange,shuffle,sample)
敲黑板~~柠檬教你Python随机函数的使用详解
机器学习和推荐系统(十一)
Python3 自学第4天:字符串
python strip() 函数和 split() 函数的详解及实例
DC免费课程(二)|15分钟Python基础知识全掌握
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服