验证 家庭作业帮助服务 - Assignment Help

验证家庭作业帮助

Python提示:将用户输入验证为数字(整数)

发表于2015年1月8日由管理员 – 无评论↓

在大多数Python程序中,您将需要通过询问问题和检索用户输入与最终用户进行交互。

为此,您可以使用input()函数:例如

username = input(“你的用户名是什么?”)

1

username = input(“你的用户名是什么?”)

有时您需要检索数字。整数(无小数位数)称为整数。要使用它们作为整数,您将需要使用int()函数将用户输入转换为整数。例如

age = int(输入(“你的年龄是多少”))

1

age = int(输入(“你的年龄是多少”))

只要用户输入一个整数,这行代码就可以正常工作。如果错误地输入字母或标点符号,则转换为整数将失败并生成异常(错误),程序将停止运行。

为了验证用户条目并确保它是一个数字,可以使用try … except … .else块发生时捕获此异常,如下所示:

尝试:

    value = int(input(“Type a number:”))

除了ValueError:

    print(“这不是整数”)

1

2

3

4

尝试:

    value = int(input(“Type a number:”))

除了ValueError:

    print(“这不是整数”)

看看我们如何使用这种方法来定义我们自己的函数(称为inputNumber())来询问一个数字。只要我们期望用户输入一个整数,就可以使用这个新功能代替一个input()函数。此功能使用try … except … .else块在一个while循环中,以便它不断要求用户输入一个数字,直到用户正确。

现实世界的例子:

2005年12月,一家日本证券交易商发行了10亿美元的打字错误,当时他错误地出售了600,000股股票,每股1日元,而不是卖出一个60万日元的股票。几行代码可能避免了这个错误。

肥胖的手指打字费用是一个交易员的老板1.28亿英镑,“时代在线”,2005年12月9日

Web应用程序极易受到输入验证错误的影响。在易受攻击的电子商务网站上输入无效条目“!@#$%^&*()”可能会在易受攻击的系统上造成性能问题或“拒绝服务”,或者无效的密码如“pwd”或“1 = 1-”可能导致未经授权的访问。

http://www.processor.com/editorial/article.asp?article=articles%2Fp3112%2F32p12%2F32p12%2F32p12.asp&guid=&searchtype=&WordList=&bJumpTo=True

一名挪威女子在网上银行系统上错误的输入了帐号。而不是键入11位数的帐号,她不小心输入了一个额外的数字,总共有12个数字。系统丢弃了额外的数字,并将$ 100,000转入(不正确的)帐户。一个简单的对话框通知她,她输入的数字太多将有助于避免这个昂贵的错误。

奥尔森,凯。 “$ 100,000 Keying error”IEEE Computer,2008年8月

网站xssed.com列出了近1.3万个易受攻击的网页,其中包括yahoo.com,google.com,msn.com,facebook.com,craigslist.com和cnn.com等网站。

代码示例:

testScore = int(input(’Enter test score:’))

如果testScore> = 90:

        打印(’你的成绩是A’)

elif testScore> = 80:

        打印(’你的成绩是B’)

elif testScore> = 70:

        打印(’你的成绩是C’)

elif testScore> = 60:

        打印(’你的成绩是D’)

其他:

        打印(’你的成绩是F’)

此代码无法检查负面测试成绩或测试成绩超过100。

代码负责 – 如何正确验证输入?

检查所有输入:以下是一些部分列表,其中包括:

范围检查:检查数字以确保它们在可能值的范围内,例如,月份的值应在1和12之间。

合理检查:检查其合理性的价值,例如(年龄> 16岁)&&(年龄<100岁)

算术检查:检查可能会导致诸如除以零的问题的值的变量。

格式检查:检查数据是否为指定格式(模板),例如,日期必须为DD / MM / YYYY格式。

以下功能显示测试成绩的输入验证:

def check_input(min,max):

    prompt =“在%d和%d之间输入一个整数:”%(最小,最大)

    value = int(input(prompt))

    while(值<min或value> max):

        value = int(input(prompt))

    返回值

适当恢复:强大的程序将以适当,正确和安全的方式响应无效输入。当您的程序运行无效输入时,应尽可能地恢复,然后重复该请求或以其他方式提醒用户出现问题。应避免任意裁决,例如截断或以其他方式重新格式化数据以“使其适合”。

自愿,甚至名字,是一个Python数据验证库。这意味着用于验证作为JSON,YAML等进入Python的数据。

它有三个目标:

简单。

支持复杂的数据结构。

提供有用的错误消息

联系

Volksive现在有一个邮件列表!发送邮件至`<mailto:voluptuous@librelist.com>`__订阅。将会说明。

您也可以通过电子邮件或Twitter直接与我联系。

要提交错误,请在GitHub上创建一个新问题,并提供如何复制问题的简短示例

文件

文档提供[这里](http://alecthomas.github.io/voluptuous/)。

给我一个例子

Twitter的用户搜索API接受查询网址,如:

$ Curl’http://api.twitter.com/1/users/search.json?q=python&per_page=20&page=1

为了验证这一点,我们可以使用一个模式,如:

>>>从引人入胜的模式

>>> schema = Schema({

…’q’:str,

…’per_page’:int,

…’page’:int,

…})

该模式非常简洁粗略地表示了API所需的数据,并且可以正常工作。但它有一些问题。首先,它并没有完全表达API的限制。根据API,per_page应该限制在最多20个,默认为5。为了更准确地描述API的语义,我们的架构将需要更加成熟:

>>>从进口需要,全部,长度,范围

>>> schema = Schema({

…必需(’q’):全部(str,长度(min = 1)),

…必需(’per_page’,default = 5):全部(int,Range(min = 1,max = 20)),

…’page’:All(int,Range(min = 0)),

…})

该模式完全实现了Twitter文档中定义的接口,并进一步完善。

我们为Python或Python验证功课的作业分配提供专家协助。 我们的导师是为各级学生提供家庭作业的专家。

Posted on March 31, 2017 in 蟒蛇

Share the Story

Back to Top
Share This