如何让python告诉我一个数字是奇数还是偶数的答案是正确的?

2024-09-29 21:24:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一项任务,完全卡住了。我已经想了好几天了,但我是一个初学者,感觉我只是在打转我的轮胎。你知道吗

对于赋值,我必须导入一个随机数,并询问用户它是奇数还是偶数。然后根据答案,我必须让程序返回正确或错误。但是,使用下面粘贴的代码,我无法让它执行while循环。你知道吗

def assign2PartA():
  import random
  strNumber = random.randrange(1,50)
  answer = raw_input("Is '" +  str(strNumber) +  "' Odd or Even?")  
  while strNumber % 2 == 0:
    if answer is "odd":
      return "incorrect"
    else:
      return "correct"
  while strNumber % 2 != 0:
    if answer is "odd":
      return "correct"
    else:
      return "incorrect"

任何帮助都将不胜感激。我只需要一些指点,让我朝着正确的方向前进,因为我花了几个小时几乎一无所获。你知道吗


Tags: answerreturnifisrandomelseodd赋值
2条回答

实际上你很接近:

def assign2PartA():
  import random
  strNumber = random.randrange(1,50)
  answer = raw_input("Is '" +  str(strNumber) +  "' Odd or Even?").lower()
  while strNumber % 2 == 0:
    if answer == "odd":
      return "incorrect1"
    else:
      return "correct1"
  while strNumber % 2 != 0:
    if answer == "odd":
      return "correct"
    else:
      return "incorrect"

我改变了两件事,一件是你的raw_input(),我加了较低的。另一个不是is,而是需要==is检查对象标识,而==检查相等性。你知道吗

确保在课程结束时调用函数assign2PartA()

你不需要一个循环,只需要一个简单的if..elif..else。同时,is检查身份。你需要检查是否相等。您可以使用lower()使用户的答案不区分大小写。将import语句放在代码的顶部。最后,标准缩进是四个空格。你知道吗

import random

def assign2PartA():
    strNumber = random.randrange(1,50)
    answer = raw_input("Is '" +  str(strNumber) +  "' Odd or Even?").lower()
    if (strNumber%2 and answer == 'odd') or (not strNumber%2 and answer == 'even'):
        return 'correct'
    else:
        return 'incorrect'

如果您不喜欢长的if语句,也可以将答案存储在list中:

import random

def assign2PartA():
    strNumber = random.randrange(1,50) % 2
    answer = raw_input("Is '" +  str(strNumber) +  "' Odd or Even?").lower()
    answers = ['even', 'odd']
    if strNumber == answers[strNumber]:
        return 'correct'
    else:
        return 'incorrect'

相关问题 更多 >

    热门问题