V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
pppguest3962
V2EX  ›  Python

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

  •  
  •   pppguest3962 · 2018-08-30 00:34:49 +08:00 · 1917 次点击
    这是一个创建于 2270 天前的主题,其中的信息可能已经有所发展或是发生改变。
        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,我错在哪里?

    4 条回复    2018-08-30 09:09:21 +08:00
    stamaimer
        1
    stamaimer  
       2018-08-30 00:51:10 +08:00 via iPhone
    data 中的元素都是 tuple,没有一个字符串。
    msg7086
        2
    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
        3
    imn1  
       2018-08-30 07:25:28 +08:00
    result1 = "('mysql',)" in data
    我一直在想哪个弱类型语言可以这样判断,好像 PHP 也不行吧?
    pppguest3962
        4
    pppguest3962  
    OP
       2018-08-30 09:09:21 +08:00
    @stamaimer 所言极是,我就不能用双引号来表达的内容。。。

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

    @imn1 python 可以啊。。。。笑,跑~~~~~ ^_^
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2717 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:59 · PVG 09:59 · LAX 17:59 · JFK 20:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.