【问题标题】:Please help me with python loop/if statements [closed]请帮我处理python循环/if语句[关闭]
【发布时间】:2013-03-31 07:00:26
【问题描述】:

*> 反复循环,提示用户选择一个选项,然后运行

适当的命令并重复,直到用户选择退出。 选项有: 0 退出程序; 1 计算流量 特定的值集合; 2 计算雷诺数,和 3 绘制预期流量。如果用户选择任何其他选项, 程序必须不断要求他们选择一个有效值,直到他们 这样做。*

而我

i=input (" Please enter a number between 0-3:")

if i==0:
    print " program will exit."
    break

elif i==1:
     print ( " To calculate flow rate please input these values:" )
     pressure = input (" Please enter pressure drop in pascals: " )
     radius = input  (" Please enter radius in m: " )
     viscosity = input  (" Please enter viscosity of liquid in Pa.s: ")
     Length= input  (" Please enter length in m: " )
     Flowrate = (pressure * pi *(radius**4))/ ( 8 * viscosity * Length)
     print " Therefore, flow rate is " , Flowrate
     print " Program will run again for user to calculate flow rate..."


elif i==2:
    print ( " To calculate reynolds number please input these values:" )
    q=input ("Please enter a value for flow rate in m^3/s")
    radius = input  (" Please enter radius in m: " )
    density=input   (" Please enter density in kg/m^3 : " )
    viscosity = input  (" Please enter viscosity of liquid in Pa.s: ")
    Rno=(2*q*radius*density)/(viscosity*pi*radius*radius)
elif i==3:
    print " not implemented yet."
else:
    print " Program will start again!"                          





    ***new edited post***

【问题讨论】:

    标签: python loops if-statement variable-assignment


    【解决方案1】:

    我可以发现一个错误:

    Rno=(2*q*radius*density)/(viscosity*pi*radius*radius
    

    您的代码缺少右括号。

    另一个(逻辑)错误是input() 调用应该在循环内,而不是在循环外。

    【讨论】:

    • 最近,很多人都错过了行尾的)。这个世界上发生了一些奇怪的事情。
    【解决方案2】:

    我通常会让人们布置这类程序,例如

    while(True):
        i = input("<Prompt>")
    
        if(i==1):
            # Do something
    
        elif(i==2):
            # Do something else
    
        #... any additional elifs
    
        else: 
            break
    

    或者像这样

    while(True):
        i = input("<Prompt>")
    
        if(i==1):
            # Do something
    
        elif(i==2):
            # Do something else
    
        #... any additional elifs
    
        elif(i==10):        # Assuming 10 here is the "exit" option
            break
    
        else: 
            print("Unknown selection, please try again")
    

    第二个版本要求用户明确选择“退出”选项,而第一个版本将在选择未知/未定义选项时简单地退出。

    【讨论】:

    • 所以我的意思是在循环中有 i=.... 但它的说法变量没有定义。
    • @user2228719:可以,否则只会调用一次,不会再次提示用户。
    • @user2228719:只要你把i=... 放在一个总是在你使用它之前被调用的地方,你就不应该得到那个错误。确保该行是 while 循环中的第一行。
    • 哦,好吧!我把它放在我的循环中,在第一行。但是,您说需要在我使用它的任何地方之前调用它。我在 while 语句的第一行使用它,所以我需要引入另一个变量还是......以某种方式摆脱 i ?
    • 您可以编辑您的帖子以显示您的新代码吗?
    【解决方案3】:

    你说过你的程序应该在用户输入0后退出,所以我会改变这个:

    if i==0 :
        print " program will exit."
        i=4  
    

    对此:

    if i==0 :
        print " program will exit."
        break  
    

    另外,您不需要在第二个if 中将0 分配给i,因为i 在此块中已经等于0,因此您可以放心地删除这行代码.

    【讨论】:

    • 谢谢大家! :OOO 没想到反应这么快。
    猜你喜欢
    • 1970-01-01
    • 2021-08-05
    • 2022-09-23
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2020-12-24
    • 2013-01-27
    • 2016-12-27
    相关资源
    最近更新 更多