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.不合法的数据,直接提示

转载于:https://www.cnblogs.com/leaves0924/p/9433727.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值