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() 函數所替代。


 

  以上,就是用戶交互的基本內容了,還有什么東西遺漏的話,我會繼續補充。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM