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

小白提问,关于 if 条件判断。

  •  
  •   Elizen · 2014-04-14 13:00:18 +08:00 · 3528 次点击
    这是一个创建于 3882 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我编写的代码是:

    age=raw_input('please enter your age:')

    if age >= 18:

    print 'your age is', age

    print 'adult'

    else:

    print 'your age is', age

    print 'teenager'

    然后运行后输入5,得到结果如下:

    please enter your age:5

    your age is 5

    adult

    为什么还是adult,不是teenager
    11 条回复    1970-01-01 08:00:00 +08:00
    alioth310
        1
    alioth310  
       2014-04-14 13:04:30 +08:00   ❤️ 1
    输入的是字符串,需要把age转化成int
    davidli
        2
    davidli  
       2014-04-14 13:05:04 +08:00   ❤️ 1
    print('5'>18) 结果是True
    需要用int()把输入的string转成Int.
    yelite
        3
    yelite  
       2014-04-14 13:05:15 +08:00
    因为 raw_input 返回的是一个字符串

    if 判断可以这么写,int(age) >= 18
    lizheming
        4
    lizheming  
       2014-04-14 13:10:09 +08:00
    题外话,为啥不把print "your age is",age 提出来,然后再 print "adult" if age > 18 else "teenager"。
    Elizen
        5
    Elizen  
    OP
       2014-04-14 14:35:33 +08:00
    @yelite 谢谢啦。
    Elizen
        6
    Elizen  
    OP
       2014-04-14 14:36:01 +08:00
    @lizheming 我才刚开始....
    glasslion
        7
    glasslion  
       2014-04-14 15:10:37 +08:00
    @davidli
    @yelite
    @Elizen 这是范大爷为了逼你们升到Python3故意留下的坑
    dorentus
        8
    dorentus  
       2014-04-14 15:20:22 +08:00
    @glasslion
    我倒是觉得像 PHP、Javascript 那样莫名其妙地自动转类型的才是大坑……
    glasslion
        9
    glasslion  
       2014-04-14 16:12:09 +08:00   ❤️ 1
    @dorentus Python3 丢TypeError异常
    lizheming
        10
    lizheming  
       2014-04-14 16:31:57 +08:00
    @Elizen 好吧好吧,我就顺带吐个槽,LZ加油~
    1130335361
        11
    1130335361  
       2014-04-14 16:51:31 +08:00
    age=int(raw_input('please enter your age:'))
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2354 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:59 · PVG 08:59 · LAX 16:59 · JFK 19:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.