zoukankan      html  css  js  c++  java
  • 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() 函数所替代。


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

  • 相关阅读:
    笨办法06字符串(string)和文本
    react学习之路-配制antd-mobile
    react.js学习之路六
    bug
    react.js学习之路五
    react.js学习之路四
    react.js学习之路三
    react.js学习之路二
    react.js学习之路一
    MVC,MVP 和 MVVM 的区别之处
  • 原文地址:https://www.cnblogs.com/scolia/p/5525567.html
Copyright © 2011-2022 走看看