【问题标题】:Python math operation until 'n' is pressedPython数学运算直到按下'n'
【发布时间】:2021-06-08 11:22:30
【问题描述】:

我想创建可以帮助我解决数学问题的 Python 脚本。我有公式想用在我的问题上,我只是想节省一些时间,因为我需要用不同的值计算至少 20 次。

我创建了这个函数:

def vypocet():
    y2 = float(input("Zadaj hodnotu y2: "))
    y1 = float(input("Zadaj hodnotu y1: "))
    x2 = float(input("Zadaj hodnotu x2: "))
    x1 = float(input("Zadaj hodnotu x1: "))
    x = float(input("Zadaj hodnotu x: "))
    vysledok = (y2-y1)/(x2-x1)*(x-x1)+y1
    return vysledok

它按预期工作。

现在我需要创建一个循环,它将重复此计算,直到用户按下“N”。 我需要再创建一个 var,它会期待来自用户的 'Y' 或 'N' 并且在此输入之后它将结束或重复计算。

我尝试了while循环,但没有成功。

请帮助我。 谢谢!

【问题讨论】:

    标签: python loops input while-loop


    【解决方案1】:

    如果我没有理解错:

    def vypocet():
    
      a =''
      while not (a == 'n'): #if condition not satisfied, continue below action
    
        y2 = float(input("Zadaj hodnotu y2: "))
        y1 = float(input("Zadaj hodnotu y1: "))
        x2 = float(input("Zadaj hodnotu x2: "))
        x1 = float(input("Zadaj hodnotu x1: "))
        x = float(input("Zadaj hodnotu x: "))
        vysledok = (y2-y1)/(x2-x1)*(x-x1)+y1
    
        print (vysledok) #result
        
        a = input('continue y or n: ') #y results in condition not satisfied, continue looping
    
    vypocet()
    

    【讨论】:

      【解决方案2】:

      将此while循环添加到您的代码中,这应该可以工作。

      while True:
          choice = input('Do you want to calculate?(y/n): ')
          if choice == 'n' or choice == 'N':
              break
          elif choice == 'y' or choice == 'Y':
              vypocet()
          else:
              print('Please enter y or n')
      

      【讨论】:

        【解决方案3】:

        我希望这是您正在寻找的:

        def vypocet():
           y2 = float(input("Zadaj hodnotu y2: "))
           y1 = float(input("Zadaj hodnotu y1: "))
           x2 = float(input("Zadaj hodnotu x2: "))
           x1 = float(input("Zadaj hodnotu x1: "))
           x = float(input("Zadaj hodnotu x: "))
           vysledok = (y2-y1)/(x2-x1)*(x-x1)+y1
           return vysledok
        
        while True:
            print(vypocet())
            x=input("Do you want to continue (Y/N): ")
            if(x=="N"):
                break
        

        程序会要求输入

        您要继续吗(Y/N):N

        当 N 被提供为输入时,它将停止,否则将返回函数,导致任务重复。

        【讨论】:

          【解决方案4】:

          我是否正确理解你想要这样的东西?

             def vypocet():
              dalsi_opakovani = "Y"
              while dalsi_opakovani != "N":
                  y2 = float(input("Zadaj hodnotu y2: "))
                  y1 = float(input("Zadaj hodnotu y1: "))
                  x2 = float(input("Zadaj hodnotu x2: "))
                  x1 = float(input("Zadaj hodnotu x1: "))
                  x = float(input("Zadaj hodnotu x: "))
                  vysledok = (y2-y1)/(x2-x1)*(x-x1)+y1
                  print(vysledok)
                  dalsi_opakovani = input("Chcete dalsi opakovani vypoctu? Y/N ")
              return vysledok
              
          vypocet()
          

          【讨论】:

            【解决方案5】:

            我不确定这是否是你想要的。

            def vypocet():
                y2 = float(input("Zadaj hodnotu y2: "))
                y1 = float(input("Zadaj hodnotu y1: "))
                x2 = float(input("Zadaj hodnotu x2: "))
                x1 = float(input("Zadaj hodnotu x1: "))
                x = float(input("Zadaj hodnotu x: "))
                vysledok = (y2-y1)/(x2-x1)*(x-x1)+y1
                return vysledok
            
            while input("Continue?") != "N":
                print(vypocet())
            

            【讨论】:

              猜你喜欢
              • 2018-09-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-10-16
              • 1970-01-01
              相关资源
              最近更新 更多