【问题标题】:can not create the python function programm using a previous function无法使用以前的函数创建 python 函数程序
【发布时间】:2018-03-25 08:51:12
【问题描述】:

这是我最初被赋予完成的任务..

猜字母 A-Z。

check_guess() 接受 2 个字符串参数:字母和猜测(都需要单个字母字符)。

  • 如果guess 不是字母字符,则打印无效并返回False。

  • 如果猜测是“高”或“低”,则测试并打印并返回 False

  • 如果猜测“正确”,则测试并打印并返回 True ​

这是我做的;

def check_guess(guess="input" , letter="g"):

    guess=input("enter input for guess: ")

    if guess.isalpha()==False:

        print("invalid" , guess.isalpha())

    elif guess>letter:

       print("High")

    elif guess<letter:

       print("Low")

    else:

        print(guess==letter)

​ 现在我被要求这样做;

字母猜。

创建letter_guess() 函数,让用户进行 3 次猜测。

接受一个字母字符参数作为答案字母

获取用户输入的字母猜测

致电check_guess() 并回答和猜测。

如果check_guess() 等于True,则结束letter_guessreturn True

或在 3 次尝试失败后,返回 False。 ​

【问题讨论】:

  • 您遇到的实际问题是什么?是否有错误或意外输出?
  • no.. 我上面提到的代码是完美的.. 但我被要求在下一个问题中使用该函数“check_guess()”,我刚刚在代码下面提到。我只是不能使用我上面创建的函数来制作那个程序

标签: python python-3.x function user-defined-functions


【解决方案1】:

我猜你和我一样是这个平台的新手,但你必须更清楚地组织你的问题并提出具体的问题,而不是要求我们解决你的问题。你在挣扎什么?我的意思是你已经在文本中写了你需要的东西,你现在要做的就是在python中研究相应的解决方案。你需要的基本上是:

# function to determine matches

def ismatch(letter, guess):
    if (letter == guess):
        return True
    else:
        return False

# function to determine if input is valid (do some research or write your 
# own by storing all valid characters somehow and checking if input is in 
# it, check: # https://stackoverflow.com/questions/15558392/how-to-check-if- 
# character-in-string-is-a-letter-python

def isalpha(guess):
    if (guess.isalpha()):
        return True
    else:
        return False

# Main programm (check how to use loops)
# create a counter for amount of guesses
# save the input for the letter to be guessed after checking if it's valid 
# otherwise restart input for the letter (or exit program if you like)
# save the input of the guess after checking if it's valid 
# otherwise restart input for the guess(or exit program if you like)
# compare if guess was right with your match-function
# if so, finish programm
# otherwise raise the guess_counter by 1
# if limit of guess counter ( in your case 3) reached, exit program

【讨论】:

  • 是的..我是新来的..是的..非常感谢您的帮助!
【解决方案2】:

您应该使用raw_input 将用户输入读取为字符串。根据您的要求,您可以尝试此代码

def check_guess(guess="a", letter="g"):
    guess = raw_input("enter input for guess: ")
    if guess.isalpha()==False:
        print("invalid" , guess.isalpha())
    elif guess>letter:
       print("High")
    elif guess<letter:
       print("Low")
    else:
        print(guess==letter)
        return True
    return False

def letter_guess():
    input_letter = raw_input("Enter the Answer letter for match: ")
    for x in range(3):
        status = check_guess(letter=input_letter)
        if status is True:
            return True
    return False

if __name__ == '__main__':
    letter_guess()

希望这会有所帮助!

【讨论】:

  • 我可以使用str() 代替raw_input 直接将用户输入定义为字符串吗?
  • 我实际上在不同的python版本中运行了代码。这就是为什么在 Python 2.7 中不可能,但在 Python 3 中仅使用 input() 会假定它是一个字符串,因此无需担心。
  • 但是当我运行你的代码时。它再次出现错误,说未定义 raw_input() 名称。怎么办?
  • 您的代码运行良好。它要求“输入匹配的答案字母:”然后它要求输入说“输入输入以进行猜测:”所以如果我的输入 dosnt 匹配,它会再要求输入 2 次,但最后 dosnt retun False。现在该怎么做?
  • 我假设您现在没有遇到任何错误。在 Python3raw_input 已被移除,只需将其替换为input() 方法即可。
猜你喜欢
  • 2019-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
  • 2021-01-21
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多