当前位置: 代码迷 >> python >> 我如何让 python 告诉我我的数字是奇数还是偶数的答案是正确的?
  详细解决方案

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

热度:82   发布时间:2023-06-13 15:15:36.0

我正在处理一项任务,完全被卡住了。 几天来我一直试图弄清楚,但我是一个初学者,感觉就像我只是在旋转我的轮胎。

对于分配,我必须导入一个随机数,并询问用户它是奇数还是偶数。 然后根据答案,我必须让程序返回它是正确还是不正确。 但是,通过我粘贴在下面的这段代码,我根本无法执行我的 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"

任何帮助都将不胜感激。 我只需要一些指示来让我朝着正确的方向前进,因为我花了几个小时实际上一无所获。

您不需要循环,只需一个简单的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'

你实际上非常接近:

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()