为什么对元组元素进行判断会和想象的结果不一致?

2018-08-30 00:34:49 +08:00
 pppguest3962
    db = pymysql.connect(host='192.168.89.41', user='root', passwd='root123', port=3306)
    cur = db.cursor()

    try:
        cur.execute('show databases;')
        data = cur.fetchall()

        result1 = "('mysql',)" in data
        result2 = "mysql" in data
        result3 = "(\'mysql\'\,)" in data
        result4 = "(\'mysql\',)" in data
        print(data)
        print(result1)

    except:
        print("操作 Mysql 失败")

print(data)的输出:

(('information_schema',), ('forum',), ('mysql',), ('mytest',), ('netdisk',), ('network',), ('save_sth',))

print(data[2])

('mysql',)

result1 到 4 的方式都是 False,我错在哪里?

1781 次点击
所在节点    Python
4 条回复
stamaimer
2018-08-30 00:51:10 +08:00
data 中的元素都是 tuple,没有一个字符串。
msg7086
2018-08-30 01:59:43 +08:00
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170118] on linux
>>> data = (('information_schema',), ('forum',), ('mysql',))
>>> data
(('information_schema',), ('forum',), ('mysql',))
>>> result2 = ('mysql',) in data
>>> result2
True
>>>
imn1
2018-08-30 07:25:28 +08:00
result1 = "('mysql',)" in data
我一直在想哪个弱类型语言可以这样判断,好像 PHP 也不行吧?
pppguest3962
2018-08-30 09:09:21 +08:00
@stamaimer 所言极是,我就不能用双引号来表达的内容。。。

@msg7086,感谢感谢,已解决,小弟的 python 基础非常不扎实,为求出东西快,很多 python 的东西都是跳着摸索的,所以。。。。。。

@imn1 python 可以啊。。。。笑,跑~~~~~ ^_^

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/484414

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX