鱼C论坛

 找回密码
 立即注册
查看: 1503|回复: 9

[已解决]大佬教教我

[复制链接]
发表于 2020-10-19 23:52:01 | 显示全部楼层 |阅读模式

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

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

x
  1. for i in range(1, 4):
  2.     for j in range(1, 6):
  3.         print("*", end = "");
  4.     print( )
复制代码

这个代码为什么最后会输出 五排五个*?  
*****
*****
*****
*****
*****
最佳答案
2020-10-20 00:13:01
本帖最后由 hrp 于 2020-10-20 00:15 编辑
英俊男孩建坤 发表于 2020-10-20 00:03
是的  我看错了  但是能不能给我解释一下为什么会输出这么多*啊   我实在不明白这个代码的意思


当第一层循环i=1时,执行完整的第二层循环(j=1,2,3,4,5),即打印5次*且不换行(对应代码是print('*', end='')),第二层循环完以后执行到print(),即打印一个换行符;
然后第一层循环到i=2,执行完整的第二层循环(j=1,2,3,4,5),即打印5次*且不换行(对应代码是print('*', end='')),第二层循环完以后执行到print(),即打印一个换行符;

以此类推......

end=''表示print结尾打印一个空字符,不写end=''就是默认end='\n',即结尾打印一个换行符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-19 23:56:37 | 显示全部楼层
只有三排啊,你看错参数了吧
  1. >>> for i in range(1, 4):
  2.     for j in range(1, 6):
  3.         print("*", end = "");
  4.     print()

  5. *****
  6. *****
  7. *****
  8. >>>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-20 00:03:36 | 显示全部楼层
hrp 发表于 2020-10-19 23:56
只有三排啊,你看错参数了吧

是的  我看错了  但是能不能给我解释一下为什么会输出这么多*啊   我实在不明白这个代码的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-20 00:05:44 | 显示全部楼层
1. 你的代码有一处错误,Python里表达式结束之后不需要“;”
2. 你的代码输出应该是三排五个“*”, 原因是你的代码有两个循环,内循环里打印五次“*”, 由于指明了打印末尾无符号,故五个“*”会连成一排。外部循环range(1, 4)只循环三次,print()r函数默认在结尾有个换行。
所以最终的结果是输出三排*****
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-20 00:07:52 | 显示全部楼层
本帖最后由 英俊男孩建坤 于 2020-10-20 00:10 编辑
porterstudio 发表于 2020-10-20 00:05
1. 你的代码有一处错误,Python里表达式结束之后不需要“;”
2. 你的代码输出应该是三排五个“*”, 原因 ...


“;”有这个可以正常输出结果呀  参数确实看错了  
但是为什么连续打印五个***** 不写成  n*“*”的形式   (n指一个数字)      还有那个end有什么作用呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-20 00:13:01 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 hrp 于 2020-10-20 00:15 编辑
英俊男孩建坤 发表于 2020-10-20 00:03
是的  我看错了  但是能不能给我解释一下为什么会输出这么多*啊   我实在不明白这个代码的意思


当第一层循环i=1时,执行完整的第二层循环(j=1,2,3,4,5),即打印5次*且不换行(对应代码是print('*', end='')),第二层循环完以后执行到print(),即打印一个换行符;
然后第一层循环到i=2,执行完整的第二层循环(j=1,2,3,4,5),即打印5次*且不换行(对应代码是print('*', end='')),第二层循环完以后执行到print(),即打印一个换行符;

以此类推......

end=''表示print结尾打印一个空字符,不写end=''就是默认end='\n',即结尾打印一个换行符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-20 00:16:52 | 显示全部楼层
hrp 发表于 2020-10-20 00:13
当第一层循环i=1时,执行完整的第二层循环(j=1,2,3,4,5),即打印5次*且不换行(对应代码是print('*', en ...

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

使用道具 举报

 楼主| 发表于 2020-10-20 00:17:27 | 显示全部楼层
hrp 发表于 2020-10-20 00:13
当第一层循环i=1时,执行完整的第二层循环(j=1,2,3,4,5),即打印5次*且不换行(对应代码是print('*', en ...

请问一下这个end = “”有什么用呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-20 05:43:04 From FishC Mobile | 显示全部楼层
英俊男孩建坤 发表于 2020-10-20 00:17
请问一下这个end = “”有什么用呀?

建议学的时候多百度,这样记忆会更深刻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-20 07:26:13 From FishC Mobile | 显示全部楼层
英俊男孩建坤 发表于 2020-10-20 00:17
请问一下这个end = “”有什么用呀?

看我上面的回答。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 12:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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