首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python实验室-我被我实验室的代码卡住了

Python实验室-我被我实验室的代码卡住了
EN

Stack Overflow用户
提问于 2012-09-04 19:53:21
回答 3查看 1.6K关注 0票数 1

我的实验室要求我“提示输入一个数字,接受一个正的或负的number.Use --一种双重选择的”决策“结构,并打印一条信息,表明输入的数字是正数还是负数。”

我做了我的代码但出于某种原因它不起作用..。

代码语言:javascript
复制
def getNumFromUser():
  num=input (“Please enter a number: “)
  if num >= 0:
      print "The number you entered  is positive"
  elif num  <= 0:
      print "The number you entered is negative"
  else:
     getNumFromUser() 

由于某些原因,它不会运行我的代码,当我取出elif语句时,它要求我输入数字,如果我输入负,它会要求我重新输入数字以得到正的数字,只是不知道如何在代码中组合负数和正数,所以它会“打印出输入的数字是正数还是负数。”*I'm是python编程的新手,所以我在这里迷路了,如果有人向me*解释的话,我会很感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-04 19:59:02

python2.x中的input函数将尝试计算将其作为代码传递的字符串。这可以被认为是不可取的或危险的,通常建议使用raw_input

话虽如此,raw_input会给你一个字符串。您将希望将其转换为int,以便与其他int进行比较:

代码语言:javascript
复制
val_str = raw_input("enter a number")
if int(val_str) >= 0:
    print "greater"

请记住,如果用户不输入数字,则该示例将崩溃。可以使用:val_str.isdigit()检查字符串是否为数字。这适用于ints,而不是浮标。您的部分检查可以是首先确认它是一个int,否则再次询问。此外,isdigit无法正确检测到负数,这意味着您可能需要学习如何捕获可能引发的异常.

至于您的总体结构,我觉得简单的while循环检查比每次输入错误信息时对getNumFromUser的递归调用更适合您:

代码语言:javascript
复制
def getNumFromUser():

    while True:
        num=raw_input("Please enter a number: ")
        try:
            num = int(num)
        except ValueError:
            # if the input cannot be converted into an int
            # then loop again
            continue
        else:
            # otherwise, we have an int, so stop looping
            break

    # num is now an int
    if num >= 0:
        print "The number you entered  is positive"
    else:
        print "The number you entered is negative"

    return num

除了有效的int之外,期望用户输入任何其他内容可能并不是分配的一部分,但是这个示例展示了如何尝试并转换为int,并处理失败。

票数 4
EN

Stack Overflow用户

发布于 2012-09-04 19:56:07

使用

代码语言:javascript
复制
num=raw_input(“Please enter a number: “)

相反,

票数 0
EN

Stack Overflow用户

发布于 2013-11-20 14:24:57

确保输入和括号之间没有空格。您写了这个: num=input (“请输入一个数字:")当您应该写这个: num =input(”请输入一个数字:“)时,这将计算一个字符串。不需要添加原始部分,至少在我使用python编程的经验中是这样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12270435

复制
相关文章

相似问题

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