鱼C论坛

 找回密码
 立即注册
查看: 1259|回复: 16

[已解决]第四讲课后题求解释

[复制链接]
发表于 2020-8-4 12:46:59 | 显示全部楼层 |阅读模式

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

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

x
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

这个大循环里面有两个小循环 这两个小循环是先循环上面这个 再循环下面这个 还是两个一起循环
最佳答案
2020-8-4 13:40:04
哥白尼 发表于 2020-8-4 13:37
我明白了  这个程序最后第二行的print()就是用来给程序换行的  每大循环一次就换一次行。那这个print()在 ...


没有影响这倒数1,2两个语句可以调换顺序,不会影响输出内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-4 12:47:42 | 显示全部楼层
本帖最后由 baige 于 2020-8-4 12:51 编辑

先循环上面 再循环下面
先对i赋值,然后执行循环,当i==0时结束循环
然后对j赋值,然后执行下面的循环, 当j==0时结束循环
然后number-1;
但number = 0时外面的大循环结束
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 12:49:38 | 显示全部楼层


从上往下的运行代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 12:51:05 | 显示全部楼层
在 Python 中,同一缩进下的代码,永远是从前往后执行的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 12:51:35 | 显示全部楼层
Twilight6 发表于 2020-8-4 12:49
从上往下的运行代码

还有 他这个print()里面有这个end=""  这个操作符后面的双引号里面为什么没有空格  不应该是空出一个格来吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 12:53:51 | 显示全部楼层
baige 发表于 2020-8-4 12:47
先循环上面 再循环下面
先对i赋值,然后执行循环,当i==0时结束循环
然后对j赋值,然后执行下面的循环, 当j= ...

还有 他这个print()里面有这个end=""  这个操作符后面的双引号里面为什么没有空格  不应该是空出一个格来吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

比如print(' ',end = '')表示输出空格后结束输出后面接end里的字符,此时end=''为空,也就是不输出任何东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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



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

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

这里不想打印完之后打印空格,所以不空空格了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

那在这个地方用end=""的意思是不是就是不隔行的意思 每次进行内部小循环的时候让他排成一排挨着
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


是,然后print()是用来换行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 13:28:00 | 显示全部楼层
baige 发表于 2020-8-4 13:17
是,然后print()是用来换行的

我又不明白了,为什么他会是换行的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 13:29:56 | 显示全部楼层
print()里面没写end,默认end = '\n' , \n 表示换行 所以print()就会输出换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 13:32:39 | 显示全部楼层
baige 发表于 2020-8-4 13:29
print()里面没写end,默认end = '\n' , \n 表示换行 所以print()就会输出换行

奥 如果 没写end 就是 print(“”,end="\n") 打印完前面引号里面的就自动下一行 是这样吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 13:37:43 | 显示全部楼层

我明白了  这个程序最后第二行的print()就是用来给程序换行的  每大循环一次就换一次行。那这个print()在这个程序里面是倒数第二行 我能把它换成倒数第一吗  和最后一行换一下吗  我刚试了以下  好像没有影响
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 13:40:04 | 显示全部楼层    本楼为最佳答案   
哥白尼 发表于 2020-8-4 13:37
我明白了  这个程序最后第二行的print()就是用来给程序换行的  每大循环一次就换一次行。那这个print()在 ...


没有影响这倒数1,2两个语句可以调换顺序,不会影响输出内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 14:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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