鱼C论坛

 找回密码
 立即注册
查看: 731|回复: 4

[已解决]麻烦哪位指导一下while和if的使用时机

[复制链接]
发表于 2018-12-12 22:26:16 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 collick 于 2018-12-13 16:45 编辑

写完以下代码总感觉有问题,总是把握不好while 和if的使用时机,请指导一下,感谢!

import random
counts = 3
secret = random.randint(1, 10)
print('--------by collick---------')
# 首先给guess赋值(定义一个绝对不等于secret的值)
guess = 0
# print()默认是打印字符串后自动添加一个换行符,end= ' '参数告诉print()用空格代替换行
temp = input("请输入一个整数:")
if temp.isdigit():
    guess = int(temp)
    while guess != secret and counts > 0:
        temp = input('请输入一个整数:')
        guess = int(temp)
        counts -= 1
        # 用户每输入一次,可用机会就-1

        if guess == secret:
            print("你猜中了,真棒!")
            print("不过猜中了也是没有奖励的!^_^")
        else:
            if guess > secret:
                print("数值过大!")
            else:
                print("数值过小!")
            if counts > 0:
                print('你还有 %r 次机会,再试一次吧!' % counts, end=' ')
            else:
                print('机会用完了!')

else:
    print("抱歉,输入不合法,", end='')
    temp = input("请输入一个整数:")


print('游戏结束!')


+++++++++++++++++++++++++++++修改后的代码如下++++++++++++++++++++++++++++++++++++
  1. import random
  2. counts = 5
  3. secret = random.randint(1, 10)
  4. print('--------by collick---------')
  5. # 首先给guess赋值(定义一个绝对不等于secret的值)
  6. guess = 0
  7. # print()默认是打印字符串后自动添加一个换行符,end= ' '参数告诉print()用空格代替换行

  8. while guess != secret and counts > 0:
  9.     temp = input("请输入一个整数:")

  10.     while not temp.isdigit():
  11.         temp = input("请输入一个整数:")

  12.     guess = int(temp)
  13.     counts -= 1
  14.     # 用户每输入一次,可用机会就-1

  15.     if guess == secret:
  16.         print("你猜中了,真棒!")
  17.         print("不过猜中了也是没有奖励的!^_^")
  18.     else:
  19.         if guess > secret:
  20.             print("数值过大!")
  21.         else:
  22.             print("数值过小!")

  23.         if counts > 0:
  24.             print('你还有 %r 次机会,再试一次吧!' % counts, end=' ')
  25.         else:
  26.             print('机会用完了!')

  27. print('游戏结束!')
复制代码
最佳答案
2018-12-12 23:03:45
你要清楚while 和if的 用法:
while属于一个循环体。你给while设置一条件,当它不满足的时候,它永远就在循环,满足之后才会跳出。
而if 是用来做判断的;比如我 输入一个5,让电脑判断,如果大于0 要让他做什么,如果小于0让他做什么,等于0又让他做什么;
例子;
  1. f = 10
  2. while f:         
  3.     print("我爱你")        
  4.     f -=1
复制代码
  1. f = 10
  2. if f<0:
  3.     print("1")
  4. elif f>0:
  5.     print("2")
  6. else:
  7.     print("3")
复制代码


有看不懂可以问我
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-12 22:46:05 | 显示全部楼层
while 循环做差不多事的时候用。
if 判断是否要做某事的时候用。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-12 23:03:45 | 显示全部楼层    本楼为最佳答案   
你要清楚while 和if的 用法:
while属于一个循环体。你给while设置一条件,当它不满足的时候,它永远就在循环,满足之后才会跳出。
而if 是用来做判断的;比如我 输入一个5,让电脑判断,如果大于0 要让他做什么,如果小于0让他做什么,等于0又让他做什么;
例子;
  1. f = 10
  2. while f:         
  3.     print("我爱你")        
  4.     f -=1
复制代码
  1. f = 10
  2. if f<0:
  3.     print("1")
  4. elif f>0:
  5.     print("2")
  6. else:
  7.     print("3")
复制代码


有看不懂可以问我
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-13 08:07:06 | 显示全部楼层
while 相当于整个游戏整体,只有人物挂了才会退出(break)。

挂的话需满足几个条件:人物血槽空了,跳崖了,被怪打了(while跳出的条件)。


if就是玩游戏不同的结局,有各种ending,你需要提前把这个结局分支都给写出来,让用户去选择。

比如各种小说,如果选择错了一步,可能会导致人物不同的命运等。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-13 11:39:09 | 显示全部楼层
while(XXX){YYY}:是满足XXX,执行YYY,再看是否满足XXX,再执行YYY,一旦不满足XXX立即跳出循环,if(XXX){YYY}:是满足XXX后执行YYY然后结束。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 17:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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