之前学过Python,后来弄丢了,现在跟着B站的黑马视频从头学起
在这里做一些学习的记录
记录-2
下面展示一些 内联代码片
。
# coding:utf-8
import random
print('游戏说明:\n玩家选择数字位数后,系统随机生成一个1000以上的n位数字,由用户进行猜测')
print('每次猜测反馈结果:xAyB\nxA分别表示猜对数字和位置的个数,yB表示猜对数字但未猜对位置的个数\n例:随机数字是’1234')
print('猜测数字是’1328‘\n反馈结果:1A2B,表示本次猜测有1位(数字1)数字对且位置对,有2位(数字2、3)数字对但位置不对')
print('输入#重新开始\n输入%退出游戏')
while True:
x = int(input("请选择数字位数,4~32位:"))
if x not in range(4, 33):
print("位数错误")
continue
# 获得一个x位的随机数
r_num = random.randint(10**(x-1), 10**x)
# 存放随机数各数位
list_r_num = []
for i in str(r_num):
list_r_num.append(i)
for i in range(4*x):
A = 0
B = 0
# set去重
set_r_num = set(list_r_num)
g_num = int(input("请猜数:"))
# 存放猜测数字的各数位
list_g_num = []
for j in str(g_num):
list_g_num.append(j)
# set去重
set_g_num = set(list_g_num)
if g_num == r_num:
print("猜对啦!游戏胜利")
break
elif 10**(x-1) > g_num or 10**x < g_num:
print(f"位数不对,剩余{4*x-1-i}次机会")
for j in range(0, x):
if list_g_num[j] == list_r_num[j]:
A += 1
for j in set_r_num:
if list_g_num.count(j) > list_r_num.count(j):
B += list_r_num.count(j)
else:
B += list_g_num.count(j)
B -= A
print(f"{A}A{B}B,剩余{4*x-1-i}次机会")