鱼C论坛

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

[已解决]第四课

[复制链接]
发表于 2018-3-9 08:31:42 | 显示全部楼层 |阅读模式

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

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

x
  1. print('---------------我爱鱼c工作室---------------')
  2. temp = input('不妨猜一下小甲鱼现在心里想的是哪个数字:')
  3. guess = int(temp)
  4. while guess != 8:
  5.     if guess == 8:
  6.         print('我操,你是小甲鱼心里的蛔虫吗?!')
  7.         print('哼,猜中了也没奖励!')
  8.     else:
  9.         if(guess > 8):
  10.             temp = input('呀,大了大了,重新输入吧:')
  11.             guess = int(temp)
  12.         else:
  13.             if(guess < 8):
  14.                 temp = input('小了小了!重新输入吧:')
  15.                 guess = int(temp)
  16. print('游戏结束,不玩啦^_^')
复制代码



                               
登录/注册后可看大图

---------------我爱鱼c工作室---------------
不妨猜一下小甲鱼现在心里想的是哪个数字:1
小了小了!重新输入吧:9
呀,大了大了,重新输入吧:2
小了小了!重新输入吧:3
小了小了!重新输入吧:4
小了小了!重新输入吧:5
小了小了!重新输入吧:6
小了小了!重新输入吧:7
小了小了!重新输入吧:8
游戏结束,不玩啦^_^
>>>
================== RESTART: E:\我的坚果云\PythonStudy\4课\wzyx.py ==================
---------------我爱鱼c工作室---------------
不妨猜一下小甲鱼现在心里想的是哪个数字:8
游戏结束,不玩啦^_^
>>>



为啥    if guess == 8:
        print('我操,你是小甲鱼心里的蛔虫吗?!')
        print('哼,猜中了也没奖励!')
没有执行。

还有,后面一段C有elseif,Python有没有?
最佳答案
2018-3-9 08:54:29
为啥    if guess == 8:
        print('我操,你是小甲鱼心里的蛔虫吗?!')
        print('哼,猜中了也没奖励!')
没有执行。

因为while循环的条件要求guess不能为8,当你输入8以后,下次循环就进不去循环体了,所以没有执行上述语句,你可以将它们放到while循环之后


还有,后面一段C有elseif,Python有没有?
python中有,只是写成了elif
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-9 08:40:25 | 显示全部楼层
你学过C,那应该知道循环体条件不满足,压根不会进入
Python有elif
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-9 08:45:20 From FishC Mobile | 显示全部楼层
没学过,excel会一点,宏了解过。详细一点。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-9 08:48:12 From FishC Mobile | 显示全部楼层
塔利班 发表于 2018-3-9 08:40
你学过C,那应该知道循环体条件不满足,压根不会进入
Python有elif

有点明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-9 08:54:29 | 显示全部楼层    本楼为最佳答案   
为啥    if guess == 8:
        print('我操,你是小甲鱼心里的蛔虫吗?!')
        print('哼,猜中了也没奖励!')
没有执行。

因为while循环的条件要求guess不能为8,当你输入8以后,下次循环就进不去循环体了,所以没有执行上述语句,你可以将它们放到while循环之后


还有,后面一段C有elseif,Python有没有?
python中有,只是写成了elif
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-9 08:59:29 | 显示全部楼层
BngThea 发表于 2018-3-9 08:54
为啥    if guess == 8:
        print('我操,你是小甲鱼心里的蛔虫吗?!')
        print('哼,猜中了 ...

temp = input('不妨猜一下小甲鱼现在心里想的是哪个数字:')
guess = int(temp)
if guess == 8:
    print('我操,你是小甲鱼心里的蛔虫吗?!')
    print('哼,猜中了也没奖励!')
else:
    while guess != 8:
        if(guess > 8):
            temp = input('呀,大了大了,重新输入吧:')
            guess = int(temp)
        elif(guess < 8):
            temp = input('小了小了!重新输入吧:')
            guess = int(temp)
print('游戏结束,不玩啦^_^')


第一次输入8可以执行    print('我操,你是小甲鱼心里的蛔虫吗?!')
    print('哼,猜中了也没奖励!'),
第一次如果错误的话,就执行不了了~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-9 09:00:21 | 显示全部楼层
  1. print('---------------我爱鱼c工作室---------------')
  2. temp = input('不妨猜一下小甲鱼现在心里想的是哪个数字:')
  3. guess = int(temp)
  4. while guess != 8:
  5.     if(guess > 8):
  6.         temp = input('呀,大了大了,重新输入吧:')
  7.         guess = int(temp)
  8.     elif(guess < 8):
  9.         temp = input('小了小了!重新输入吧:')
  10.         guess = int(temp)
  11. else:
  12.     print ("我草,你是小甲鱼心里的蛔虫吗?")
  13.     print ("哼,猜中了也没有奖励")
  14. print('游戏结束,不玩啦^_^')
复制代码

可以改成这样,由于while条件是guess 不等于8,楼主的第5-7行永远不会被执行到,第12、13行也可以稍作修改,这样就可以执行到第一次就猜到的情况
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-9 09:02:02 | 显示全部楼层
煮酒小贱 发表于 2018-3-9 08:59
temp = input('不妨猜一下小甲鱼现在心里想的是哪个数字:')
guess = int(temp)
if guess == 8:

我是说放到while循环的后面,而不是前面
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-9 09:07:28 | 显示全部楼层
tifa2018 发表于 2018-3-9 09:00
可以改成这样,由于while条件是guess 不等于8,楼主的第5-7行永远不会被执行到,第12、13行也可以稍作修 ...

谢谢,我问题问多了。不好意思。但是还是想问一下,else可以不跟IF的吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-9 09:11:49 | 显示全部楼层
煮酒小贱 发表于 2018-3-9 09:07
谢谢,我问题问多了。不好意思。但是还是想问一下,else可以不跟IF的吗?

可以
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-9 09:12:59 | 显示全部楼层
输入8时,相当于break了循环,break操作优先级大于print,所以后面的不会执行了。
放到后面就好了:
  1. print('---------------我爱鱼c工作室---------------')
  2. temp = input('不妨猜一下小甲鱼现在心里想的是哪个数字:')
  3. guess = int(temp)
  4. while guess != 8:
  5.     if(guess > 8):
  6.         temp = input('呀,大了大了,重新输入吧:')
  7.         guess = int(temp)
  8.     else:
  9.         if(guess < 8):
  10.             temp = input('小了小了!重新输入吧:')
  11.             guess = int(temp)
  12. if guess == 8:
  13.         print('我操,你是小甲鱼心里的蛔虫吗?!')
  14.         print('哼,猜中了也没奖励!')
  15. print('游戏结束,不玩啦^_^')
复制代码

ps:放在前面是不行的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-9 09:14:19 | 显示全部楼层
BngThea 发表于 2018-3-9 09:02
我是说放到while循环的后面,而不是前面

temp = input('不妨猜一下小甲鱼现在心里想的是哪个数字:')
guess = int(temp)
while guess != 8:
    if(guess > 8):
        temp = input('呀,大了大了,重新输入吧:')
        guess = int(temp)
    elif(guess < 8):
        temp = input('小了小了!重新输入吧:')
        guess = int(temp)
if guess == 8:
    print('我操,你是小甲鱼心里的蛔虫吗?!')
    print('哼,猜中了也没奖励!')
print('游戏结束,不玩啦^_^')


哈哈,谢谢,这句
if guess == 8:
还可以改成
else:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-8 09:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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