首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在我的python测试生成器中,当我测试程序时,它告诉我我的答案是错误的,但它并不像我通过打印答案来检查的那样。

在我的python测试生成器中,当我测试程序时,它告诉我我的答案是错误的,但它并不像我通过打印答案来检查的那样。
EN

Stack Overflow用户
提问于 2022-02-07 09:14:08
回答 2查看 74关注 0票数 -1
代码语言:javascript
复制
import random

questions = 1
score = 0

input("Please enter your name: ")

operator = ["+","-","*"]

while questions<10:
  num1 = (random.randint(0,15))
  num2 = (random.randint(0,15))
  picked_operator = random.choice(operator)
  print("What is " + str(num1) +str(picked_operator) +str(num2), "?")
  question = '{} {} {}'.format(num1, picked_operator, num2)
  answer = input()
  if answer == eval(question): 
    print("You are correct")
    score = score+1
  else:
    print("incorrect")
  questions = questions + 1  
  print(answer)

打印的例子:请输入你的名字:丹,什么是11 + 3? 14不正确的14,什么是13-7?.

EN

回答 2

Stack Overflow用户

发布于 2022-02-07 09:19:36

错误与您的input()语句有关。用这个代替:

代码语言:javascript
复制
answer = int(input())

# OR

if answer == str(eval(question)):
    # Do things

您接受answer作为字符串数量,并将其与整数进行比较,请参见下面的内容:

代码语言:javascript
复制
>>> 12 == '12'
False
票数 0
EN

Stack Overflow用户

发布于 2022-02-07 09:21:27

Python中的eval函数返回一个Integer,而输入函数返回一个字符串。当您将Int与Str进行比较时,您将无法得到相等的结果。

answer = int(input())

应该是那样的好

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

https://stackoverflow.com/questions/71016013

复制
相关文章

相似问题

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