美文网首页自学编程Python日更成长营
自学Python:机器提示人来猜数

自学Python:机器提示人来猜数

作者: 小强聊成长 | 来源:发表于2022-01-22 10:30 被阅读0次

由计算机随机产生一个4位整数,请人猜这4位整数是多少。人输入一个4位数后,计算机首先判断其中有几位猜对了,并且对的数字中有几位位置也正确,将结果显示出来,给人以提示,比如几个数字对,几个位置是对的,请人再猜,直到人猜出计算机随机产生的4位数是多少为止。

下面直接上代码:

########################

import random

if __name__ == "__main__":

    z = random.randint(1000, 10000) # 随机生成[1000,10000)之间的数

    print("答案是:", z)#控制是否显示答案

    print("机器输入四位数:****")

    l = [0] * 4  # 存储4位随机数

    c = 1    # 变量c为猜数次数计算器

    while True:

        g = int(input("请输入你猜的四位整数:"))

        a = z

        j = 0  # 变量j表示数字正确的位数用A表示

        k = 0  # 变量k表示位置正确的位数用B表示

        l[0] = l[1] = l[2] = l[3] = 0

        # 变量i表示原数中的第i位数。个位为第1位,千位为第4位

        for i in range(1, 5):

            s = g

            m = 1

            for t in range(1, 5):  # 人所猜想的数

                if a % 10 == s % 10:  # 若第i位与人猜的第t位相同

                    # 若该位置上的数字尚未与其他数字“相同”

                    if m and t != l[0] and t != l[1] and t != l[2] and t != l[3]:

                        j += 1

                        m = 0

                        l[j-1] = t # 记录相同数字时,该数字在所猜数字中的位置

                    if i == t:

                        k += 1 # 若位置也相同,则计数器k加1

                s //= 10

            a //= 10

        print("你猜的结果是:%d个数字对,%d个位置对\n" %(j, k))

        if k == 4:

            print("****** 你赢了 ******")

            break  # 若位置全部正确,则人猜对了,退出

        c += 1

    print("你总共猜了 %d 次" %c)

########################

执行结果如下:

答案是: 9692

机器输入四位数:****

请输入你猜的四位整数:9690

你猜的结果是:3个数字对,3个位置对

请输入你猜的四位整数:9693

你猜的结果是:3个数字对,3个位置对

请输入你猜的四位整数:9692

你猜的结果是:4个数字对,4个位置对

****** 你赢了 ******

你总共猜了 3 次

因为开启了答案,所以算是测试。

________________END______________

相关文章

  • 自学Python:机器提示人来猜数

    由计算机随机产生一个4位整数,请人猜这4位整数是多少。人输入一个4位数后,计算机首先判断其中有几位猜对了,并且对的...

  • 自学的心得

    李笑来老师出了一本新书《自学是门手艺》,也开了一门自学python的课程,刚好我自己也是在学习python和机器学...

  • 机器学习的网站

    机器学习基本感念 如何学习数据科学的Python,自学者的方式。 计算机视觉论文

  • 自学Python:求完数

    先说什么是完数? 如果一个数等于它的因子(因子就是所有可以整除这个数的数)之和,则称该数为“完数”(或“完全数”)...

  • 自学Python:寻找亲密数

    所谓亲密数就是如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子(包括1,不包括B本身)之...

  • 自学Python:计算回文数

    要说什么是回文数?就得先说说什么是回文。 “回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字...

  • 自学Python:寻找自守数

    什么是自守数? 自守数是指一个数的平方的尾数等于该数自身的自然数。例如,5的平方=25,尾数等于5,25的平方=6...

  • 非计算机专业,自学Python编程小结

    我本身是机器人工程专业,但对专业不是很感冒就打算自学编程。我自学的是Python,也是偶然的机会在中国大学MOOC...

  • sklearn调包侠之无敌小抄

    scikit-learn(以下简称为sklearn)是用Python开发的机器学习库,其中包含大量机器学习算法、数...

  • 人脸识别技术亮相央视,造福人类,助力公安部门寻回40年失散兄弟—

    人脸识别机器人小加与撒贝宁尼格买提同台 机器人小加现场展示人脸识别技术 近几年,科学界一直在人工智能上寻求突破,尤...

网友评论

    本文标题:自学Python:机器提示人来猜数

    本文链接:https://www.haomeiwen.com/subject/xuejcrtx.html