最新消息:

python获取用户输入(input()与raw_input()的区别)

Python 大步 3269浏览 0评论
下面方法都支持pythn 2.X 和 3.X
作为命令行参数来获得用户的输入:
假设脚本叫test.py ,代码为:

 

则在命令行获取多个参数如下:
>test.py   aa  bb  cc
输出:

 

可见,默认test.py脚本程序自身就是第一个参数,argv[1]及其之后的才是用户在命令行输入的参数。
交互的方式,获取输入:
下面的函数只在python 2.X被支持
raw_input()函数:

 

下面的函数只在python 3.X中才是要表达获取用户输入的意思
在python3.x中,raw_input函数被改名为input() :

 

======================
是不是让你想起了python2.x中的input()函数?但是千万要注意这两者的区别差很大。
在python2.x中,input()函数不是将用户的输入作为字符串读入,而是对用户的输入进行处理,识别,把它当作python表达式,如果符合语法规则,是会直接执行的 。
加上我C盘下有个s.txt文件,则:

 

结果会看到,C:\s.txt 文件被删除了。可见,python2.x中input()不是直接把用户的输入当字符串,而是会进行特定的处理,看看是否符合语法规则,是的话就执行。
见下面:

 

上面input()和raw_input()对同样的输入,结果变量的类型一个是列表,一个是字符串。当我们使用input()函数来获取输入的内容时候,而我们输入的刚好是个列表的形式,则python会认为我们输入的是列表,不是字符串。同理,如果输入132,则会认为我们输入的int类型。
当我们随便输入内容,而这段内容又不是可执行的代码的时候,则会报错,见下面这个例子:
  1. list = input("input:") #键盘输入: sfwerwrwe
当我们输入  sfwerwrwe  后,程序报错:

 

这是因为  sfwerwrwe 不是一段可以执行的python代码,所以,提示无法识别,出现报错。
 
那么如何在python2.x中使用input()获取用户的输入,作为字符串呢?
答案很简单,只要给我们输入的字符串加上双引号或单引号即可:

 

这样就不会报错了,因为加了双引号或单引号后,就被识别为字符串。
 
不过,我这里还是建议在python2.x的时候,用raw_input()来获取用户输入。
 
还有就是使用:

 

我实在不建议这么弄,虽然少打了几个字母。
 
==========教程完=================
发现自己对python没有第一次见到时候的那种喜爱了。当初学完c之后,看到python,被它的简短的给惊艳到了。但是随着后来学其他的语言,发现python蛋疼的地方也很多,或者说是解释性的语言。
  • 一是只能在跑的才知道哪里写错了。
  • 二是缩进实在是太麻烦,不小心碰下键盘,多个空格什么的,程序就出问题,而且格式一旦乱了,代码就很难看懂。
  • 三是查看源代码不方便,因为是赋值和定义一起的,所以如果不看函数体的内部,就完全不知道函数返回的是什么类型。(js也这样,烦躁)

参考:

Python input() error - NameError: name '…' is not defined

 

来自为知笔记(Wiz)

 

转载请注明:大步's Blog » python获取用户输入(input()与raw_input()的区别)

SiteMap