鱼C论坛

 找回密码
 立即注册
查看: 3891|回复: 11

[已解决]猜数字,关于for in range()的问题

[复制链接]
发表于 2018-9-17 23:54:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1111.PNG
为什么在图示那里没有, ’猜对了,还不错‘ 呢?直接就结束了
最佳答案
2018-9-18 00:04:56
判断多了
if guess > ... :
   ...
elif guess < ... :
   ..
else:
  print(...)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-9-17 23:55:43 | 显示全部楼层
怎样修改才能出现,第三次  有猜对了,还不错,这几个字
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 00:04:56 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
判断多了
if guess > ... :
   ...
elif guess < ... :
   ..
else:
  print(...)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-18 10:16:52 | 显示全部楼层
claws0n 发表于 2018-9-18 00:04
判断多了
if guess > ... :
   ...

import random
secret = random.randint(1,9)
print("**********猜数字(1-9)**********")
guess = int(input("猜猜我想的是几:"))
print(secret)
if guess == secret:
    print("神了")
elif guess > 9 and guess < 1:
    print('你个沙雕')
else:
    for i in range(2):
        if guess > secret:
            guess = int(input('猜错了,大了,再猜猜'))
        elif guess < secret:
            guess = int(input('猜错了,小了,再猜猜'))
        else:
            print('猜对了,还不错')
    print('算了吧')
print("游戏结束啦")

代码是上面的,但是我想在3次机会用完后,加一句算了吧。但是不知道加在哪里。出现的问题是在正好第三次猜对的时候,不会出现‘’猜对了‘’却出现‘’算了吧‘’
麻烦指点
无标题.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 11:13:38 From FishC Mobile | 显示全部楼层
雨云天 发表于 2018-9-18 10:16
import random
secret = random.randint(1,9)
print("**********猜数字(1-9)**********")

在 for 之前加 flag = 1, 猜中那里 flag = 0, print,break。 for之后(跟for平行),if flag: print("算了吧")
就是机会用完之后再判断
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-18 12:32:17 | 显示全部楼层
claws0n 发表于 2018-9-18 11:13
在 for 之前加 flag = 1, 猜中那里 flag = 0, print,break。 for之后(跟for平行),if flag: print("算 ...

解决了,但是没用你那个方法,因为文字描述没有读懂。不过多谢耐心帮助
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-18 12:45:04 | 显示全部楼层
本帖最后由 雨云天 于 2018-9-18 12:50 编辑

循环后还要判断是不是猜对了,因为结束循环有两个可能,所以最后还要判断是猜对了,还是机会用尽。
  1. import random
  2. secret = random.randint(1,9)
  3. print("**********猜数字(1-9)(3次)**********")
  4. guess = int(input("猜猜我想的是几:"))
  5. print(secret)
  6. if guess == secret:
  7.     print("神了")
  8. elif guess > 9 and guess < 1:
  9.     print('你个沙雕')
  10. else:
  11.     for i in range(2):
  12.         if guess > secret:
  13.             guess = int(input('猜错了,大了,再猜猜:'))
  14.         elif guess < secret:
  15.             guess = int(input('猜错了,小了,再猜猜:'))
  16.         else:
  17.             break
  18.     if guess == secret:
  19.          print('猜对了,还不错')
  20.     else:
  21.         print('算了吧')
  22. print("游戏结束啦")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-9-18 12:48:53 From FishC Mobile | 显示全部楼层
雨云天 发表于 2018-9-18 12:45
循环后还要判断是不是猜对了,因为结束循环有两个可能,所以最后还要判断是猜对了,还是机会用尽。

也可以,不好意思,手机不方便上代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-18 12:50:19 | 显示全部楼层
昨天晚上弄到23点最后都迷糊了,写出最上面的那个代码,也是初学者,最后都在瞎拼瞎凑。
所以写代码还是要休息好。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-18 12:52:19 | 显示全部楼层
claws0n 发表于 2018-9-18 12:48
也可以,不好意思,手机不方便上代码

对于新手能有人帮助已经是非常感谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 13:04:42 From FishC Mobile | 显示全部楼层
雨云天 发表于 2018-9-18 12:52
对于新手能有人帮助已经是非常感谢了

嗯 ^_^
通常用 while,可以加强对输入的合法判断,再决定是否减少机会。论坛内可以找到。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 18:28:45 | 显示全部楼层
本帖最后由 pyhero 于 2018-9-18 18:56 编辑
  1. import random
  2. chances = int(input('Guess number game, how many chances do you want: '))
  3. guess = int(input('Guess the number(1-9, {} chances): '.format(chances)))
  4. dst = random.randint(1, 9)
  5. if guess not in range(1, 10):
  6.     print('Bad input, chose from {}'.format([x for x in range(1, 10)]))
  7. else:
  8.     chances -= 1
  9.     while True:
  10.         if guess > dst:
  11.             guess = int(input('too big, guess again: '))
  12.         elif guess < dst:
  13.             guess = int(input('too small, guess again: '))

  14.         if guess == dst:
  15.             print('Good')
  16.             break

  17.         chances -= 1
  18.         if chances <= 0:
  19.             print('Game Over, my number is {}'.format(dst))
  20.             break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 10:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表