鱼C论坛

 找回密码
 立即注册
查看: 2870|回复: 4

[已解决]关于利用ASCII码转换字母大小写的问题

[复制链接]
发表于 2018-2-28 20:50:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
程序编写目的:
当用户输入一个字母时,自动判定其为大写还是小写,并将其转换为另外一个格式(如果是大写,就转换为小写,反之亦然)

遇到问题:
本意是想将用户输入的字母转换为ASCII码后,判定大写还是小写后,
如果是小写
就将用户输入的字母转换的ASCII码,直接减去32,得到对应的大写ASCII码,再讲这个ASCII码转换为字符串打印出来
目前问题就出在这一行代码上
upper_letter_code = letter_code - 32

初步代码如下:

#大小写转换器
print ( "——————大小写转换器——————" )

#提示用户输入大写或者小写
switch_requst = input ( "请输入你需要进行转换的大写/小写字母:" )
letter_code = eval( str ( ord ( switch_requst ) ) )
judge_num = 96   #ASCII码中,小写a对应的编码是97,因此引入96这个数值作为判定依据

#首先判断用户输入的是大写还是小写字母
if letter_code > judge_num :
    letter_format = "小写"
    upper_letter_code = letter_code - 32
else:
    letter_format = "大写"

#这两个打印只是为了判定上面的转换是否正确,完成后会注释掉
print ( letter_format )
print ( upper_letter_code )


谢谢各位大大!
最佳答案
2018-2-28 21:04:34
本帖最后由 8306最硬 于 2018-2-28 21:13 编辑

ord() 函数只是把字符转为ascii码
最后要得到字符还要chr()函数,把ascii码转为字符
  1. print ( chr(upper_letter_code) )
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-28 20:51:37 | 显示全部楼层
letter_code = eval( str ( ord ( switch_requst ) ) )
这一行代码的 eval 和 str 两个函数,是尝试转换格式的,但是貌似不行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 21:02:37 | 显示全部楼层
是想转换为ascii码吗,好像不用这么麻烦,直接
  1. ord ( switch_requst )
复制代码

这样出来就是int类型了额
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 21:04:34 | 显示全部楼层    本楼为最佳答案   
本帖最后由 8306最硬 于 2018-2-28 21:13 编辑

ord() 函数只是把字符转为ascii码
最后要得到字符还要chr()函数,把ascii码转为字符
  1. print ( chr(upper_letter_code) )
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 08:58:38 | 显示全部楼层
str类用自动切换大小写的函数
swapcase()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 22:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表