本帖最后由 笨鸟学飞 于 2020-10-19 12:57 编辑
==========代码问题比较多=========
import random
secret =random.randint(1,10)
print("请猜数字1-10")
time = 3
guess = 0 #后面有赋值语句,这条多余了
temp=input() #这个temp也多余了,可以直接写为guess = int(input())
guess = int(temp)
while (guess != secret) and (time > 0): #输入整数不等于随机生成的密码,并且次数大于3进入循环
if temp.isdigit(): #你这里判断是否已经晚了?如果输入不是全数字,guess = int(temp)就会报错了,int()函数报错
if guess == secret:
print("恭喜你猜对了!") #猜对了然后呢?跳到次数减1语句,又重新进入while循环。应该在这后面加一条break
else: #这段没什么大问题。
if guess > secret:
print("大了,重新输入")
else:
print("小了,重新输入")
if time > 1:
print("还有机会在试一次吧")
else:
print("没有机会咯")
else:
print("输入有误,请重新输入") #这里判断已经晚了
time = time - 1 #大问题来了。你次数减一以后呢?重新进入循环,根本没有让你输入新密码的代码
print("游戏结束")
============你的算法有问题===============
1、初始化变量,这个是没有错的
2、搭建循环(循环条件只要看是否有次数就行):
1)输入密码
2)校验密码
3)正确--跳出循环
4)错误--次数减1,从头开始循环