ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

在Python 2中,从随机数字中创建一个随机问题

2019-07-04 18:55:28  阅读:114  来源: 互联网

标签:python shuffle


我希望我能得到一些帮助,我绝对没有运气在网上看.以及我是Python的新手.

我正在学习学习Python的艰难之路,我真的开始喜欢python了.所以我做了一个简单的小游戏.我正在寻找一种“欺骗死亡”的方法,我的想法是,为了逃避死亡,你需要回答一个数学问题,如果你做对了,你会回去开始(),或者如果你点错了,你会死的().所以这是迄今为止我对这个问题的代码:

from random import shuffle

numbers = [1, 75, 64, 80275, 2, 7]

shuffle(numbers)

def question(numbers):

现在,从这里,使用我的数字列表,我不知道如何导入洗牌数字.我想有一个这样的预设问题:

__ + __ / __ * __ - __ * __

因此,它将引入已经洗牌的数字列表,然后将__替换为问题中的相应__.然后,我会:

print "Your answer:"
user_answer = raw_input("> ")

所以他们可以提出他们的答案.在此之后,我需要一种方法来验证答案,所以我会这样做:

if useranswer == answer:
    print "You lived!"
    start()
else:
    dead()

变量’answer’是python将返回的答案.所以,最后,我认为代码应该是这样的:

from random import shuffle

numbers = [1, 75, 64, 80275, 2, 7]

question = shuffle(numbers)

def cheat_death(numbers):
    answer = __ + __ / __ * __ - __ * __
    print "You have one chance to cheat death.\nTo do this, you must answer the following question:"
    print question
    user_answer = raw_input("> ")

    if user_answer == answer:
        start()
    else:
        dead()

好的,我有一段工作的代码.它会生成随机数,然后将它们放入一个问题中.这是代码:

i = 0
numbers = []

while i < 6:
    numbers.append(random.randrange(1,900))

    i = i + 1


def cheat_death(numbers):
    shuffle(numbers)
    question = "%d + %d / %d * %d - %d * %d" % tuple(numbers)
    print "You have a single chance to cheat death. To live, please answer the question correctly below:"
    print question
    answer = eval(question)
    user_answer = raw_input("> ")
    if user_answer == answer:
        start()
    else:
        dead()

cheat_death()

但每次我输入一个答案,无论是否正确,都表示这是错误的.这可能是因为评估(问题)?或者我只是不知道!

解决方法:

from random import shuffle

numbers = [1, 75, 64, 80275, 2, 7]
shuffle(numbers)
print numbers
# [80275, 64, 75, 2, 7, 1]
question = "%d + %d / %d * %d - %d * %d" % tuple(numbers)
print question 
# 80275 + 64 / 75 * 2 - 7 * 1
answer = eval(question)
print answer
# 80269.7066667

标签:python,shuffle
来源: https://codeday.me/bug/20190704/1379916.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有