有没有办法让这个Python函数运行更多的时间间隔?

时间:2015-03-21 03:27:31

标签: python function formatting

我对python非常陌生,只是编写了这个非常简单的代码。最后,这是我为了让我的脚湿润而头部缠绕在编码上而制作的。 Python是我的第一语言,我几天前开始学习它。

是的,我知道这对于编码方法来说是一个非常迂回的选择,它也是我自己制作的第一件超过几行的东西。所以,最后,有没有什么方法可以使函数问题运行更多次而不会遇到返回变量的问题?我不确定这是否真的是一个问题,或者我现在太累了,无法看到理由。我知道我需要为结果部分创建更多if语句。这很明显。

name = raw_input("Please enter you preferred name: ")
print "Welcome, %r, to the general stupidity quiz." % name
raw_input("\n\tPlease press any button to continue")

question1 = "\n\nWhat is the equivilent of 2pi in mathmatics? "
answer1 = "tao"
answer1_5 = "Tao"
question2 = "\nWhat is 2 + 2? "
answer2 = "4"
w = 0

def Question(question, answerq, answere, inputs):
    user_answer = raw_input(question)
    if user_answer in [str(answerq), str(answere)]:
        print "Correct!"
        x = inputs + 1
        return x
    else:
        print "False!"
        x = inputs
        return x

x = Question(question1, answer1, answer1_5, w)
x = Question(question2, answer2, answer2, x)

print "\nYou got " + str(x) + " questions correct..."
if x == 2:
    print "You're not stupid!"
elif x == 1:
    print "You're not smart!"
else:
    print "I hate to tell you this...but..."
raw_input()

我在末尾添加了一个raw_input(),因此我的cmd窗口不会关闭。我知道我可以使用ubuntu(最近卸载它),我也可以使用cmd窗口运行代码,但这只是我标记到最后的东西。

2 个答案:

答案 0 :(得分:0)

欢迎编程!在这之后很难说出你到底是什么,但在我看来,你希望能够在不编写更多代码的情况下提出一堆不同的问题。

您可以做的一件事是将问题/答案列表放入list

quiz = [("what is one + one? ", "2"), ("what is 2 + 2? ", "4")]

这里我们只允许一个正确的答案,所以我们需要更改Question()功能(我们仍然可以通过调用{{1来接受" Tao"" tao"移除大写问题):

answer.lower()

现在我们要做的就是为def Question(question, answer): user_answer = raw_input(question) if user_answer.lower() == answer: print "Correct!" x = inputs + 1 return x else: print "False!" x = inputs return x 列表中的每个问题调用问题函数:

quiz

答案 1 :(得分:0)

你的目标应该是让你的功能自成一体,做一件事。您的函数检查用户输入问题的正确性并递增计数器。这显然是两件事。我将把计数器的递增移出函数:

def question(question, answerq, answere):
    user_answer = raw_input(question)
    if user_answer in [str(answerq), str(answere)]:
        print "Correct!"
        return True
    else:
        print "False!"
        return False

x = 0
if question(question1, answer1, answer1_5):
    x += 1
if question(question2, answer2, answer2):
    x += 1

现在我要通过更改一些名称来更清楚地清理它,而不是假设每个问题总是有两个答案:

def question(question, correct_answers):
    user_answer = raw_input(question)
    if user_answer in correct_answers:
        print "Correct!"
        return True
    else:
        print "False!"
        return False

correct_count = 0
if question(question1, [answer1, answer1_5]):
    correct_count += 1
if question(question2, [answer2, answer2]):
    correct_count += 1

要了解更多信息,请查看编码最佳做法和编码风格。我建议为Python阅读PEP8