鱼C论坛

 找回密码
 立即注册
查看: 1988|回复: 8

[已解决]请问小甲鱼的这个程序为什么可以跑起来

[复制链接]
发表于 2021-5-19 21:40:44 | 显示全部楼层 |阅读模式

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

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

x
QQ截图20210519213959.png 如图所示 为什么不会报错呢
最佳答案
2021-5-20 13:20:45
水滴石穿007 发表于 2021-5-19 22:08
谢谢回复 但是 第5行 不是把整形赋值给 result了吗



第五行的代码是 result 被赋值为 Dec2Bin 函数的返回值,只是这个函数的参数是整型,并不代表函数返回值是整型

然后让我们来看看 Dec2Bin 函数设置的返回值 return 是什么,函数中初始化时设置 result 为空字符串,显然此时为 字符串型

然后我们看函数 中仅有的两个 return , if 中的 return 是 result 与 str()  的拼接

而 else 代码块中的 return 直接返回的是 result 本身

从始至终都没被赋值为整型,且初始化时还是字符串,运行过程也是字符串赋值,所以整个函数返回的就是字符串类型的数据~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-19 21:46:48 | 显示全部楼层
你为啥会认定 result 是 int 呢?函数不是定义 result = '' 了吗,明显是字符串啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-19 21:58:56 | 显示全部楼层


是传入参数 dec 为 int 类型数据

而 result 是被赋值 str() 转化 dec%2 后的数值为字符串进行字符串拼接

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

使用道具 举报

 楼主| 发表于 2021-5-19 22:08:24 | 显示全部楼层
hrp 发表于 2021-5-19 21:46
你为啥会认定 result 是 int 呢?函数不是定义 result = '' 了吗,明显是字符串啊


谢谢回复 但是第5行 不是把整形赋值给 result了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-19 22:08:59 | 显示全部楼层
Twilight6 发表于 2021-5-19 21:58
是传入参数 dec 为 int 类型数据

而 result 是被赋值 str() 转化 dec%2 后的数值为字符串进行字符串 ...

谢谢回复 但是 第5行 不是把整形赋值给 result了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-19 22:18:15 | 显示全部楼层
水滴石穿007 发表于 2021-5-19 22:08
谢谢回复 但是第5行 不是把整形赋值给 result了吗

Dec2Bin 返回的也是字符串:else分支的 result, if 分支的 result + str(dec%2),并没有出现你说的整型哦,所以第 5 行 result 被赋值的值也是字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-19 22:24:55 | 显示全部楼层
水滴石穿007 发表于 2021-5-19 22:08
谢谢回复 但是 第5行 不是把整形赋值给 result了吗

它后面不是有str(dec%2)嘛,那就是字符串呀
相加怎么就矛盾呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-20 08:40:08 | 显示全部楼层
本帖最后由 Peteryo01223 于 2021-5-20 08:57 编辑

从纯数学的角度,你可以说 result 为 整数,因为你写了地板除法的语句。但,在 Python 看来,这个整数,依然是一个 str。
类似于《白蛇传》里,从许仙的角度,你可以说白素贞他的妻子,是个人了。但,在法海看来,她依然是个妖精,所以把它像处理其他妖精一样地抓起来,法海觉得很正常,许仙则接受不了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-20 13:20:45 | 显示全部楼层    本楼为最佳答案   
水滴石穿007 发表于 2021-5-19 22:08
谢谢回复 但是 第5行 不是把整形赋值给 result了吗



第五行的代码是 result 被赋值为 Dec2Bin 函数的返回值,只是这个函数的参数是整型,并不代表函数返回值是整型

然后让我们来看看 Dec2Bin 函数设置的返回值 return 是什么,函数中初始化时设置 result 为空字符串,显然此时为 字符串型

然后我们看函数 中仅有的两个 return , if 中的 return 是 result 与 str()  的拼接

而 else 代码块中的 return 直接返回的是 result 本身

从始至终都没被赋值为整型,且初始化时还是字符串,运行过程也是字符串赋值,所以整个函数返回的就是字符串类型的数据~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-27 08:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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