huangdongdong 发表于 2021-2-7 21:22:25

求大佬能帮助

print('----------sss--------------')
import random
secret=random.randint(1,10)
times=3
temp=input('请输入数字:')
guess=0
while (guess !=secret)and (times>0):
    if temp.isdigit():
      guess=int(temp)
      if guess==secret:
            print('小蛔虫')
      else:
            if guess>secret:
                print('大了大了')
            else:
                print('小了小了')
            if times>1:
                temp=input('请再输入一次:')
            else:
                print('机会用完了')
    else:
      temp=input('请输入一个整数:')
    times=times-1
print('游戏结束')

期望结果:
请输入数字: f
请输入一个整数:f
请输入一个整数:f
游戏结束

°蓝鲤歌蓝 发表于 2021-2-7 21:22:26

print("----------sss--------------")
import random

secret = random.randint(1, 10)
times = 3

guess = 0
while (guess != secret) and (times > 0):
    temp = input("请输入数字:")
    times = times - 1

    if temp.isdigit():
      guess = int(temp)
      if guess == secret:
            print("小蛔虫")
      else:
            if guess > secret:
                print("大了大了")
            else:
                print("小了小了")
    if not times:
      print("机会用完了")
print("游戏结束")

Judie 发表于 2021-2-8 09:04:40

请问你的问题是?

huangdongdong 发表于 2021-2-8 10:36:37

Judie 发表于 2021-2-8 09:04
请问你的问题是?

请输入数字:f
请输入一个整数:f
请输入一个整数:f
请输入一个整数:f
游戏结束
这是我的代码运行结果,我想让它变成我的期望结果

Daniel_Zhang 发表于 2021-2-8 12:42:48

本帖最后由 Daniel_Zhang 于 2021-2-8 12:46 编辑

你有没有发现一件事,一个很关键的问题,你的 times = times - 1 在无论是否为数字的情况下,都会 - 1

而我们的期望是,只有它是数字的情况下,才会 - 1,也就是剩余机会 - 1

所以应该把它放在 if temp.isdigit(): 的里面对不对

print('----------sss--------------')
import random
secret=random.randint(1,10)
times=3
temp=input('请输入数字:')
guess=0
while (guess !=secret)and (times>0):
    if temp.isdigit():
      guess=int(temp)
      if guess==secret:
            print('小蛔虫')
      else:
            if guess>secret:
                print('大了大了')
            else:
                print('小了小了')
            if times>1:
                temp=input('请再输入一次:')
            else:
                print('机会用完了')
      times=times-1
    else:
      temp=input('请输入一个整数:')
   
print('游戏结束')

Daniel_Zhang 发表于 2021-2-8 12:47:47

°蓝鲤歌蓝 发表于 2021-2-8 12:38


老哥,这个还是没解决问题啊,times -1 那个得放在 if temp.isdigit(): 里面,不然跑起来还是会如同楼主说的那样{:10_245:}

°蓝鲤歌蓝 发表于 2021-2-8 12:50:47

Daniel_Zhang 发表于 2021-2-8 12:47
老哥,这个还是没解决问题啊,times -1 那个得放在 if temp.isdigit(): 里面,不然跑起来还是会如同楼 ...

你运行一下不就知道了,我只是没在 猜对了 后面加 break 跳出循环而已

Daniel_Zhang 发表于 2021-2-8 13:04:28

本帖最后由 Daniel_Zhang 于 2021-2-8 13:06 编辑

°蓝鲤歌蓝 发表于 2021-2-8 12:50
你运行一下不就知道了,我只是没在 猜对了 后面加 break 跳出循环而已



其实也不需要 break 因为 while 那里会不满足 guess != secret 的条件,运行不了


可能我误解了楼主的意思?我以为楼主想实现的是:


输入的不是数字的话,次数不会 - 1

°蓝鲤歌蓝 发表于 2021-2-8 13:56:55

Daniel_Zhang 发表于 2021-2-8 13:04
其实也不需要 break 因为 while 那里会不满足 guess != secret 的条件,运行不了




我只是自己觉得猜了就要 -1,不知道楼主怎么想的。
break 用不用都没关系了,我一般都只回答楼主 说的那个具体问题,其他地方如果也有问题,我一般也不会说。
页: [1]
查看完整版本: 求大佬能帮助