繁体   English   中英

我如何在gradeAnswers函数中比较数组userResponse和CorrectAnswers。 这是唯一无法正常运行的pary

How can i compare the arrays userResponse and correctAnswers in the gradeAnswers function. It is the only pary not functioning properly

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

def main():

    correctAnswers = ['B','D','A','A','C',
                      'A','B','A','C','D',
                      'B','C','D','A','D',
                      'C','C','B','D','A']

    userResponse = userAnswers()
    correct = gradeAnswers(correctAnswers, userResponse)
    passFail(correct)


#function to obtain the users input for answers and put in an array
def userAnswers():

    answers = 1

    userResponse = ['','','','','','','','','','',
                    '','','','','','','','','','',]

    for answers in range (20):
            print('What is the answer to number ',\
                answers + 1, '? ',sep='',end='') 
            userResponse[answers] = str(input())


    print(userResponse)
    return userResponse   




#function to calculates the amount of correct answers and displays such
def gradeAnswers(correctAnswers, userResponse):
    correct = 1
    incorrect = 0
    index = 1
    for correct in range (20):

            if userResponse[correct] == correctAnswers[index]:
                index += 1
                correct += 1**




    print('You answered',correct, 'out of 20 questions correctly')

    return correct***


#function to determine and display wether the user passed or failed
def passFail(correct):

    if correct >= 15:
        print('You passed.  Good Job')
    else:
        print('You failed.  Do Better')



main()
1 个回复

一种可能的方式是通过zip方法使用成对比较:

def gradeAnswers(correctAnswers, userResponse):
    correct = 1

    for userAnwser, correctAnwser in zip(userResponse, correctAnswers):
        if userAnwser == correctAnwser:
            correct += 1


    print('You answered',correct, 'out of 20 questions correctly')

    return correct

还有其他方法,例如使用列表理解,但我不想过多更改您的代码。 希望能帮助到你。

1 如何使这些数组正常运行?

我的+ getRndFromArray没有从正确的数组中获取,而是从“您希望从以下哪种流派?”中从数组中选择任何选项。 问题。 用于此的数组位于代码的开头(代码段中未显示),我有一个 在代码开头的数组之后 ...

3 如何在函数中定义参数。

我正在尝试使功能骰子从1-6随机滚动。 但是当我尝试从函数中添加不同的数字时,它说一个和两个是未定义的。 我不确定如何解决这个问题,而且我在编码方面还很新。 ...

5 谷歌表格查询功能。 我怎样才能只获得唯一或不同的行?

我正在尝试使用 Google 表格上的查询功能回答有关案例的问题,但遇到了特定问题。 我需要获得每年唯一订单的总数。 我使用了下面的公式并设法获得了每年的总订单。 其中 C 列是日期,B 列是 order_id。 问题是这总共返回 9994 个订单,并且包括相同订单的重复项。 例如,如果客户 ...

7 bool函数将无法正确比较数组

正在研究一个小程序,该程序将从用户那里获取一个字符串,并查看它是否是回文。 (一个向后拼写相同的短语,例如“从不奇数或偶数”)我已经构建了一些函数,该函数从字符串中删除空格和所有非字母字符,然后也复制该字符串。 (所有这三个函数都已经过全面测试,没有问题。)现在,我正在研究一个函数,该函数需 ...

8 如何正确删除指向回调函数的指针。

我有一个MainProgram.exe,它可以调用MyDll.dll并使用curl来接收回调函数上的数据。 我将curl包裹在一个名为CurlGetData的函数中,该函数创建一个curl实例并执行curl_easy_perform。 这是我的代码: 从我的主程序中调 ...

9 如何比较两个数组的一个值并仅从其中一个数组中删除该值

您好,如果 arr0 中存在某个特定值,则尝试从 arr1 中删除该特定值,两个数组都包含随机生成的数字,因此该特定值可能并不总是显示在 arr0 中。 例如, 假设我需要删除的值是 9,我希望 arr1 然后返回, 这是为了避免网站上显示的特定值重复。 随机数是用下面的代码生成的, ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM