总结一下,我对我正在做的事情几乎一无所知所以我会写一部分代码,所以也许任何人都可以看到发生了什么。
import sys
start = input("Continue? y/n ")
if start == "y":
startp()
elif start == "n":
print("Party pooper")
def startp():
text = 'text\n'
text2 = 'text2'
for char in text:
sys.stdout.write(char)
sys.stdout.flush()
time.sleep(.1)
for char in text2:
sys.stdout.write(char)
sys.stdout.flush()
time.sleep(.1)
startp()
如果运行此选项,您可以输入一个字母/单词,但输出结果为
Traceback (most recent call last):
File "C:/Users/-/Desktop/--.py", line 4, in <module>
startp()
NameError: name 'startp' is not defined
我认为我需要做的是在用户输入y
或n
后调用该函数 - 但我不知道如何,任何帮助将不胜感激。
答案 0 :(得分:2)
由于python在运行时创建函数,因此在定义函数之前无法调用它。
if start == "y":
startp()
^
答案 1 :(得分:0)
当你正在阅读一本书时,你是否应该从开始,他们曾经或曾经幸福地生活过?就像你读一本书一样,编译器从头开始读取,因此你的函数应该在使用之前声明。
答案 2 :(得分:0)
您应该在调用之前定义您的函数。
正如输出所示,当您尝试调用它时,第4行中未定义startp()
。在调用它之前定义你的函数,你的代码会更干净,可能会更好用;)
答案 3 :(得分:0)
此处产生错误:
if start == "y":
startp()
因为startp
定义在这些代码行之下。
您应该首先定义函数(除非您有理由不这样做)。此外,该函数还没有返回text
和text2
,也许您想在其中包含循环?
import sys
def startp():
text = 'text\n'
text2 = 'text2'
for char in text:
sys.stdout.write(char)
sys.stdout.flush()
time.sleep(.1)
for char in text2:
sys.stdout.write(char)
sys.stdout.flush()
time.sleep(.1)
start = input("Continue? y/n ")
if start == "y":
startp()
elif start == "n":
print("Party pooper")