loc=(12.83,11)
(a,b)=loc
(b,a)=(a,b)
loc=(a,b)
print(loc)
还有下面这个式子中,为什么(r,g,b)可以在for loop里被定义呢?(r,g,b)=img[r][c]和img[r][c]=(r,g,b)有什么区别呢?
def red_filter(img):
w=width(img)
h=height(img)
for r in range(h):
for c in range(w):
(r,g,b)=img[r][c]
image[r][c]=(0,g,b)
谢谢!!
(a,b)=loc使得a=12.83,b=11,(b,a)=(a,b)使得a和b的值进行了交换,因此最后a=11,b=12.83
第7,8行是将颜色值中的r分量设置为0啊。
(r,g,b)=img[r][c]和img[r][c]=(r,g,b)有什么区别呢?---一来本身代码第二行是img[r][c] = (0,g,b),不是(r,g,b),所以不一样;二来这就像a = b和b=a的区别一样,左值是被修改对象,自然不一样
(b,a)=(a,b)表示a和b互换值
(b,a)=(a,b)
等价于
b,a=a,b
就是先取到a,b的值,放到缓存里(一个新元组里),然后分别赋值给b和a
你可以看成是同时的,没有先后顺序的
原理就是做了一次交换,只有(a,b)=(b,a)时发生了改变。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!