首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查输入的值?Python 3.4

如何检查输入的值?Python 3.4
EN

Stack Overflow用户
提问于 2014-09-11 18:19:47
回答 2查看 2.4K关注 0票数 1
代码语言:javascript
运行
复制
def p_parameter(p):

     if p < 10 or p > 100:
        int(input("Please try again: "))
        newp = p
        return newp
    else:
        newp <10 or newp >100
        input("Good bye")
        bye()

def main():

        speed(0)
        R=100
        r=4
        p=int(input("Please enter a number between 10 and 100: "))
        p_parameter(p)
        t_iter(R,r,p)
        Xcord(R,r,p,t_iter(R,r,p))
        Ycord(R,r,p,t_iter(R,r,p))
        input("Hit enter to close porgram")
        bye()

main()

这是我绘制螺旋图的程序的代码。程序运行良好,但我在这里发布的是我试图让用户为p输入一个介于10-100之间的值。

我想做的是检查p是< 10还是p > 100。如果是的话,那么给用户一个机会重新输入一个新的p值,并使用该值,只要它符合允许的限制。在第二次检查之后,如果用户仍然输入了不正确的p值,我希望程序关闭。

问题是,它检查'p',然后再次请求p,但它只接受'p‘的第一个值,而不预先形成第二个检查,也不给p新的值。

EN

Stack Overflow用户

发布于 2014-09-11 18:26:21

问题与您的解决方案&更正:

它只使用p的第一个值,而不给p新的值。

  1. 您再次向用户请求p,但不要将这个新值分配给newp变量,如下所示: newp =int(输入(“请重试:”)

不预置第二次检查。

  1. 您的else语句正在检查newp变量范围之外的newp上的条件,该变量位于if语句中。您应该将对newp变量的检查封装在if语句中,如下所示: p_parameter(p):如果p <10或p >100: newp =int(输入(“请重试:”),如果newp < 10或newp > 100:
  2. 对于程序不输入return语句的实例,在p_parameter()函数中没有if语句。所以应该是这样的: def p_parameter(p):如果p <10或p >100: newp =int(输入(“请重试:”),如果newp < 10或newp > 100:打印(“再见”)拜拜(),否则:返回newp #需要返回语句像这样:返回p#需要这样的返回语句

为您的问题提供了解决方案,

我要做的是检查'p‘>是< 10还是'p’> 100,然后给用户一个机会重新输入一个新的'p‘值,并使用这个值,只要它符合允许的参数。

  1. 如果收到正确的答案,则使用带有while True:语句的break无限循环退出。
  2. tryexceptelse块与ValueError一起使用

代码语言:javascript
运行
复制
1. to catch any errors due to inputs that are not integers.
2. to detect any inputs that are out of the allowed range.

在第二次检查之后,如果用户仍然输入了一个不正确的值'p‘,我希望程序关闭。

为了关闭程序,您可以:

  1. 让用户点击ctrl+c (我的个人喜好),或者
  2. 设置一个计数器,说明应该运行多少次while循环来检查新输入,然后如果使用sys.exit(0)达到了限制,则强制程序退出(注意:首先您需要import sys才能使用它;我认为您的bye()就是这样做的)。

把所有东西放在一起:

  1. main()函数中,删除input()语句,只调用p_parameter()函数,如下所示:P= p_parameter()
  2. 定义p_parameter()函数如下: 导入sys def p_parameter():exit_counter =1#计数器,在2次尝试后退出,而True: try: P= int(输入(“请输入10到100之间的数字"),除了ValueError: print(”不是数字,(重试“)其他:如果10 2 ):打印(“再见”) sys.exit(0) #拜()返回p
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25794490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档