批处理之家's Archiver

ivor 发表于 2017-8-18 20:04

AB猜数字Python本地版

[i=s] 本帖最后由 ivor 于 2017-8-19 08:15 编辑 [/i]

[code]# -*- coding:utf-8 -*-
# AB猜数字


import re
import random

def getKey(*args):
    array = [i for i in range(10)]
    random.shuffle(array)
    key = ''
    for i in range(4):
        key = key +str(array[i])
    if key[0] == '0':
        input("here is %s" %key)
        key = getKey()
    return key


k = getKey()
while True:
    A = 0
    B = 0
#    print("===========")
    print("答案:" + k)
    number = input("请输入4位数字:")
    try:
        if int(number) < 0:
            raise
    except Exception as e:
        print("必须为数字")
        continue
    if len(number) != 4:
        print("位数不正确")
        continue
    elif len(set(number)) < 4:
        print("不允许有重复数字")
        continue
    else:
        for i in range(4):
            if k[i] == number[i]:
                A += 1
            elif k.find(number[i]) != -1:
                B += 1
        if A == 4:
        #       print("正确")
            k = getKey()
    print("%dA%dB" % (A, B))[/code]

codegay 发表于 2017-8-18 20:11

我之看别人代码学会的。
if len(set(str))>4 else 有重复数字。

523066680 发表于 2017-8-18 20:18

[i=s] 本帖最后由 523066680 于 2017-8-18 20:23 编辑 [/i]

也叫 Bulls and Cows / The game of MOO

你要考虑别人输入ABCD 或者其他字母作为占位符的情况

codegay 发表于 2017-8-19 16:05

:lol 我居然没有意识自己把符号写反了。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.