843903652 发表于 2023-4-30 16:45:16

这两个蛋是怎么实现交换的

书本P40
>>>egg【1】,egg【1】&egg【1】,egg【1】
>>>egg
【'鸡蛋','铁蛋','鹅蛋','鸭蛋’】
是怎么实现的,有人能解释一下吗

isdkz 发表于 2023-4-30 16:47:26

本帖最后由 isdkz 于 2023-4-30 16:50 编辑

根据您所提供的信息,这个问题涉及到编程方面的知识,主要是关于数组和索引的使用。

首先,我们有一个名为“egg”的数组,包含四个元素:'鸡蛋','铁蛋','鹅蛋',和'鸭蛋'。数组中每个元素都有一个与之对应的索引值,从0开始计算。在这个例子中,'鸡蛋'的索引值是0,'铁蛋'是1,'鹅蛋'是2,'鸭蛋'是3。

书本P40中的代码:
>>>egg,egg&egg,egg


这段代码首先访问数组中索引为1的元素(即'铁蛋'),然后将其与自身进行按位与运算。按位与运算是一种二进制运算,用于比较两个数字的每一位,如果两个数字在同一位置上的位都是1,则结果在该位置上的位为1,否则为0。

在这个例子中,我们可以假设'铁蛋'对应的数字是'a'。那么代码执行的过程如下:
a & a = a


所以最后的结果是egg,即'铁蛋'。

然而,根据您的问题,您想要了解的是如何实现两个蛋之间的交换。为了实现两个蛋之间的交换,我们可以使用一个临时变量来存储其中一个蛋的值,然后将另一个蛋的值赋给第一个蛋,最后将临时变量的值赋给第二个蛋。以下是一个简单的示例:

# 假设我们想要交换'鸡蛋'和'铁蛋'的位置
temp = egg# 将'鸡蛋'的值存储在临时变量temp中
egg = egg# 将'铁蛋'的值赋给egg
egg = temp# 将临时变量temp中存储的'鸡蛋'的值赋给egg

# 此时,egg数组变为:['铁蛋', '鸡蛋', '鹅蛋', '鸭蛋']


这就是如何实现两个蛋之间的交换。希望这可以帮助您解决问题!

歌者文明清理员 发表于 2023-4-30 17:07:20

egg,egg=egg,egg

843903652 发表于 2023-4-30 17:12:39

来回倒水我是理解的,但是我不太明白的是书本里头的适当地“偷懒”
>>>egg,egg= egg,egg
>>>eggs
【'鸡蛋','铁蛋','鹅蛋','鸭蛋’】

yinda_peng 发表于 2023-4-30 19:24:33

843903652 发表于 2023-4-30 17:12
来回倒水我是理解的,但是我不太明白的是书本里头的适当地“偷懒”
>>>egg,egg= egg,egg
>>> ...

就是利用了元组来便捷地互换两个元素的值,原理就是元组的打包和解包过程,就是先把egg和egg打包成一个元组,然后又把这个元组解包,把其中的值分配给相对应数量的变量,这里就是把(egg,egg)#这里面的egg和egg就可以理解成两个常量值了#解包给egg和egg,即egg = egg以及egg = egg

yinda_peng 发表于 2023-4-30 19:27:35

843903652 发表于 2023-4-30 17:12
来回倒水我是理解的,但是我不太明白的是书本里头的适当地“偷懒”
>>>egg,egg= egg,egg
>>> ...

要注意打包成一个元组之后里面就不能理解为变量了,要理解为常量,不然你理解egg = egg然后egg = egg就变成索引【1】和【3】都是一个值了

843903652 发表于 2023-4-30 20:01:29

yinda_peng 发表于 2023-4-30 19:24
就是利用了元组来便捷地互换两个元素的值,原理就是元组的打包和解包过程,就是先把egg和egg打包成 ...

懂了
就是之前的x,y=y,x
页: [1]
查看完整版本: 这两个蛋是怎么实现交换的