这是我为提高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”时才会发生这种情况),以及
规则()
连续运行直到停止,完全跳过
输入检查()
.
我的问题是:
-
为什么
输入检查()
完全被忽视?
-
你能按原样运行作为参数的代码吗
作用
参数)或者我需要额外的步骤来运行它吗?
-
有没有更好/更有效的方法?(例如,一个解析输入的软件包,可以避免生成自己的函数)