问题描述
我正在处理一项任务,完全被卡住了。 几天来我一直试图弄清楚,但我是一个初学者,感觉就像我只是在旋转我的轮胎。
对于分配,我必须导入一个随机数,并询问用户它是奇数还是偶数。 然后根据答案,我必须让程序返回它是正确还是不正确。 但是,通过我粘贴在下面的这段代码,我根本无法执行我的 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"
任何帮助都将不胜感激。 我只需要一些指示来让我朝着正确的方向前进,因为我花了几个小时实际上一无所获。
1楼
您不需要循环,只需一个简单的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'
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()