生化楼大爷 发表于 2020-6-21 15:43:14

关于新版Python图书中5.2.2更新元组提问

文中利用新建一个同名元组的方法“添加“元素的概念我理解了,但是为什么我将x_men= (x_men , "小甲鱼")+ x _men 替换为x_men = (x_men , "小甲鱼")+ x _men 或者x_men = x_men + (x _men , "小甲鱼")都提示错误呢? 还有一个问题就是为什么按照书中的方法,双引号会变成单引号呢?

>>> x_men = ("金刚狼", "暴风女", "火凤凰", "镭射眼")
>>> x_men = (x_men, '小甲鱼') + x_men
>>> x_men
('金刚狼', '小甲鱼', '火凤凰', '镭射眼')


>>> x_men = ("金刚狼", "暴风女", "火凤凰", "镭射眼")
>>> x_men = (x_men , "小甲鱼") + x_men
Traceback (most recent call last):
File "<pyshell#155>", line 1, in <module>
    x_men = (x_men , "小甲鱼") + x_men
TypeError: can only concatenate tuple (not "str") to tuple

Twilight6 发表于 2020-6-21 15:48:39

是为什么我将x_men= (x_men , "小甲鱼")+ x _men 替换为x_men = (x_men , "小甲鱼")+ x _men 或者x_men = x_men + (x _men , "小甲鱼")都提示错误呢?

因为当你索引某个元素时候 返回的是那个元素,比如你这里元组内的元素都是字符串,所以你索引返回的是 字符串

而对字符串进行使用 + 号是拼接操作,而字符串不能和元组进行拼接,所以导致报错,而你切片操作 返回的还是元组,所以不会报错

还有一个问题就是为什么按照书中的方法,双引号会变成单引号呢?

在Python 单双引号没有区别,除非你用来匹配数据

wp231957 发表于 2020-6-21 15:50:12

元组是不能变化的,研究它的变通改变,没啥意义

生化楼大爷 发表于 2020-6-21 15:52:45

Twilight6 发表于 2020-6-21 15:48
因为当你索引某个元素时候 返回的是那个元素,比如你这里元组内的元素都是字符串,所以你索引返回的是...

请问x_men 和x_men l两者不全是索引元素的意义么?还是说切片不意味着单纯的索引,所以他不能和字符串相拼接?

Twilight6 发表于 2020-6-21 15:54:02

生化楼大爷 发表于 2020-6-21 15:52
请问x_men 和x_men l两者不全是索引元素的意义么?还是说切片不意味着单纯的索引,所以他不能和字 ...

第一个是索引操作,第二个叫切片
比如:
x_men = ['aaa','bbb','ccc']
x_men
>>> 'aaa'
x_men
>>> ['aaa']

生化楼大爷 发表于 2020-6-21 15:55:14

Twilight6 发表于 2020-6-21 15:54
第一个是索引操作,第二个叫切片
比如:

明白了,我概念上有点混淆了,多谢。

Twilight6 发表于 2020-6-21 15:55:29

生化楼大爷 发表于 2020-6-21 15:52
请问x_men 和x_men l两者不全是索引元素的意义么?还是说切片不意味着单纯的索引,所以他不能和字 ...

所以你尝试这将两种不同类型数值进行 + 操作 导致的报错
页: [1]
查看完整版本: 关于新版Python图书中5.2.2更新元组提问