CXP 发表于 2017-12-5 15:03:26

4讲 课后题目

temp = input('请输入一个整数:')
number = int(temp)
i = 1
while number:
    print(i)
    i = i + 1
    number = number - 1

##这个是不懂怎么打出那样的效果,如果我输入2 最后2-1 不是等1了吗?怎么会有 12 的呢 2是怎么来的?




第2个代码
temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    while i:
      print('',end ='')
      i =i - 1
    j = number
    while j:
      print('*',end='')
      j = j - 1
    print()
    number = number - 1   这个看不懂。可以解释一下吗?大神们

BngThea 发表于 2017-12-5 15:15:46

循环就是条件为真的时候反复执行循环内部的代码,
你的问题不在于这两段代码,而是没有理解循环的含义

像番茄加两个蛋 发表于 2017-12-5 15:58:22

循环就是一直循环循环体内的执行语句,直到执行条件不符时结束循环!

暖风处处 发表于 2017-12-6 19:24:34

第一个:while后面的条件永远为真,输入2后,在IDLE里执行的是 print(i) 这条指令,所以是1,然后会继续往下走,i=i+1,number=number-1,此时number=1,条件为真,所以会执行 拼图(i),此时因为上面i=i+1=2,所以输出2,然后继续i=i+1=3,而number=1-1=0,此时条件为假所以退出循环,所以最后是输出1,2.
第二个:用8做例子,输入8 ,条件为真所以进入循环,先执行 i=number-1=7,然后执行 print(‘ ’,end=' '),输出的就是7个空格,然后 i=i-1=6,此时 j=number=8,执行print(‘*’,end=‘ ’),就是输出8个*,然后 j=j-1=7,后面在循环7次直到 i=0,j=1,此时number=1,所以在进行循环,但是因为 i=0,所以i的那个循环就退出了,只执行j的循环,就是输出一个*,number=1-1=0,整个的循环都结束,最后出现的就是课后题那里那样的效果。

暖风处处 发表于 2017-12-6 19:25:40

暖风处处 发表于 2017-12-6 19:24
第一个:while后面的条件永远为真,输入2后,在IDLE里执行的是 print(i) 这条指令,所以是1,然后会继续 ...

拼图是print 【捂脸】
页: [1]
查看完整版本: 4讲 课后题目