鱼C论坛

 找回密码
 立即注册
查看: 2896|回复: 5

[已解决]对于函数中的变量与元组

[复制链接]
发表于 2016-5-18 22:14:32 | 显示全部楼层 |阅读模式

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

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

x
答案给的解析说:
        函数需要的是变量,这里试图用的是“元组”是不可行的。这句话我是理解的
但是对于
>>> def MyFun(x, y):
        return x[0] * x[1] - y[0] * y[1]

>>> MyFun((3, 4), (1, 2))
10


1)x,y是变量了,但是调用函数的时候传入的是“元组”,这样就是可以的了吗?即定义的时候是变量,调用的时候可以是任何形式
2)还是说x,y是“元组”型的变量


是不是1)更正确些!
期待大神指教!
最佳答案
2016-5-18 22:35:28
这里面的区别在于:第一种写法,(x,y)实际上是定义了一个元组,而不是变量,元组中的元素是不可改变的,这对函数来说当然不可接受。
但对于函数的变量来说,传入任何类型的数据都是可以接受的,当然是否能符合函数内的方法和操作,就不一定了。对例子来讲,如果传入的参数,是3,4,应该是错误的吧?
QQ截图20160518220736.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-18 22:35:28 | 显示全部楼层    本楼为最佳答案   
这里面的区别在于:第一种写法,(x,y)实际上是定义了一个元组,而不是变量,元组中的元素是不可改变的,这对函数来说当然不可接受。
但对于函数的变量来说,传入任何类型的数据都是可以接受的,当然是否能符合函数内的方法和操作,就不一定了。对例子来讲,如果传入的参数,是3,4,应该是错误的吧?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-19 16:06:40 | 显示全部楼层
vpo1 发表于 2016-5-18 22:35
这里面的区别在于:第一种写法,(x,y)实际上是定义了一个元组,而不是变量,元组中的元素是不可改变的,这 ...

是正确的,我放到python上试了,确实打印的结果是10
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-20 10:05:37 | 显示全部楼层
我说的是,如果MyFun(3,4)这样,应该就会出错吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-20 10:14:29 | 显示全部楼层
vpo1 发表于 2016-5-20 10:05
我说的是,如果MyFun(3,4)这样,应该就会出错吧

python是动态语言,变量是不需要先声明的,拿来就用,参数是什么类型的,也随你喜欢,参数x可以是整数,元祖,列表,甚至是一个函数,都无所谓,关键是看你在函数内部怎么处理他,MyFun(3,4),肯定会是报错的,因为在函数的内部处理中有x[0],显然一个整数是没有下标的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-22 20:44:40 | 显示全部楼层
vpo1 发表于 2016-5-20 10:05
我说的是,如果MyFun(3,4)这样,应该就会出错吧

嗯,是的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-21 02:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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