中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中raw input失敗的原因是什么

發布時間:2020-09-23 11:11:40 來源:億速云 閱讀:349 作者:Leah 欄目:編程語言

本篇文章為大家展示了python中raw input失敗的原因是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

這兩個均是 python 的內建函數,通過讀取控制臺的輸入與用戶實現交互。但他們的功能不盡相同。舉兩個小例子。

1.輸入為純數字時
input返回的是數值類型,如int,float
raw_inpout返回的是字符串類型,string類型

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = input('input:')
print 'type of input', type(a)
b = raw_input('raw_input:')
print 'type of raw_input', type(b)

輸出:

input:1
type of input <type 'int'>
raw_input:1
type of raw_input <type 'str'>

2.輸入為計算公式時

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = input('input:')
print a
b = raw_input('raw_input:')
print b

輸出:

input:1+2
3
raw_input:1+2
1+

3.輸入為字符串時

#!/usr/bin/python
# -*- coding: UTF-8 -*-
b = raw_input('raw_input:')
print b
a = input('input:')
print a

輸入a:

raw_input:a
a
input:a
Traceback (most recent call last):
  File "D:/python_learning/test/cookbook/input raw_input.py", line 5, in <module>
    a = input('input:')
  File "<string>", line 1, in <module>
NameError: name 'a' is not defined
輸入'a':
raw_input:'a'
'a'
input:'a'
a

從對比中可以 看出,raw_input() 直接讀取控制臺的輸入(任何類型的輸入它都可以接收)。而對于 input() ,它希望能夠讀取一個合法的 python 表達式,即你輸入字符串的時候必須使用引號將它括起來,否則它會引發一個 SyntaxError 。

raw_input() 將所有輸入作為字符串看待,返回字符串類型。而 input() 在對待純數字輸入時具有自己的特性,它返回所輸入的數字的類型( int, float ),input() 可接受合法的 python 表達式,舉例:input( 1 + 3 ) 會返回 int 型的 4 。

查看實現方式:

def input(prompt=None): # real signature unknown; restored from __doc__
    """
    input([prompt]) -> value
    
    Equivalent to eval(raw_input(prompt)).
    """
    pass

input() 本質上還是使用 raw_input() 來實現的,只是調用完 raw_input() 之后再調用 eval() 函數,所以,你甚至可以將表達式作為 input() 的參數,并且它會計算表達式的值并返回它。

不過在 Built-in Functions 里有一句話是這樣寫的:Consider using the raw_input() function for general input from users.

eval()這個函數是將字符串str當成有效的表達式來求值并返回計算結果,存在一定的風險,如果用戶輸入的是__import__('os').system('dir') ,你會發現,當前目錄文件都會展現在用戶前面,那么繼續輸入open('文件名').read() ,代碼都給人看了。獲取完畢,一條刪除命令,文件消失。哭吧!因此,除非對 input() 有特別需要,否則一般情況下我們都是推薦使用 raw_input() 來與用戶交互。

上述內容就是python中raw input失敗的原因是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东港市| 渑池县| 惠安县| 博野县| 芜湖市| 长丰县| 宜兴市| 新田县| 来安县| 东光县| 天镇县| 中西区| 桃江县| 子长县| 杭州市| 始兴县| 沙雅县| 丰镇市| 沐川县| 沙河市| 江阴市| 夏津县| 全椒县| 禹城市| 诸暨市| 宁国市| 固安县| 正镶白旗| 武强县| 贵港市| 广元市| 涟水县| 渭源县| 海林市| 阿拉善左旗| 明光市| 澳门| 西城区| 连州市| 三河市| 永丰县|