zhuoyue65 发表于 2017-11-10 15:18:42

第006讲动动手1程序中的疑惑

题目:请用程序打印出0-100的奇数

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

这里print(i,end='')中,如果没有 end='' 我的程序打印是竖列的,有了 end=''我的程序是横着排列的。这里 end='' 具体什么意思,怎么理解?

if函数里 else条件下也是 i=i+1,但是如果没有 else条件 我程序起来就没有打印东西,这个是为什么?

冬雪雪冬 发表于 2017-11-10 15:33:01

end是print是输出完毕后加上的字符串,缺省是\n,即回车换行,=''就是什么也不加。
如果没有else则i为偶数时,不会增加循环一直进行下去。可以改为:
i=0
while i<=100:
    if i % 2!=0:
      print(i,end='')
    i=i+1

BngThea 发表于 2017-11-10 15:42:06

1 print函数的end参数指定了打印的分割符号,默认是换行,用 end='' 表示没有分割
2 如果没有else,进入循环时i的值为0,if判断为假,而且也没有在循环体没改变,所以变成了死循环

阿撩 发表于 2017-11-10 15:42:16

end= ' ',就是打印不换行,就是你所谓的竖列变横列。
因为你要检测1~100的奇数,无论这个数是奇数还是偶数它都要加1进行递增,而如果你去掉else:之后,i=0不符合if语句,又没有else条件使它递增,所以没有输出。

zhuoyue65 发表于 2017-11-10 16:32:15

阿撩 发表于 2017-11-10 15:42
end= ' ',就是打印不换行,就是你所谓的竖列变横列。
因为你要检测1~100的奇数,无论这个数是奇数还是 ...

哦哦,好的。“无论这个数是奇数还是偶数它都要加1进行递增,而如果你去掉else:之后,i=0不符合if语句,又没有else条件使它递增,所以没有输出。”
那我奇数加1,不就变成偶数了? 那偶数的话就不打印了。
那第一步,i=0的时候进入循环,最后输出i=1
那第二步,i=1的时候进入循环,if1%2 !=0 , print(1),i=1+1=2 ;

为什么说else条件下没有递增? if条件下就有 i=i+1,这个不是也是递增条件吗?

程序代码少了一段。标准的是下面的。
i=0
while i<=100:
    if i % 2!=0:
      print(i,end='')
      i=i+1
    else:
      i=i+1

zhuoyue65 发表于 2017-11-10 16:34:15

冬雪雪冬 发表于 2017-11-10 15:33
end是print是输出完毕后加上的字符串,缺省是\n,即回车换行,=''就是什么也不加。
如果没有else则i为偶数 ...

1. end='' 这个明白了。
2.原本的程序如下:
i=0
while i<=100:
    if i % 2!=0:
      print(i,end='')
      i=i+1
    else:
      i=i+1

可以这么理解吗? if 条件下 print(i,end='') 下面的i=i+1 这里是给奇数递增?   else 下的i=i+1给偶数递增?

冬雪雪冬 发表于 2017-11-10 16:41:16

zhuoyue65 发表于 2017-11-10 16:34
1. end='' 这个明白了。
2.原本的程序如下:



是的,所以我改的就可以都加一了。

zhuoyue65 发表于 2017-11-10 16:45:07

冬雪雪冬 发表于 2017-11-10 16:41
是的,所以我改的就可以都加一了。

好的,谢谢了。刚才看到差别了。 缩进了一格。 {:5_92:}

阿撩 发表于 2017-11-10 16:55:44

zhuoyue65 发表于 2017-11-10 16:32
哦哦,好的。“无论这个数是奇数还是偶数它都要加1进行递增,而如果你去掉else:之后,i=0不符合if语句, ...

当你的i= 0时,if语句判断为假,所以不执行i= i+1,此时如果没有else条件的话,它就不会递增了。当有else下这个i=i+1的话,i就会继续增长。if里的i=i+1要if条件判断为真时才执行,那为假时怎么办呢?所以有else这个语句。

dbpfjui 发表于 2017-11-13 14:55:31

i=0
while i<=100:
    if i % 2!=0:
       print(i+1,end='')
    i=i+1
这样就可以打出所有偶数了

zhuoyue65 发表于 2017-11-17 20:02:45

dbpfjui 发表于 2017-11-13 14:55
i=0
while i

谢谢,之前已经解决了。
页: [1]
查看完整版本: 第006讲动动手1程序中的疑惑