下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

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

作者:在线学习     来源: www.kokojia.com点击数:625发布时间: 2014-10-27 14:00:04

标签: Python课堂

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

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())

赞(18)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程