簡體   English   中英

如何返回到 python 中的前一個代碼塊?

[英]How to return to previous block of code in python?

我正在為這個神奇的 8ball 游戲編寫代碼。 當用戶在回放中鍵入“y”時,我似乎找不到返回 getAnswer() 的方法。 我該如何解決?

import random
import time
import sys

print('  __  __          _____ _____ _____    ___  ')
print(' |  \/  |   /\   / ____|_   _/ ____|  / _ \ ')
print(' | \  / |  /  \ | |  __  | || |      | (_) |')
print(' | |\/| | / /\ \| | |_ | | || |       > _ < ')
print(' | |  | |/ ____ \ |__| |_| || |____  | (_) |')
print(' |_|  |_/_/    \_\_____|_____\_____|  \___/ ')
print('')
print('')
print('')
print('Hello, I am the magic 8ball program... What is your name?') 
name = input()
print('')
print('Hello, ' + name + '...')

def getAnswer(answerNumber):
    print('ask me a question')
    input()
    print('predicting...')
    time.sleep(2)
    if answerNumber == 1:
        return 'It is certain' 
    elif answerNumber == 2: 
        return 'It is decidingly so' 
    elif answerNumber == 3:
        return 'Yes' 
    elif answerNumber == 4:
        return 'reply hazy, try again' 
    elif answerNumber == 5: 
        return 'no' 
    elif answerNumber == 6: 
        return 'ask again later'
    elif answerNumber == 7: 
        return 'concentrate and ask again' 
    elif answerNumber == 8: 
        return 'Outlook does not look good' 
    elif answerNumber == 9: 
        return 'I highly doubt so' 
print(getAnswer(random.randint(1,9)))

def replay():
    print('do you have another question? [y/n]')
    reply = input()
    if reply == 'y' or 'Y' or 'Yes' or 'yes':
        getAnswer()
    elif reply == 'n' or 'N' or 'No' or 'no':
        sys.exit()
    else:
        print('My apologies, I did not catch that. Please try again.')
        replay()

replay()

我將 getAnswer() 放在“如果回復”下,希望它會恢復到代碼開頭的第一個變量。 程序錯誤表明它缺少一個位置要求,但是當我將 answerNumber 放在 getAnswer() 中時,它只是另一個錯誤。

我被困住了。 任何幫助表示贊賞。

我認為這就是你要找的:

import random
import time
import sys

print('  __  __          _____ _____ _____    ___  ')
print(' |  \/  |   /\   / ____|_   _/ ____|  / _ \ ')
print(' | \  / |  /  \ | |  __  | || |      | (_) |')
print(' | |\/| | / /\ \| | |_ | | || |       > _ < ')
print(' | |  | |/ ____ \ |__| |_| || |____  | (_) |')
print(' |_|  |_/_/    \_\_____|_____\_____|  \___/ ')
print('')
print('')
print('')
print('Hello, I am the magic 8ball program... What is your name?') 
name = input()
print('')
print('Hello, ' + name + '...')

def getAnswer(answerNumber):
    print('ask me a question')
    input()
    print('predicting...')
    time.sleep(2)
    if answerNumber == 1:
        return 'It is certain' 
    elif answerNumber == 2: 
        return 'It is decidingly so' 
    elif answerNumber == 3:
        return 'Yes' 
    elif answerNumber == 4:
        return 'reply hazy, try again' 
    elif answerNumber == 5: 
        return 'no' 
    elif answerNumber == 6: 
        return 'ask again later'
    elif answerNumber == 7: 
        return 'concentrate and ask again' 
    elif answerNumber == 8: 
        return 'Outlook does not look good' 
    elif answerNumber == 9: 
        return 'I highly doubt so' 
print(getAnswer(random.randint(1,9)))

def replay():
    while True: #keep replaying 
        print('do you have another question? [y/n]')
        reply = input()
        if reply == 'y' or 'Y' or 'Yes' or 'yes':
            getAnswer(random.randint(1,9)) #choose random answer
        elif reply == 'n' or 'N' or 'No' or 'no':
            sys.exit()
        else:
            print('My apologies, I did not catch that. Please try again.')
            replay()

replay()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM