哥白尼 发表于 2020-8-4 12:46:59

第四讲课后题求解释

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

这个大循环里面有两个小循环 这两个小循环是先循环上面这个 再循环下面这个 还是两个一起循环

baige 发表于 2020-8-4 12:47:42

本帖最后由 baige 于 2020-8-4 12:51 编辑

先循环上面 再循环下面
先对i赋值,然后执行循环,当i==0时结束循环
然后对j赋值,然后执行下面的循环, 当j==0时结束循环
然后number-1;
但number = 0时外面的大循环结束

Twilight6 发表于 2020-8-4 12:49:38



从上往下的运行代码

永恒的蓝色梦想 发表于 2020-8-4 12:51:05

在 Python 中,同一缩进下的代码,永远是从前往后执行的。

哥白尼 发表于 2020-8-4 12:51:35

Twilight6 发表于 2020-8-4 12:49
从上往下的运行代码

还有 他这个print()里面有这个end=""这个操作符后面的双引号里面为什么没有空格不应该是空出一个格来吗

哥白尼 发表于 2020-8-4 12:53:51

baige 发表于 2020-8-4 12:47
先循环上面 再循环下面
先对i赋值,然后执行循环,当i==0时结束循环
然后对j赋值,然后执行下面的循环, 当j= ...

还有 他这个print()里面有这个end=""这个操作符后面的双引号里面为什么没有空格不应该是空出一个格来吗

baige 发表于 2020-8-4 12:54:42

哥白尼 发表于 2020-8-4 12:51
还有 他这个print()里面有这个end=""这个操作符后面的双引号里面为什么没有空格不应该是空出一个格 ...

比如print(' ',end = '')表示输出空格后结束输出后面接end里的字符,此时end=''为空,也就是不输出任何东西

Twilight6 发表于 2020-8-4 12:55:29

哥白尼 发表于 2020-8-4 12:51
还有 他这个print()里面有这个end=""这个操作符后面的双引号里面为什么没有空格不应该是空出一个格 ...



end 是print 默认参数,当打印完 print 内容时候自动追加打印的默认值是一个换行符 \n

所以这里你重新赋值会将原有的换行效果覆盖了,追加打印的是空格而不是换行

永恒的蓝色梦想 发表于 2020-8-4 13:12:50

哥白尼 发表于 2020-8-4 12:53
还有 他这个print()里面有这个end=""这个操作符后面的双引号里面为什么没有空格不应该是空出一个格 ...

这里不想打印完之后打印空格,所以不空空格了。

哥白尼 发表于 2020-8-4 13:16:05

baige 发表于 2020-8-4 12:54
比如print(' ',end = '')表示输出空格后结束输出后面接end里的字符,此时end=''为空,也就是不输出任何东西

那在这个地方用end=""的意思是不是就是不隔行的意思 每次进行内部小循环的时候让他排成一排挨着

baige 发表于 2020-8-4 13:17:13

哥白尼 发表于 2020-8-4 13:16
那在这个地方用end=""的意思是不是就是不隔行的意思 每次进行内部小循环的时候让他排成一排挨着

是,然后print()是用来换行的

哥白尼 发表于 2020-8-4 13:28:00

baige 发表于 2020-8-4 13:17
是,然后print()是用来换行的

我又不明白了,为什么他会是换行的意思

baige 发表于 2020-8-4 13:29:56

print()里面没写end,默认end = '\n' , \n 表示换行 所以print()就会输出换行

哥白尼 发表于 2020-8-4 13:32:39

baige 发表于 2020-8-4 13:29
print()里面没写end,默认end = '\n' , \n 表示换行 所以print()就会输出换行

奥 如果 没写end 就是 print(“”,end="\n") 打印完前面引号里面的就自动下一行 是这样吗

baige 发表于 2020-8-4 13:33:13

哥白尼 发表于 2020-8-4 13:32
奥 如果 没写end 就是 print(“”,end="\n") 打印完前面引号里面的就自动下一行 是这样吗

哥白尼 发表于 2020-8-4 13:37:43

baige 发表于 2020-8-4 13:33


我明白了这个程序最后第二行的print()就是用来给程序换行的每大循环一次就换一次行。那这个print()在这个程序里面是倒数第二行 我能把它换成倒数第一吗和最后一行换一下吗我刚试了以下好像没有影响

baige 发表于 2020-8-4 13:40:04

哥白尼 发表于 2020-8-4 13:37
我明白了这个程序最后第二行的print()就是用来给程序换行的每大循环一次就换一次行。那这个print()在 ...

没有影响这倒数1,2两个语句可以调换顺序,不会影响输出内容
页: [1]
查看完整版本: 第四讲课后题求解释