首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尽管我正确地回答了PYTHON,但小测验给出了错误的答案。

尽管我正确地回答了PYTHON,但小测验给出了错误的答案。
EN

Stack Overflow用户
提问于 2015-10-21 13:22:05
回答 3查看 148关注 0票数 0

当涉及到python编程时,我非常喜欢noobie。然而,我需要尽快一个小测验制作程序,给我%的分数在最后。以下是我迄今所做的工作:

代码语言:javascript
运行
复制
#coding: utf-8

from random import shuffle

qas = [
('Kvarts', 'SiO2'),
('Gull', 'Au'),
('Sølv', 'Ag'),
('Kobber', 'Cu'),
('Platina', 'Pt'),
('Grafitt', 'C'),
('Diamant', 'C'),
]

shuffle(qas)
numRight = 0

for question, rightAnswer in qas:
answer = raw_input(question + ' ')
if answer.lower( ) == rightAnswer:
print 'Correct'
numRight +=1
else:
print 'Wrong, the correct answer is ' + rightAnswer
print 'You got %d and %d wrong.' % (numRight, len(qas) - numRight)

我让程序稍微工作,但即使我答对了,它还是给了我这样错误的答案:

代码语言:javascript
运行
复制
Diamant C
Wrong, the correct answer is C
Kvarts SiO2
Wrong, the correct answer is SiO2

我不知道该怎么做才能解决这个问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-21 13:29:40

您不需要调用answer.lower(),因为它返回带有小写字母的字符串,而正确的答案可能包含大写字母。

你可以用answer.strip()代替。这将移除输入字符串开头和结尾处的空格。

另一种选择是简单地执行answer == rightAnswer,但是如果answer被空格包围,则会产生'Wrong answer'

票数 0
EN

Stack Overflow用户

发布于 2015-10-21 13:28:38

列表中的答案不是小写。如果用户输入C,您的条件将计算'C'.lower() == 'C' (只是一个例子)。试一试

代码语言:javascript
运行
复制
if answer.lower() == rightAnswer.lower():
票数 0
EN

Stack Overflow用户

发布于 2015-10-21 13:29:39

您可以通过使用

代码语言:javascript
运行
复制
if answer.lower( ) == rightAnswer:

这会将answer转换为小写(例如,C转换为c)。

字典中的答案区分大小写:

代码语言:javascript
运行
复制
"C" == "c" => False

你有三个选择:

1将字典中的答案转换为大写:

代码语言:javascript
运行
复制
qas = [
('Kvarts', 'SIO2'),
('Gull', 'AU'),
('Sølv', 'AG'),
('Kobber', 'CU'),
('Platina', 'PT'),
('Grafitt', 'C'),
('Diamant', 'C'),
]

或2:(相反)将一切改为小写

或3:不要调用.lower

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33260496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档