雏乃酱 发表于 2019-1-21 21:22:50

除不尽的时候会一直循环为什么?

i = 11
while i:
    print('Where are you from?')
    i = i - 2

i = 9,7之类的也是,为什么捏??

雏乃酱 发表于 2019-1-21 21:35:00

如果i = 9,如何想办法让他输出 4次呢?

sunrise085 发表于 2019-1-21 21:36:10

因为你的程序中循环的判断条件是整型i的值,在循环体中对i进行的减2操作,会跳过i=0
然而,用整型变量做真假判断,只有i=0时,才为False,所以这个判断条件永远为真,程序近进入了死循环。

PS:bool类型是int类型的子类,bool中的True=1,False=0

塔利班 发表于 2019-1-21 21:49:34

i = 9
while i>2:
    print('Where are you from?')
    i = i - 2

雏乃酱 发表于 2019-1-22 00:02:54

塔利班 发表于 2019-1-21 21:49
i = 9
while i>2:
    print('Where are you from?')


似乎是可以,可到 i = 10的时候就不行了,只打印4个

雏乃酱 发表于 2019-1-22 00:07:31

sunrise085 发表于 2019-1-21 21:36
因为你的程序中循环的判断条件是整型i的值,在循环体中对i进行的减2操作,会跳过i=0
然而,用整型变量做真 ...

对的,后来我发现while循环是判断True或者False的,但是奇偶整数都兼容的答案还没有出现~~

郑载序 发表于 2019-1-22 07:56:41

tao ge if han shu

sunrise085 发表于 2019-1-22 20:25:14

你一直都没有说清楚你的需求。是打算输入一个正整数,然后当i为偶数的时候输出一次,9和8都是输出四次,对么?按照这个意思写了一下
i = 11
while i>0:
    if i/2==0:
      print('Where are you from?')
    i = i - 1

Stubborn 发表于 2019-1-22 22:47:58

本帖最后由 Stubborn 于 2019-1-22 22:53 编辑


i = 11
while i:   #判断为假的条件才会退出,没有判断条件,非空非0为真。
    print('Where are you from?')
    i = i - 2

首先当i=0才会跳出循环体,你这里i是得不到0的值的

可乐西瓜 发表于 2019-1-29 22:12:32

while循环只要条件不为true会一直循环下去,如果你只想循环几次,可以用for循环
页: [1]
查看完整版本: 除不尽的时候会一直循环为什么?