io37 发表于 2020-10-19 12:23:24

课后005讲 问题


左边的为什么运行不起来T.T

笨鸟学飞 发表于 2020-10-19 12:26:37

左边while前面有一句guess = 0。当然进不去循环了

io37 发表于 2020-10-19 12:36:45

笨鸟学飞 发表于 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:53:54

本帖最后由 笨鸟学飞 于 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,从头开始循环

io37 发表于 2020-10-19 13:04:02

笨鸟学飞 发表于 2020-10-19 12:53
==========代码问题比较多=========
import random                                 
secret =random.ra ...

好的 谢谢.

jackz007 发表于 2020-10-19 13:04:23

本帖最后由 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:18:07

本帖最后由 io37 于 2020-10-19 14:24 编辑

11
页: [1]
查看完整版本: 课后005讲 问题