感觉很奇怪的一道python笔试题。

2013-09-03 09:17:58 +08:00
 KMHook
同学问道下面这个问题:

你认为下面的代码是否存在错误呢?如有,请修改

def check_data(info):
name, age, height = info
id = get_id_by_name(name)
return validate(id, age)

print check_data([‘xiaoming’,12,170])

看上去挺奇怪的,一定说有错的话,我只看到‘xiaoming’这用的是中文的引号。
求教,是否还有别的地方有错呢?
注:缩进都没问题。
4972 次点击
所在节点    Python
22 条回复
mengzhuo
2013-09-03 09:27:02 +08:00
看不出
不是Pythonic算不算?
larkifly
2013-09-03 09:36:14 +08:00
看了半天没看出来,期待楼下回答
cxshun
2013-09-03 09:40:11 +08:00
真没看出啥问题啊,楼主XD继续。中文引号,貌似不是啊,是英文的引号啊。难道是指缩进问题?
linnchord
2013-09-03 09:40:45 +08:00
估计是校验、异常、风格啥的,3行代码有2个未知外部调用,含混不清。

这种题目通常是出题人拍脑袋生搬硬套出来的,不及格的笔试题。
jianghu52
2013-09-03 09:42:56 +08:00
黏贴跑了一下。引号有问题,另外,还报错是说是get_id_by_name 这个方法没定义。
sethverlo
2013-09-03 09:43:49 +08:00
感觉是开放性的题吧……

比如说没有类,比如说不知道有没有对 name 进行检查,比如说 check_data 和 validate 一起出现有点儿奇怪的感觉……
sethverlo
2013-09-03 09:44:15 +08:00
@jianghu52 这个肯定没法直接跑的……validate 也没定义。
scusjs
2013-09-03 09:44:17 +08:00
我看到的第一个问题是缩进。。。。
felinx
2013-09-03 09:51:45 +08:00
大家没有注意到id是关键字吗?

另外
name, age, height = info
这个是非常容易出错的
sethverlo
2013-09-03 09:53:15 +08:00
@felinx

>>> print id
<built-in function id>
>>> id = 3
>>> print id
3
yeelone
2013-09-03 10:06:20 +08:00
没看出来错在哪里 ,等解释
felinx
2013-09-03 10:08:44 +08:00
@sethverlo

不是说运行有问题,是不推荐这么做,关键字最好不要当变量或方法名,假设后面的代码要用到id呢?
Kabie
2013-09-03 10:20:28 +08:00
@felinx 严格地说这不是关键字是内置函数吧……这里是小函数内部立刻返回了也不会有太大关系……

当然这确实是不好的做法……虽然我觉得还够不上错误……
sethverlo
2013-09-03 10:22:26 +08:00
@felinx 我上面也说了,我觉得这是个开放性的题……语法错误可能没有,但是别的错误倒是可以挑一堆出来……
mengzhuo
2013-09-03 10:32:59 +08:00
@felinx 各种ORM用filter,id, hash笑而不语
leoleozhu
2013-09-03 10:41:08 +08:00
是只验证了age,而没有验证height么?
Jowei
2013-09-05 10:30:50 +08:00
我当时加个自以为的 try ...except...
然后把那个多余的传入值给干掉了。

也不是很清楚,这道题到底要干嘛。
leiz
2013-09-05 10:46:42 +08:00
函数内关键字,不确定的话,前面加'_',例: _id
clippit
2013-09-05 11:01:15 +08:00
height传入有啥用?
qzero
2013-09-05 11:30:41 +08:00
没有验证参数列表的长度。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/81139

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX