Py学习  »  Python

函数调用期间未调用Python input()

sovietcitrus • 4 年前 • 1865 次点击  

这是我为提高Python技能而编写的一个基于文本的简单游戏的代码片段。 我打算用 input_check() 为了简化我稍后将在项目中编写的许多代码,但我目前无法使其正常工作。我在最新的VS主代码上运行它,扩展名为Pylance,它不会在我的代码中标记任何错误。我已经进行了多次测试以确保 输入检查() 这就是问题所在,删除它并简单地多次运行代码就可以了。

import time

def rules():
  print("The rules of this game are:")
  time.sleep(0.5)
  print("rules")
  time.sleep(0.5)
  print("rules")
  time.sleep(0.5)
  print("rules")
  time.sleep(0.5)
  print("rules")
  time.sleep(0.5)
  print("rules")
  time.sleep(0.5)
  input_check("Do you understand?\n", rules(), "Ok. Starting game...")
  
def input_check(question: str, function, confirmation: str):  
  yes_no = input(question)

  if yes_no.lower() == "n" or "no":
    function
  elif yes_no.lower() == "y" or "yes":
    print(confirmation)
    time.sleep(1)
  else:
    print("Invalid input.")
    input_check(question, function, confirmation)


input_check("Do you know the rules?\n", rules(), "Ok. Starting game...") 

我几乎是Python的新手,所以我不知道 function 参数,然后将其作为函数运行 输入检查() 行不行,但这不是问题所在。

应该有一个提示运行来定义 yes_no 具有 input() 但它从来没有达到这个程度。相反,它似乎跳到了跑步的前面 rules() (只有在用户输入“否”或“n”时才会发生这种情况),以及 规则() 连续运行直到停止,完全跳过 输入检查() .

我的问题是:

  1. 为什么 输入检查() 完全被忽视?
  2. 你能按原样运行作为参数的代码吗 作用 参数)或者我需要额外的步骤来运行它吗?
  3. 有没有更好/更有效的方法?(例如,一个解析输入的软件包,可以避免生成自己的函数)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129819
文章 [ 5 ]  |  最新文章 4 年前