找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 392|回复: 3
打印 上一主题 下一主题

命令list与撇号的区别问题

[复制链接]

65

主题

322

帖子

583

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
583
跳转到指定楼层
1#
发表于 2014-5-26 11:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

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

x
使用撇号创建list
a='((1 2) (3 4) 5 6)
结果
((1 2)
    (3 4) 5 6
)

使用命令list来创建
a=list((1 2) (3 4) 5 6)
结果
E- *Error* eval: not a function - 1
ERROR

为什么使用撇号可以直接的创建?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

57

主题

181

帖子

2349

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2349
2#
发表于 2014-5-27 10:14 | 只看该作者
本帖最后由 yneda 于 2014-5-27 10:16 编辑

从字面上理解,()前面要一个函数名,语法错误? 比如list或带反回值的函数,改成这样是可以的:
a = list(list(1 2) list(3 4) 5 6)
=>((1 2) (3 4) 5 6)
查了别人写的资料,有说当有字符出现的时候,用list创建的话,前面要加’
比如:
a = "abc"
list(a)=>("abc")
这里a是一个变量

list('a)=>(a) 等同与 '(a)=>(a)
这里a是一个字符

至于两者的区别,还不是很明白,望有会的人讲解下。

65

主题

322

帖子

583

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
583
3#
 楼主| 发表于 2014-5-27 10:45 | 只看该作者
撇号 在 skill language user guide 内的第二章“skill 中的特殊符号”一章中的解释是“引用表达式而不是其值”
用在变量前时还好理解
Skill > a=1
1
Skill > b='a
a
Skill > b
a
Skill > a
1
Skill > eval(b)
1
但是用于创建list时就不是很理解了

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

4#
发表于 2014-5-29 21:29 | 只看该作者
l888888h 发表于 2014-5-27 10:45
撇号 在 skill language user guide 内的第二章“skill 中的特殊符号”一章中的解释是“引用表达式而不是其 ...

可以这样理解,'创建list时,是直接引用数值,例如'((1 2) (3 4) 5 6),其中的(1 2)在Skill中就是表示一个List实体

使用List来创建时,会对元素进行eval求值,如你所写
a=list((1 2) (3 4) 5 6)
其中对(1 2)会进行eval求值操作,而(1 2)仅表示一个list实体,没办法进行eval求值,你可以试下以下代码,会有同样错误产生

本帖子中包含更多资源

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

x
谁画出这天地 又画下我和你
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-16 01:55 , Processed in 0.065910 second(s), 34 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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