鱼C论坛

 找回密码
 立即注册
查看: 2311|回复: 7

[已解决]求求了,小白请教一个问题

[复制链接]
发表于 2020-5-6 22:24:08 | 显示全部楼层 |阅读模式

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

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

x
题目:
获得用户输入的一个正整数输入,输出该数字对应的中文字符表示。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
0到9对应的中文字符分别是:零一二三四五六七八九

代码答案:
template = "零一二三四五六七八九"

s = input()
for c in s:
    print(template[eval(c)], end="")

完全看不懂惹。。。。。。这个template是什么神奇的函数。。。。。
百度也一脸懵
最佳答案
2020-5-7 09:35:25
template就是一个字符串
这是通过for循环和eval函数将输入的数字转为对应的汉字的
eval是将字符串转为表达式,在这里就是讲输入的数字字符转为对应的数字
例如:输入138,那么字符串s为'138'
for循环遍历字符串s,
第一次循环,c='1',eval(c)就是数字1,print(template[1],end="")就是输出template中下标为1的字符,即“一”
第二次循环,c='3',eval(c)就是数字3,print(template[3],end="")就是输出template中下标为3的字符,即“三”
第三次循环,c='8',eval(c)就是数字8,print(template[8],end="")就是输出template中下标为8的字符,即“八”
最终得到的就是一三八
输入其他数字字符是一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-6 22:24:51 | 显示全部楼层
上面那个咋出现这么多乱码。。。。
题目:
获得用户输入的一个正整数输入,输出该数字对应的中文字符表示。
0到9对应的中文字符分别是:零一二三四五六七八九

代码答案:
template = "零一二三四五六七八九"

s = input()
for c in s:
    print(template[eval(c)], end="")

完全看不懂惹。。。。。。这个template是什么神奇的函数。。。。。
百度也一脸懵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 23:02:54 | 显示全部楼层
template不是函数,是一个字符串
遍历s
eval(c)返回整形c  (eval就是把传入的字符串当成代码一样执行)
然后索引template的第eval(c)个元素并打印
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 09:07:04 From FishC Mobile | 显示全部楼层
template 是一个字符串,前面定义过的
由于输入的是一个正整数,但 input() 获取的输入都是字符串,所以要用 eval(c) 转化(这里用 int(c) 也可以)
for 遍历字符串,每一次都通过对应的数字得到汉字对应的下标(比如你输入01,那么
for 就会遍历两次 c ,然后 template[0] 就是 '零',template[1] 就是 '一')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-7 09:11:54 | 显示全部楼层
template 就是个普通变量名而已,你用x代替也可,不过后面的template也要全 变x
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 09:35:25 | 显示全部楼层    本楼为最佳答案   
template就是一个字符串
这是通过for循环和eval函数将输入的数字转为对应的汉字的
eval是将字符串转为表达式,在这里就是讲输入的数字字符转为对应的数字
例如:输入138,那么字符串s为'138'
for循环遍历字符串s,
第一次循环,c='1',eval(c)就是数字1,print(template[1],end="")就是输出template中下标为1的字符,即“一”
第二次循环,c='3',eval(c)就是数字3,print(template[3],end="")就是输出template中下标为3的字符,即“三”
第三次循环,c='8',eval(c)就是数字8,print(template[8],end="")就是输出template中下标为8的字符,即“八”
最终得到的就是一三八
输入其他数字字符是一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-14 10:49:57 | 显示全部楼层
本帖最后由 sunrise085 于 2020-5-14 10:51 编辑

@qiuyouzhi 版主,帮忙评个最佳,题主解决问题后就不见了。。版主帮个忙
你现在是正式版主,应该有权限了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-14 10:51:47 | 显示全部楼层
sunrise085 发表于 2020-5-14 10:49
@qiuyouzhi 版主,帮忙评个最佳,题主结局问题后就不见了。。版主帮个忙
你现在是正式版主,应该有权限了 ...

@zltzlt
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 08:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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