python将原字符串自定义按字符的ASCII码值顺序后输出(python ascii码转数字)

实例说明

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

基本实现方法1

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

python将原字符串自定义按字符的ASCII码值顺序后输出(python ascii码转数字)

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

改进方法2

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

python将原字符串自定义按字符的ASCII码值顺序后输出(python ascii码转数字)

改进方法3

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

python将原字符串自定义按字符的ASCII码值顺序后输出(python ascii码转数字)

改进方法4

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

python将原字符串自定义按字符的ASCII码值顺序后输出(python ascii码转数字)

改进方法5

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

python将原字符串自定义按字符的ASCII码值顺序后输出(python ascii码转数字)

完整的测试代码

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

python将原字符串自定义按字符的ASCII码值顺序后输出(python ascii码转数字)

运行结果如下图所示:

python将原字符串自定义按字符的ASCII码值顺序后输出(python ascii码转数字)

总结

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

上面给出了5种实现方法,大家如果有更好的实现方法,欢迎大家留言讨论。

欢迎加关注,共同交流。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论