python的小练习--猜数字提示XAXB

今天刚刚学了python的基本语法,老师布置了一些练习题,课堂上没解决,课后想了下,将自己的做法贴出来:

def count(guess, result):    # 计算A,B的数量
guess=str(guess) # 将数字转换成字符串
result=str(result)
numA=0
numB=0
for i in range(4):
if guess[i] == result[i]: # 当相同位置上有相同的数字时,A的数量加1
numA+=1
elif guess[i] in result: # 当位置上的数字不相同时,判断在其他位置上是否有该数字,B的数量加1
numB+=1
sum=str(numA)+str(numB)
return sum

def check(guess): # 判断猜测数据是否合法
if guess in range(1000, 10000):
guess = str(guess)
for i in range(4):
a = guess[i]
for j in range(i+1, 4):
if a == guess[j]:
print("数字不能有重复的")
return 2
print("数字合法")
return 1
else:
print("数字有效位数为4位")
return 3


while True:
result = 1034
guess = int(input("请输入猜测的数字(四位有效数字):"))
if check(guess) == 1:
num = count(guess, result)
if int(num[0]) == 4:
print("恭喜你,猜中了,数字就是:", guess)
break
else:
print("还差一点,请继续加油:", int(num[0]), "A", int(num[1]), "B" )
else:
print("猜测的数字不合法,请重新输入")


要点为:1.数据类型的转换,从输入的数字字符串转换到整型,整型到字符串
2.对整型数据处理,比较每一位的值,计算出AB的值
3.不合法的数据,直接提示
posted @ 2018-08-06 21:59  rooting0_0  阅读(1236)  评论(0编辑  收藏  举报