Python学习记录-2

文章介绍了使用Python编程实现的一个数字猜测游戏。玩家选择数字位数,系统生成一个相应位数的随机数,然后玩家进行猜测,系统给出反馈,包括正确位置的数字个数和正确数字但位置错误的个数。游戏在用户输入特定指令时可以重新开始或退出。
摘要由CSDN通过智能技术生成

之前学过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}次机会")
		
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明宗元

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值