Пока l oop и вызов функции в python - PullRequest
0 голосов
/ 01 мая 2020
def func(val):

    num = int(input("Enter a number:"))
    while(num!=val):
        if num < val:
            print ("Too low!")
            return -1
            num = int(input("Try again: "))
        elif num > val:
            print ("Too high!")
            return 1
            num = int(input("Try again: "))
        else:
            print ("Got it!!!")
            break
            return 0
        print
    func(20)

С этим кодом он не l oop. Он спрашивает меня, какой у меня номер, и дает мне знать, правильно он или нет, но не просит заново ввести новый номер. Я вызвал функцию в неправильном месте? Или это мое состояние в то время как я oop, что неправильно?

Ответы [ 5 ]

0 голосов
/ 01 мая 2020

Печать второй строки не может быть использована,

здесь правильный код:

def func(val):
num = int(input("Enter a number:"))
while(num!=val):
    if num < val:
       print ("Too low!")
       return -1
       num = int(input("Try again: "))
    elif num > val:
       print ("Too high!")
       return 1
       num = int(input("Try again: "))
    else:
       print ("Got it!!!")
       break
       return 0

func(20)
0 голосов
/ 01 мая 2020

Во-первых, разрывная линия выходит из l oop, в вашем случае при выходе из l oop также происходит выход из функции. return -1 оператор выходит из функции, поэтому вы не должны использовать его, если хотите получить ввод пользователя независимо от того, что пользователь вводит в первый раз и так далее. Правильный код будет выглядеть следующим образом.

def func(val): 
    num = int(input("Enter a number:")) 
    while(num!=val): 
        if num < val: 
            print ("Too low!") 
            num = int(input("Try again: ")) 
        elif num > val: 
            print ("Too high!") 
            num = int(input("Try again: ")) 
        else: 
            print ("Got it!!!") 
            return 0 
func(20)

PS Идентификация очень важна в Python, поэтому правильно подбирайте код.

0 голосов
/ 01 мая 2020
It will never ask you the number again, because you are returning a value in every condition before asking for a number. So it gets out of the loop at the very first time.


# the function can be like this

def func(val):
  while True:
      num = int(input("Enter a number:"))
      if num < val:
          print ("Too low!")
      elif num > val:
          print ("Too high!")
      else:
          print("Got it")
          break
func(20)
0 голосов
/ 01 мая 2020

Вы можете попытаться поместить строку "num" в то время как l oop.

0 голосов
/ 01 мая 2020

Это то, что вы ищете?

def func(val):
  while True:
      num = int(input("Enter a number:"))
      if num < val:
          print ("Too low!")
      elif num > val:
          print ("Too high!")
      else:
          print("Got it")
          break
func(20)
...