鱼C论坛

 找回密码
 立即注册
查看: 1043|回复: 8

[已解决]各位大佬我又来问白痴问题了。。。

[复制链接]
发表于 2018-3-20 21:40:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 无聊的数学家 于 2018-3-20 21:42 编辑

i = 0
>>> while i <= 100:
        if i % 2 != 0:
                print(i , end= ' ')
                i += 1
        else:
                i += 1

               
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99



这是甲鱼老师上课的习题,我不太懂为什么最后那个else要打出来干嘛。之前不是已经在if里面让他每次加一了吗。。。


后来我又打了一个我自认为不会有错的进去
i = 0
>>> while i <= 100:
        if i % 2 != 0:
                print(i)
                i += 1
        else:
                print(' ')
               
SyntaxError: multiple statements found while compiling a single statement
然后就有了这个问题,有大佬帮助求解吗。。。。到底什么问题啊
最佳答案
2018-3-20 21:53:36
1.因为无论是否if成立,都要使i加一,才能使循环正常的继续下去。但可以写成
  1. i = 0
  2. while i <= 100:
  3.     if i % 2 != 0:
  4.         print(i , end= ' ')
  5.     i += 1

复制代码

2.是因为再交互模式(>>>提示符下)粘帖了多行代码,而不是自己输入的,建议在新建程序(new file)来编写运行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-20 21:43:05 | 显示全部楼层
确实多余
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-20 21:46:28 | 显示全部楼层
你后来改的i=0进去直接进else而且i没有加就重复100次print
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-20 21:52:44 | 显示全部楼层
塔利班 发表于 2018-3-20 21:46
你后来改的i=0进去直接进else而且i没有加就重复100次print

是多余,他是想说
while i <= 100:
        if i % 2 != 0:
                print(i , end= ' ')
        i += 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-3-20 21:53:36 | 显示全部楼层    本楼为最佳答案   
1.因为无论是否if成立,都要使i加一,才能使循环正常的继续下去。但可以写成
  1. i = 0
  2. while i <= 100:
  3.     if i % 2 != 0:
  4.         print(i , end= ' ')
  5.     i += 1

复制代码

2.是因为再交互模式(>>>提示符下)粘帖了多行代码,而不是自己输入的,建议在新建程序(new file)来编写运行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-20 22:01:29 | 显示全部楼层
你后面偶数不加怎么继续循环啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-20 23:01:38 | 显示全部楼层
不太懂为什么最后那个else要打出来干嘛。之前不是已经在if里面让他每次加一了吗

这是因为你要求的是0到100的奇数,事先已经定义了i=0,通过for循环和i+=1来逐个递增直到100,
if里面每次加一是因为 在满足是奇数1,3,5...的时候会加1,但是如果不定义else,那么到了2,4,6...他就不会自加,那就无法完成for循环了。  请采纳,谢谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-21 09:16:29 | 显示全部楼层
while i <= 100:
        if i % 2 != 0:
                print(i)
        else:
                print(' ')
         i += 1
else 语句块不加一,会一直循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-21 20:45:21 | 显示全部楼层
这个问题太简单了,相信你已经明白了吧。
我就说一下贴代码的问题吧:
编辑框的<>可以贴代码奥。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 02:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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