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
luxcen
V2EX  ›  Python

学 Python 的小菜鸟请教个问题

  •  
  •   luxcen · 2019-02-23 12:19:26 +08:00 · 3115 次点击
    这是一个创建于 1879 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚学 python 就掉到这个坑出不来了

    文件代码如下

    #coding=utf-8
    name = input()
    print name
    

    运行后如果输入的是数字就正常

    如果是英文字母报错

    NameError: name 'i' is not defined

    如果输入中文报错

    SyntaxError: invalid syntax

    编辑器编码设置的 utf-8 用的 pyCharm 编辑器

    21 条回复    2019-03-14 16:12:55 +08:00
    zeroDev
        1
    zeroDev  
       2019-02-23 12:22:43 +08:00 via Android   ❤️ 1
    这是 Python2 ?
    malusama
        2
    malusama  
       2019-02-23 12:23:48 +08:00 via Android   ❤️ 1
    换 Python3 别再编码上鼓捣了…
    zeroDev
        3
    zeroDev  
       2019-02-23 12:24:54 +08:00 via Android   ❤️ 1
    Python3 是没有问题的

    Python 3.6.7 (default, Oct 22 2018, 11:32:17)
    [GCC 8.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> i = input()
    gggg
    >>> print(i)
    gggg
    >>> i = input()
    你好
    >>> print(i)
    你好
    luxcen
        4
    luxcen  
    OP
       2019-02-23 12:27:21 +08:00
    看的菜鸟教程,下载的 2.7
    luxcen
        5
    luxcen  
    OP
       2019-02-23 12:27:42 +08:00
    怎么卸载 python2 啊
    wang9571
        6
    wang9571  
       2019-02-23 12:37:30 +08:00   ❤️ 2
    python2 里 input 接收非 int 型需要用引号括起来。

    # root @ Arch-PC in ~ [12:35:08]
    $ python2 test.py
    Hello
    Traceback (most recent call last):
    File "test.py", line 2, in <module>
    name = input()
    File "<string>", line 1, in <module>
    NameError: name 'Hello' is not defined

    # demo @ Arch-PC in ~ [12:35:25]
    $ python2 test.py
    "Hello"
    Hello

    你也可以改用 raw_input
    Very0ldMan
        7
    Very0ldMan  
       2019-02-23 13:06:31 +08:00   ❤️ 1
    改用 Python3 吧,去 YouTube 上面大把的教程
    so1n
        8
    so1n  
       2019-02-23 13:20:29 +08:00 via Android   ❤️ 1
    改用 3,如果 linux 系统,别卸载里面的 python2
    whoami9894
        9
    whoami9894  
       2019-02-23 13:40:13 +08:00   ❤️ 1
    2 里你得用 raw_input, 2 的 input()是 eval(raw_input())
    luxcen
        10
    luxcen  
    OP
       2019-02-23 14:08:14 +08:00
    多谢各位,我是 windows 已经卸了 2 装 3 了
    Wisho
        11
    Wisho  
       2019-02-23 14:35:22 +08:00
    9102 年了,真心不要再折腾 py2 里的一些奇怪的点了,py3 搞起就好了。
    luxcen
        12
    luxcen  
    OP
       2019-02-23 16:11:49 +08:00
    @Wisho 不是想折腾,刚接触 python,不懂这些,看的菜鸟教程里说的下载 2.7 然后我就装了 2.7
    已经改 3 了
    nichijou
        13
    nichijou  
       2019-02-23 16:41:25 +08:00
    不会 python,不过你输入字符串是不是没加引号?
    shange123
        14
    shange123  
       2019-02-23 16:45:31 +08:00
    py2 字符串需要 raw_input()
    trys1
        15
    trys1  
       2019-02-23 17:43:36 +08:00 via Android
    菜鸟里面也有 3,建议不要看 2,直接看 3
    Dram001
        16
    Dram001  
       2019-02-23 17:54:47 +08:00 via Android
    9102 年还学 Python2。。。我看着 Linux 自带的 Python2 都想删
    Ginson
        17
    Ginson  
       2019-02-23 18:01:13 +08:00
    欢迎楼主接触 Python
    Ginson
        18
    Ginson  
       2019-02-23 18:02:26 +08:00
    luxcen
        19
    luxcen  
    OP
       2019-02-23 18:13:12 +08:00
    @Ginson 感谢推荐,刚搜到这个在跟着这个学 哈哈
    zst
        20
    zst  
       2019-02-23 21:36:18 +08:00 via Android
    @Dram001 哈哈哈哈我好像就干过
    l985654987
        21
    l985654987  
       2019-03-14 16:12:55 +08:00
    https://docs.python.org/zh-cn/3.6/
    这是 3.6 的官方中文文档
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3235 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 14:21 · PVG 22:21 · LAX 07:21 · JFK 10:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.