【问题标题】:Python waiting errorPython等待错误
【发布时间】:2014-04-05 22:55:22
【问题描述】:

我试图找到一个好的代码行,让 python 在执行下一个代码块之前等待,但没有发现任何工作。这是下面的代码示例:

#This is the eighth Question.
print "Q8. What is one of the main bosses in 'Super Smash Brothers Brawl' that is also a boss in 'Kirby the Amazing Mirror?'"
print "1) Krazy hand."
print "2) Mister hand."
print "3) Ganondorf."
print "4) Yoshi."
choice = input("Answer=")
if choice ==1:
        print "THAT IS INCORRECT! 'Krazy hand' is SUPPOSED to be spelled 'Crazy hand'!"
        print ""
elif choice ==2:
        print "INCORRECT! 'Mister hand' is supposed to be spelled 'Master hand'!"
        print ""
elif choice ==3:
        print "Ganondorf is in the LEGEND OF ZELDA!"
        print ""
elif choice ==4:
        print "Yoshi isn't in Kirby!!!"
        print ""
elif choice> 4 or choice < 1:
        print "Go away if you want to fail."
        print ""

我希望“等待”代码在执行下面的代码之前等待 10 秒。

print ""
other = (raw_input("Would you like to continue without choosing a answer?:"))
if other == "yes":
        print "Haha! Nicely done! None of those answers were correct! This was a ULTRA QUESTION in disguise!"
        print ""
        score = score+3
if other == "no":
        print "Well, we have to move on anyway. Too bad you didn't say yes......."
        print ""

谢谢!非常感谢所有帮助!

更新 1: 这是所有代码:

#This is the script for TUKT. DO NOT DELETE
score = 0
print ""
print "Welcome to the Ultimate Kirby Test."
print ""
print "Type 'yes' to begin. Type 'no' to quit. Type 'info' for how to play."
print ""
begin = (raw_input("Would you like to begin?:"))
if begin == "yes":
        print ""
        print "Alright then! Let's start, shall we?"
if begin == "no":
        quit()
if begin == "info":
        print ""
        print "Type the number of the answer that you think is correct after 'Answer='. Sometimes, ULTRA QUESTIONs will pop up. These are worth 3 points!! At the end of the test, I will show you your score. You must get over 7 right to pass. Good luck!"
#This is the first Question.
print "Q1. What color is Kirby?"
print "1) Black."
print "2) Blue."
print "3) Pink."
print "4) Technically, his color changes based on the opponent he swallows."
choice = input("Answer=")
if choice ==1:
        print ""
        print "Incorrect."
        print ""
elif choice ==2:
        print ""
        print "Incorrect."
        print ""
elif choice ==3:
        print ""
        print "Tee hee.... I fooled you!"
        print ""
elif choice ==4:
        print ""
        print "Nice job! You saw through my trick!"
        print ""
        score = score+1
elif choice > 4 or choice < 1:
        print ""
        print "That is not a valid answer."
        print ""
#This is the second Question.
print "Q2. Who turns Kirby into yarn? (Kirby's Epic Yarn)"
print "1) Elmo."
print "2) The terrible cotton wizard named the yarn lord."
print "3) A magician named Yin-Yarn."
print "4) King Dedede."
choice = input("Answer=")
if choice ==1:
        print ""
        print "Don't be silly. Elmo is copyrighted!"
        print ""
elif choice ==2:
        print ""
        print "I can't believe you fell for that!"
        print ""
elif choice ==3:
        print ""
        print "Nicely done!"
        print ""
        score = score+1
elif choice ==4:
        print ""
        print "Ha! Nice try."
        print ""
elif choice > 4 or choice < 1:
        print ""
        print "You have got to be joking."
        print ""
#This is the third Question.
print "Q3. Who is the villan in Kirby's Adventure?"
print "1) King Dedede."
print "2) The Nightmare."
print "3) Meta Knight."
print "4) All of the above."
choice = input("Answer=")
if choice ==1:
        print ""
        print "Too bad!"
        print ""
elif choice ==2:
        print ""
        print "I tricked you! Muahahaha!"
        print ""
elif choice ==3:
        print ""
        print "FALSE!!"
        print ""
elif choice ==4:
        print ""
        print "Let me think...................YES!"
        print ""
        score = score+1
elif choice > 4 or choice < 1:
        print ""
        print "You despise me."
        print ""
#This is the fourth Question.
print "Q4. In which game can Kirby combine the powers of his enemies?"
print "1) Kirby's Dream Land 2."
print "2) Kirby 64: The Crystal Shards."
print "3) Kirby and the seven stones."
print "4) Kirby Nightmare in Dreamland."
choice = input("Answer=")
if choice ==1:
        print ""
        print "Nope. Sorry!"
        print ""
elif choice ==2:
        print ""
        print "Yes! That is correct! Nicely done!"
        print ""
        score = score+1
elif choice ==3:
        print ""
        print "That isn't even a real game! (hence not capitalizing it.)"
        print ""
elif choice ==4:
        print ""
        print "No. You should be more knowledgable about Kirby games!"
        print ""
elif choice> 4 or choice < 1:
        print ""
        print "Hmph! You should actually 'try' next time!"
        print ""
#This is the fifth Question.
print "Q5. ULTRA QUESTION! There was a voting poll to see the top ten Kirby games! Which one do you think came up on top? The choices are:   Kirby 64 The Crystal Shards,  Kirby's Epic Yarn,  Kirby Super Star Ultra,  Kirby's Return to Dream Land,  Kirby and The Amazing Mirror,  Kirby Squeak Squad,  Kirby Air Ride,  Kirby's Dream Land 2, Kirby's Dream Land 3. Please type your guess in all LOWERCASE LETTERS and NO SPACES and NO PUNCTUATION! DO NOT SPELL IT WRONG. IF YOU DO, THE QUESTIONS WILL GO ON. Start!"
print ""
begin = (raw_input("What is your guess?:"))
if begin == "kirby64thecrystalshards":
        print ""
        print "Sorry that is incorrect."
        print ""
if begin == "kirbysepicyarn":
        print ""
        print "Sorry that is incorrect."
        print ""
if begin == "kirbysuperstarultra":
        print ""
        print "Sorry that is incorrect."
        print ""
if begin == "kirbysreturntodreamland":
        print ""
        print "Hurrah! You got it correct!"
        print ""
        score = score+3
if begin == "kirbyandtheamazingmirror":
        print ""
        print "Sorry that is incorrect."
        print ""
if begin == "kirbysqueaksquad":
        print ""
        print "Sorry that is incorrect."
        print ""
if begin == "kirbyairride":
        print ""
        print "Sorry that is incorrect."
        print ""
if begin == "kirbysdreamland2":
        print ""
        print "Sorry that is incorrect."
        print ""
if begin == "kirbysdreamland3":
        print ""
        print "Sorry that is incorrect."
        print ""
#This is the sixth Question.
print "Q6. Identify the picture!"
print ""
print ""
print ""      
print "   ------------------ "
print "  /                  \ "
print " |                    | "
print " |        | |         |"
print " |                    |"
print "  \                  / "
print "  /------------------\  "
print " |_______/   \________| "
print ""
print "1) A Kirby."
print "2) A walking box."
print "3) ?"
print "4) My mom."
choice = input("Answer=")
if choice ==1:
        print "FAIL!!! A Kirby has arms!"
        print ""
elif choice ==2:
        print "That is correct! It's not a Kirby because it doesn't have arms!"
        print ""
        score = score+1
elif choice ==3:
        print "No. That is incorrect. No points for you!"
        print ""
elif choice ==4:
        print "By the way, THAT IS NOT YOUR MOM!"
        print ""
elif choice> 4 or choice < 1:
        print "Wow. Really?"
        print ""
#This is the seventh Question.
print "Q7. Meta Knight really is:"
print "1) A Kirby."
print "2) A robot."
print "3) A Waddle Dee."
print "4) None of the above."
choice = input("Answer=")
if choice ==1:
        print "Nice try. YOU ARE CORRECT!"
        print ""
        score = score+1
elif choice ==2:
        print "INCORRECT! Nice try."
        print ""
elif choice ==3:
        print "HA! No way."
        print ""
elif choice ==4:
        print "Heh! It seems as if I have fooled you!"
        print ""
elif choice> 4 or choice < 1:
        print "Why don't you read the instructions next time?"
        print ""
#This is the eighth Question.
print "Q8. What is one of the main bosses in 'Super Smash Brothers Brawl' that is also a boss in 'Kirby the Amazing Mirror?'"
print "1) Krazy hand."
print "2) Mister hand."
print "3) Ganondorf."
print "4) Yoshi."
choice = input("Answer=")
if choice ==1:
        print "THAT IS INCORRECT! 'Krazy hand' is SUPPOSED to be spelled 'Crazy hand'!"
        print ""
elif choice ==2:
        print "INCORRECT! 'Mister hand' is supposed to be spelled 'Master hand'!"
        print ""
elif choice ==3:
        print "Ganondorf is in the LEGEND OF ZELDA!"
        print ""
elif choice ==4:
        print "Yoshi isn't in Kirby!!!"
        print ""
elif choice> 4 or choice < 1:
        print "Go away if you want to fail."
        print ""
time.sleep(10)
print ""
other = (raw_input("Would you like to continue without choosing a answer?:"))
if other == "yes":
        print "Haha! Nicely done! None of those answers were correct! This was a ULTRA QUESTION in disguise!"
        print ""
        score = score+3
if other == "no":
        print "Well, we have to move on anyway. Too bad you didn't say yes......."
        print ""
#This is the ninth question.
print "THIS IS A SAMPLE QUESTION."
print ""
quit()
#DELETE THE UPPER 3 LINES OF CODE.

【问题讨论】:

  • 您需要在文件顶部写上“导入时间”。如果您不这样做,time 的模块将永远不会包含在内,time.sleep(10) 应该会导致错误。
  • 请不要在 Python2 中使用input()。它导致 Python 将用户的输入作为代码执行,因此如果用户给它提供有效但恶意的代码,就会发生坏事。 int(raw_input("Answer=")) 做你需要的一切,而不会让坏人接管你的系统。或者,只需 raw_input("Answer=")choice == "1" (等)

标签: python wait launcher


【解决方案1】:

如果你想等待而不执行任何代码:

import time #Put this at the top of the script

time.sleep(10) #Put in the amount seconds

【讨论】:

  • 对不起,这些都没有用。不过还是谢谢你们的回答!
  • Boatofturtles,向我们展示您的完整代码。请放心,time.sleep 是这样做的方法。
  • 必须睡觉,但我没有看到模块顶部的import time。如果没有,您将看到Exception。如果你有它,但你还没有发布它,把time.sleep(10)改成time.sleep(100),看看你是否意识到它在睡觉。
  • 我将 time.sleep(10) 更改为 time.sleep(100) 但它仍然无法正常工作。我在脚本顶部添加了导入时间码。
  • 是的! BorrajaX!这就是我想要的! :3。如您所见,我是一名初学者程序员。 :D。生病打开一个问题。哈哈!
【解决方案2】:

@boatofturtles:

重要免责声明

这不是你在这个问题中所问问题的答案,所以请保留你选择的答案Remoltenreplied,因为这是对你所问问题的正确答案以及你提出问题的方式。

如果您不遵守上述免责声明,我将删除我的回答。您已收到警告:-D


免责声明说,经过一些挖掘和阅读与你正在做的这个游戏相关的另外两个问题(https://stackoverflow.com/questions/22889223/how-to-prompt-the-user-in-10-seconds-if-nothing-is-entered-in-python-on-machttps://stackoverflow.com/questions/22889477/how-to-ask-a-person-for-input-but-running-a-whole-different-line-of-code-after-5 已被正确阻止)我想出了有一些我知道的代码确实可以按照您想要的方式工作(我在装有 Python 2.7 和 MacOs X 10.9.2 的 MacBook Air 上)该代码基于 this answer,正如我在评论中已经提到的那样one of your other questions必须在 Mac 上工作(确实如此)。

我发布这个的原因(尽管根据 Stack Overflow 的条款和预期用途可能是错误的)是因为你让我想起了我写的第一个程序...... 15 年前。这是一个与您正在尝试做的非常相似的选择游戏(事实上,我什至没有调用 d*mn 函数 :-D ),它让我感到怀旧.你想做的是一个很好的练习,我不希望你气馁。编程很有趣,Python 是一门很好的语言。

请尝试理解我发布的代码中发生了什么(查看sysselect 模块的文档,对于初学者)。是变得更好的唯一方法。谷歌搜索和阅读,阅读和练习。

另外,一个很棒的工具可以让人们告诉你如何提高你的编码技能,将你的代码发布到https://codereview.stackexchange.com/ 在那里创建一个帐户并询问你如何改进你的代码。

最后一件事:

当您在 Stack Overflow(或任何其他 stackexchange.com 网站)中发布问题时,请花一些时间准确地解释您的问题。 不起作用...它坏了...breakeEEEEeeen!告诉我一个修复方法! 对任何人都没有帮助(好吧,不是你确实这样做了,但你必须认识到关于柯比游戏的第一个问题非常令人困惑)。

请记住,S.O.(StackOverflow) 是一个非常知名的网站,其答案多次出现在 Google 的第一批结果中。如果您正确地提出您的问题,您将获得更好的问题答案,并且您将帮助将来面临同样问题的其他人。

Stack Overflow 中有很多天才(是的,不是我,但我知道有!!)免费向所有人回答(我说的是 Wikipedia 上关于他们的文章的家伙,正确?)。所以。如果您使用得当,它是一个很好的资源(阅读thisthis 并密切关注meta,了解 StackOverflow 网络中的网络礼仪)

好的,关于我的老前辈的故事已经讲完了,下面是代码:

#!/usr/bin/env python

import sys, select

def timeout_input(message, timeout=10):
    print "You have %s seconds to answer!" % timeout
    if message:
        sys.stdout.write(message)
        sys.stdout.flush()
    i, o, e = select.select( [sys.stdin], [], [], timeout )
    if (i):
        return sys.stdin.readline().strip()
    return ""

# -----
score = 0

# @boatofturtles, put your other 7 questions
# --- HERE ---
# (I didn't want to copy all your code again)

#This is the eighth Question.
print "Q8. What is one of the main bosses in 'Super Smash Brothers Brawl' that is also a boss in 'Kirby the Amazing Mirror?'"
print "1) Krazy hand."
print "2) Mister hand."
print "3) Ganondorf."
print "4) Yoshi."
choice = timeout_input("Answer=", timeout=5)
if not(choice):
    print ""
    other = (raw_input("Would you like to continue without choosing a answer?:"))
    if other == "yes":
            print "Haha! Nicely done! None of those answers were correct! This was a ULTRA QUESTION in disguise!"
            print ""
            score = score+3
    if other == "no":
            print "Well, we have to move on anyway. Too bad you didn't say yes......."
            print ""    
elif int(choice) ==1:
        print "THAT IS INCORRECT! 'Krazy hand' is SUPPOSED to be spelled 'Crazy hand'!"
        print ""
elif int(choice) ==2:
        print "INCORRECT! 'Mister hand' is supposed to be spelled 'Master hand'!"
        print ""
elif int(choice) ==3:
        print "Ganondorf is in the LEGEND OF ZELDA!"
        print ""
elif int(choice) ==4:
        print "Yoshi isn't in Kirby!!!"
        print ""
elif int(choice)> 4 or int(choice) < 1:
        print "Go away if you want to fail."
        print ""

如果您最初在 5 秒内没有提供答案,然后您将 yes 回复到问题 Would you like to continue without choosing a answer?,您将获得以下输出:

Q8. What is one of the main bosses in 'Super Smash Brothers Brawl' that is also a boss in 'Kirby the Amazing Mirror?'
1) Krazy hand.
2) Mister hand.
3) Ganondorf.
4) Yoshi.
You have 5 seconds to answer!
Answer=
Would you like to continue without choosing a answer?:yes
Haha! Nicely done! None of those answers were correct! This was a ULTRA QUESTION in disguise!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多