课后005讲 问题
左边的为什么运行不起来T.T 左边while前面有一句guess = 0。当然进不去循环了 笨鸟学飞 发表于 2020-10-19 12:26
左边while前面有一句guess = 0。当然进不去循环了
import random
secret =random.randint(1,10)
print("请猜数字1-10")
time = 3
guess = 0
temp=input()
guess = int(temp)
while (guess != secret) and (time > 0):
if temp.isdigit():
if guess == secret:
print("恭喜你猜对了!")
else:
if guess > secret:
print("大了,重新输入")
else:
print("小了,重新输入")
if time > 1:
print("还有机会在试一次吧")
else:
print("没有机会咯")
else:
print("输入有误,请重新输入")
time = time - 1
print("游戏结束")
发现了..改了一下 又直接 回复3次错误 不循环是什么回事 本帖最后由 笨鸟学飞 于 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,从头开始循环 笨鸟学飞 发表于 2020-10-19 12:53
==========代码问题比较多=========
import random
secret =random.ra ...
好的 谢谢. 本帖最后由 jackz007 于 2020-10-19 13:06 编辑
楼主试试这个代码
#coding:gbk
import random
secret = random . randint(1 , 10)
c = 3
for x in range(c):
guess = int(input("请猜数字 1 - 10 : "))
if guess == secret:
print("恭喜你猜对了!")
break
else:
if guess > secret : print("大了" , end = "")
else : print("小了" , end = "")
if x < c - 1 : print(" , 重新输入")
else : print(" , 没有机会咯")
print()
print("游戏结束") 本帖最后由 io37 于 2020-10-19 14:24 编辑
11
页:
[1]