没名字能用了 发表于 2020-6-26 23:54:30

刚开始学 问题出在哪儿啊

import random

secret = random . randint(1 , 10)

temp = input("不妨猜猜小甲鱼现在心里想的是那个数字: ")

guess = int(temp)

times = 3

while (guess != secret) and (times > 1):
   
    if guess > secret:
      
      print("大了大了!")

    else:
      
      print("小了小了!")


    temp = input("请再试试吧:")

    guess = int(temp)

    times = times - 1



    if(times <= 3) and (guess == secret):

      print("哎呀,你是小甲鱼心里的蛔虫吗!")

      print("哼 ,猜对了也没有奖励!")

   
    else:
      print("没机会啦")
      
















运行后



不妨猜猜小甲鱼现在心里想的是那个数字: 4
小了小了!
请再试试吧:5
没机会啦            #为什么这里多出现一次没机会啦
小了小了!
请再试试吧:6
没机会啦









Twilight6 发表于 2020-6-27 00:03:22




因为你的代码是if - else 呀,if 条件如果不成立 则执行 else 的条件,所以当你没猜对的时候 就会执行 else 导致这里多打印了 没机会啦

还有你的 times <= 3 可以去掉 因为 times 初始化为 3每次输入错 -1所有你的 times <= 3 这个条件始终满足,在这里是多余的了

所以最好把 else 改成 if 是否等于 1 即可~

正确代码:
import random

secret = random . randint(1 , 10)

temp = input("不妨猜猜小甲鱼现在心里想的是那个数字: ")

guess = int(temp)

times = 3

while (guess != secret) and (times > 1):

    if guess > secret:

      print("大了大了!")

    else:

      print("小了小了!")


    temp = input("请再试试吧:")

    guess = int(temp)

    times = times - 1



    if guess == secret:

      print("哎呀,你是小甲鱼心里的蛔虫吗!")

      print("哼 ,猜对了也没有奖励!")


    if times == 1:
      print("没机会啦")

wtf??? 发表于 2020-6-27 00:10:40

是最后一行的缩进问题吗?

没名字能用了 发表于 2020-6-27 16:39:19

Twilight6 发表于 2020-6-27 00:03
因为你的代码是if - else 呀,if 条件如果不成立 则执行 else 的条件,所以当你没猜对的时候 就会 ...

但是我是按照书上的代码来打的 啊   卧槽{:5_99:}

没名字能用了 发表于 2020-6-27 16:43:36

wtf??? 发表于 2020-6-27 00:10
是最后一行的缩进问题吗?

是有点关系的我把后面那个else删除了就好了

Twilight6 发表于 2020-6-27 16:46:57

没名字能用了 发表于 2020-6-27 16:43
是有点关系的我把后面那个else删除了就好了

删掉就不会显示没机会了,你改成我那样就行,去理解消化下吧~~~
页: [1]
查看完整版本: 刚开始学 问题出在哪儿啊