栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python

inpu
tPython 2.7中的函数,将你输入的内容评估为Python表达式。如果你只想读取字符串,请使用
raw_input
Python 2.7中的函数,该函数将不评估读取的字符串。

如果你使用的是Python 3.x,

raw_input
则已重命名为
input
。引用Python 3.0发行说明,

_raw_input()
已重命名为
input()
。也就是说,新
input()
函数从中读取一行,
sys.stdin
并在结尾的换行符被删除的情况下返回它。
EOFError
如果输入过早终止,它将触发。要获取的旧行为
input()
,请使用
eval(input())

在Python 2.7中,有两个函数可以用来接受用户输入。一个是

input
,另一个是
raw_input
。你可以想到它们之间的关系如下

input = eval(raw_input)

考虑以下代码以更好地理解这一点

>>> dude = "thefourtheye">>> input_variable = input("Enter your name: ")Enter your name: dude>>> input_variable'thefourtheye'

input
接受来自用户的字符串,并在当前Python上下文中评估该字符串。当我键入dude输入时,它发现
dude
绑定到该值
thefourtheye
,因此求值结果变为,
thefourtheye
并将其分配给
input_variable

如果我输入当前python上下文中不存在的其他内容,它将失败

NameError

>>> input("Enter your name: ")Enter your name: dummyTraceback (most recent call last):  File "<input>", line 1, in <module>  File "<string>", line 1, in <module>NameError: name 'dummy' is not defined

Python 2.7的安全注意事项input:

由于评估了任何用户类型,因此也存在安全问题。例如,如果你已经使用加载os了程序中的模块import os,然后用户输入

os.remove("/etc/hosts")

它将由python评估为函数调用表达式,并将执行该函数。如果你以提升的权限执行Python,则

/etc/hosts
文件将被删除。瞧,这有多危险?

为了演示这一点,让我们尝试input再次执行函数。

>>> dude = "thefourtheye">>> input("Enter your name: ")Enter your name: input("Enter your name again: ")Enter your name again: dude

现在,当

input("Enter your name: ")
执行时,它等待用户输入,并且用户输入是有效的Python函数调用,因此也会被调用。这就是为什么我们
Enter your name again
:再次看到提示。

因此,你最好使用这样的

raw_input
功能

input_variable = raw_input("Enter your name: ")

如果需要将结果转换为其他类型,则可以使用适当的函数将所返回的字符串转换为raw_input。例如,要将输入读取为整数,请使用此答案中int所示的函数。

在python 3.x中,只有一个函数可以获取用户输入,该函数称为inputpython 2.7

raw_input



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/370713.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号