鱼C论坛

 找回密码
 立即注册
查看: 2844|回复: 7

[已解决]自学day4,关于while循环的一些问题

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

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

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

x
本帖最后由 康小泡 于 2018-11-9 17:55 编辑

今天学了while循环,课程里问了一个问题是如何限制回答次数.(在答案是确定的情况下,不用每一次都随机答案)

然后我写了如下代码
  1. i = 3
  2. temp = input('请你猜一个一到十之间的数字')
  3. guess = int(temp)
  4. while guess != 6 and i > 0:
  5.     temp = input('你猜错了!再猜一次')
  6.     guess = int(temp)
  7.     i = i - 1
  8.     if guess == 6:
  9.         print('牛逼兄弟')
  10.     else:
  11.         if guess < 6:
  12.             print('猜小了')
  13.         else:
  14.             print('猜大了')
  15. print('游戏结束')
复制代码


发现可以猜四次? 原来是第一次没有算到while循环里  请问怎么改进
最佳答案
2018-11-9 17:49:57
  1. i = 3
  2. print('请你猜一个一到十之间的数字:',end='')
  3. guess = 0
  4. while guess != 6 and i > 0:
  5.     if i==3:
  6.         temp=input()
  7.     else:
  8.         temp = input('你猜错了!再猜一次')
  9.     guess = int(temp)
  10.     i = i - 1
  11.     if guess == 6:
  12.         print('牛逼兄弟')
  13.     else:
  14.         if guess < 6:
  15.             print('猜小了')
  16.         else:
  17.             print('猜大了')
  18. print('游戏结束')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-11-9 17:42:54 | 显示全部楼层
还有就是 应该怎么写才可以显示第一次就猜大了还是猜小了咧?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-9 17:49:57 | 显示全部楼层    本楼为最佳答案   
  1. i = 3
  2. print('请你猜一个一到十之间的数字:',end='')
  3. guess = 0
  4. while guess != 6 and i > 0:
  5.     if i==3:
  6.         temp=input()
  7.     else:
  8.         temp = input('你猜错了!再猜一次')
  9.     guess = int(temp)
  10.     i = i - 1
  11.     if guess == 6:
  12.         print('牛逼兄弟')
  13.     else:
  14.         if guess < 6:
  15.             print('猜小了')
  16.         else:
  17.             print('猜大了')
  18. print('游戏结束')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-11-9 18:14:31 | 显示全部楼层

所以是先对guess赋值0 从而引出while循环咯
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-9 18:19:47 | 显示全部楼层

大佬再问一个!
就是要实现如下效果

请输入一个整数:8
        ********
       *******
      ******
     *****
    ****
   ***
  **
*


我写的代码是


temp = input('请输入一个整数:')
num = int(temp)
certain = num +1
while num < certain:
    print(" "*num + "*"*num)
    num = num - 1


然后发现这个到最后会无线输出空格,基于这个代码,有什么方法给他设置一个下限吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-9 18:32:58 | 显示全部楼层
  1. temp = input('请输入一个整数:')
  2. num = int(temp)
  3. while num:
  4.     certain = num - 1
  5.     print(" "*certain + "*"*num)
  6.     num = num - 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-11-9 18:54:20 | 显示全部楼层

哇 谢谢大佬 !这里while后面没有条件是啥意思呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-9 19:02:22 | 显示全部楼层
while num
这里num就是条件,只要后面非0非空非假就满足条件
if 也一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 01:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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