4.python中的用户交互

  学习完如何写'hello world'之后,我们还是不太满意,因为这样代码就写死了,以后运行的时候都只打印一局固定的话而已。

  但是,我想在程序运行后,自己手动输入内容怎么办,此时就要学习如何使用用户交互了。

  在python2.x中,用户交互使用的是 raw_input("提示内容") 方法,例如

name = raw_input("请输入姓名:")
print name

  之前的起手式就略去了,代码的执行结果是:

  再输入东西后回车

    这里有一个要注意的地方,那就是当程序运行到等待用户输入的地方时,会一直等着,也就是下面的代码不会继续执行了,连退出都要用ctrl+c强制退出。

    另外,这里输入的数据会将其转换成字符串类型,要注意有时函数传参中的类型错误,别问我是怎么知道的。


 

  在第一篇中曾经提过,在3.x中, raw_input() 已经被 input() 取代了,而input()的特性又有所不同:

name = input("请输入姓名:")
print type(name)
print name  

 

  其中,type()函数是用来查看数据类型的,这种可以直接用的,被称为内置函数或内建方法。

  当我们和上面输入的一样时,却发现报错了,关于报错提示怎么看以后会进行总结,这里报错的意思是变量没有被定义。

  如果我换一种输入方式的话:

  当我用引号引起来的时候,发现又可以了。这里可以得出input()的特性为:在输入字符串的时候一定要带引号,数字可以不用。这个和raw_input()很不同,要注意一下。

  当然最后返回的依然是字符串类型


 

  看到第一次输入后而报错的时候,有些人会问,如何我这里输入的是已经定义(也就是已经赋值)的变量名, 是不是就能够调用到在内存中的值了?

  在2.7(因为我只用过2.7,其他2.x不清楚)中,确实是可以这样的,但是在3.x中不行,因为这个功能被另一个内置函数 eval("name") 代替了("name"是传入字符串,然后用传入的字符串作为变量名)。

  当然input()的用户交互的功能还是有的,只是不能去调用变量了而已。


   但是,python2.7中也有一个 input() 函数,但这个 input() 函数又和 3.x 中的不一样,看代码示例:

num = input('---')
print type(num)

 

  可以看到在python2.7中,输入什么类型的就是什么类型的而和3.x中无论输入什么类型都是字符串的不同。

  最后总结:

    2.7中: input() 输入上面类型,得到的数据就是什么类型;而且不带引号的时候还能找到相应的变量

    3.x中: 无论 input() 输入的是什么,最终得到的都是字符串;而寻找变量的功能被 eval() 函数所替代。


 

  以上,就是用户交互的基本内容了,还有什么东西遗漏的话,我会继续补充。

 

posted @ 2016-05-25 00:31  scolia  阅读(3412)  评论(1编辑  收藏  举报