【Python 课堂】第63课—— python 2到3的新手坑

    作者:在线学习更新于: 2014-10-27 14:00:04

    大神带你学编程,欢迎选课

    Python版本2和版本3之间一些小改动把很多人都给坑了,花了大量的时间在这件事情上。所以今天来讲一下最大的两个坑:print 和 input。
     
    我们在课程最开始的时候就讲过 print,在版本2的技能培训使用方法是:
    print 'this is version 2'
     
    也可以是
    print('this is version 2')
     
    但到了3,就只能加上括号,像一个函数一样来使用 print:
     
    print('this is version 3')
     
    假如你看了基于2的教程(比如我写的),然后又装了python 3,可能就会奇怪为什么完全照着写,结果却不一样。
     
    而 input 就更绕一点。2里面有两个用来从命令行接受输入的函数:input 和 raw_input。
     
    value = input()
     
    input 接收的是一个值或变量,也就是说,你如果输 123,程序接收到的就是整数 123,你输 True,就是 bool 值 True。如果你输了 abc,程序会认为这是一个叫做 abc 的变量,而假如你没有定义过这个变量,就会报错。
     
    所以,当你想用 input 得到一段文字的话在线学习,必须把文字写在引号 "" 或 '' 中。
     
    text = raw_input()
     
    raw_input 接收的则是你输入的字符串,而不管你输的是什么内容。
     
    在版本3里,为了减少混乱,这两种输入方式被合并了。只是合并的方式又坑了新手:它保留了 input 这个名字和 raw_input 的效果。3里只有input函数,它接收你输入的字符串,不管你输的是什么。
     
    text = input()
     
    这种情况下,不管你是看着3的教材用2,还是看着2的教材用3视频教程,都会踩到这个坑。
     
    那么在3里,如何像2一样得到用户输入的一个值呢?方法是 eval():
     
    value = eval(input())

    标签: Python课堂

课课家教育

未登录