【问题标题】:Flowchart in PythonPython中的流程图
【发布时间】:2012-09-02 14:03:55
【问题描述】:

我需要用 Python 编写一个 prog 来完成以下任务:

提示并接受一个数字的输入,无论是正数还是负数。 仅当数字为正时,才使用单一替代“决策”结构打印消息。

这非常简单,但我是 Python 新手,所以即使是最简单的事情我也遇到了麻烦。该程序要求用户输入一个数字。如果数字是正数,它将显示一条消息。如果数字为负数,它将不显示任何内容。

num = raw_input ("Please enter a number.")

if num >= 0 print "The number you entered is " + num
else:
    return num
  1. 我正在使用 Wing IDE
  2. 我收到错误“if num >= 0 print”您输入的数字是“+ num”
  3. 如果输入的数字为负数,如何返回开始?
  4. 我做错了什么?

【问题讨论】:

  • 如果您的 IDE 没有告诉您有语法错误,则它有问题。在 0 和 print 之前,if 子句需要一个冒号。

标签: python if-statement io


【解决方案1】:

试试这个:

def getNumFromUser():
    num = input("Please enter a number: ")
    if num >= 0: 
        print "The number you entered is " + str(num)
    else:
        getNumFromUser()

getNumFromUser()

您收到错误的原因是您在 if 语句的条件后省略了一个冒号。如果数字为负数,为了能够返回到进程的开始,我将代码放在一个函数中,如果不满足if 条件,该函数会调用自身。您还可以轻松使用while 循环。

while True:
    num = input("Please enter a number: ")
    if num >= 0: 
        print "The number you entered is " + str(num)
        break

【讨论】:

    【解决方案2】:

    试试这个:

    
    inputnum = raw_input ("Please enter a number.")
    num = int(inputnum)
    
    if num >= 0:
        print("The number you entered is " + str(num))
    

    您不需要 else 部分,因为代码不在方法/函数内。

    我同意另一条评论 - 作为初学者,您可能希望将您的 IDE 更改为对您有更多帮助的 IDE(尤其是那些易于修复的语法相关错误)

    (我很确定,打印应该换行并且是有意的,但是……我错了。)

    【讨论】:

    • 另外,num 是一个字符串。我们需要将其转换为 int 或 float 进行比较,num >= 0
    • @Marcin:我相信这是问题之一。我没有指出所有内容 - 是的,但我相信没有在新行中打印(并正确缩进)是问题的一部分。
    • @MaciekTalaska:其实不需要换行,只要冒号就行了。
    • @A.R.S.好的,谢谢你指出。我很确定它应该在新行上,但只是检查了一下......你是对的。
    • @MaciekTalaska 您会为初学者推荐哪个 IDE?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    相关资源
    最近更新 更多