鱼C论坛

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

[已解决]求助

[复制链接]
发表于 2016-6-7 17:32:08 | 显示全部楼层 |阅读模式

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

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

x
print("---------")
guess = int(input("please input a number: "))
i = 3
while i>1:
    if guess == 3:
        print("right")
        break
    else:
        i=i-1
        if guess >3:
            print("big")
            print("还有",i,"次机会")
            guess = int(input("猜错了,在猜一次: "))
        else:
            print("small")
            print("还有",i,"次机会")
            guess = int(input("猜错了,在猜一次: "))
if i ==1:
    print("机会用完")
print("over")


为什么最后一次输入的时候不显示对错了呢!!!
最佳答案
2016-6-7 19:19:42
楼楼你好,我也是新人,不敢保证完全正确,说一下我的观点,你作为参考。

楼主设置的i为3,while循环进入的条件为i>1,所以while循环会进入2次,第三次时候i=1直接退出循环了

i=2时候,让用户输入猜的值,然后不进入循环直接就说次数用尽。



当i=2的时候就是最后
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-6-7 18:05:25 | 显示全部楼层
本帖最后由 leozyre 于 2016-6-7 18:07 编辑

把while i >1改成while >0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-7 19:19:42 | 显示全部楼层    本楼为最佳答案   
楼楼你好,我也是新人,不敢保证完全正确,说一下我的观点,你作为参考。

楼主设置的i为3,while循环进入的条件为i>1,所以while循环会进入2次,第三次时候i=1直接退出循环了

i=2时候,让用户输入猜的值,然后不进入循环直接就说次数用尽。



当i=2的时候就是最后
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-8 11:58:18 From FishC Mobile | 显示全部楼层
leozyre 发表于 2016-6-7 18:05
把while i >1改成while >0

这个时候用户不就有四次猜数的机会了吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-8 12:05:43 From FishC Mobile | 显示全部楼层
阿宁 发表于 2016-6-7 19:19
楼楼你好,我也是新人,不敢保证完全正确,说一下我的观点,你作为参考。

楼主设置的i为3,while循环进 ...

可是我把i设置成i>=1,他就要循环四次,最后一次不显示结果。和我初衷循环三次不一样啊!!!
image.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-8 12:25:28 | 显示全部楼层
来一位大神帮我看看吧!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-8 15:28:15 | 显示全部楼层
if i ==1:
   print("机会用完")

你这里有一个判断,如果为真,就执行下面的程序,所以就会直接输出机会用完~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-8 18:04:35 | 显示全部楼层

  1 #-*-coding:utf-8-*-
  2 print("---------")
  3 guess = int(input("please input a number: "))
  4 i = 3
  5 while i>1:
  6     if guess == 3:
  7         print("right")
  8         break
  9     else:
10         i=i-1
11         if guess >3:
12             print "big"
13             print "剩下",i,"次机会"
14             guess = int(input ("猜错了,在猜一次: "))
15         else:
16             print "small"
17             print "还有",i,"次机会"
18             guess = int(input ("猜错了,在猜一次: "))
19 if i == 1:                                                                                                                                                                                 
20     print "机会用完"
21 print "over"

没问题啊

结果是这样
[root@localhost exci]# python caishuzi.py
---------
please input a number: 5
big
剩下 2 次机会
猜错了,在猜一次: 2
small
还有 1 次机会
猜错了,在猜一次: 4
机会用完
over
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-8 21:29:08 | 显示全部楼层
zodetv 发表于 2016-6-8 18:04
1 #-*-coding:utf-8-*-
  2 print("---------")
  3 guess = int(input("please input a number: ")) ...

最后一次的数字没有判断大了还是小了。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-8 21:33:55 | 显示全部楼层
基本上我把while语句里的内容这样写:while i>0 and guess!=3
                                                             guess = int(input())
就差不多了!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-8 23:08:22 | 显示全部楼层
本帖最后由 ysy623 于 2016-6-8 23:15 编辑

#-*-coding:utf-8-*-
print("---------")
guess = int(input("please input a number: "))
i = 3
while i>1:
    if guess == 3:
        print("right")
        break
    else:
        i=i-1
        if guess >3:
            print "big"
            print "剩下",i,"次机会"
            guess = int(input ("猜错了,在猜一次: "))
        else:
            print "small"
            print "还有",i,"次机会"
            guess = int(input ("猜错了,在猜一次: "))
if i == 1:
   
    if guess >3:
        print "big"
    else:
        print "small"
                                                                                                                                                                           
print "机会用完"
print "over"
就可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-9 11:14:43 | 显示全部楼层
ysy623 发表于 2016-6-8 23:08
#-*-coding:utf-8-*-
print("---------")
guess = int(input("please input a number: "))

对哦,这样写也可以,我把代码给简化了,也弄出来了。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-21 07:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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