鱼C论坛

 找回密码
 立即注册
查看: 1178|回复: 8

[已解决]《零基础入门学习Python》第004讲课后题

[复制链接]
发表于 2020-6-16 17:30:11 | 显示全部楼层 |阅读模式

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

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

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

问题:为啥要print一个空的括号?

-----来自python小白的无助------
最佳答案
2020-6-16 17:35:18


这个是为了起到换行的作用,以为 while j 的循环过程中print 的默认参数 end = '' 空字符串 所以是一直不换行的

而且 while j 这个循环是循环打印这一行星星的数,所以循环过程中不能换行

但是循环结束要开始下一行的打印所以要加个print() 起到换行作用
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-16 17:35:04 | 显示全部楼层
有用的,换行
不然型号就会打印在一行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 17:35:18 | 显示全部楼层    本楼为最佳答案   


这个是为了起到换行的作用,以为 while j 的循环过程中print 的默认参数 end = '' 空字符串 所以是一直不换行的

而且 while j 这个循环是循环打印这一行星星的数,所以循环过程中不能换行

但是循环结束要开始下一行的打印所以要加个print() 起到换行作用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 17:35:51 | 显示全部楼层
本帖最后由 xiaosi4081 于 2020-6-16 17:38 编辑

print()
相当于:
print(end='\n')
只是end参数隐藏了
end参数默认是换行

起到换行作用
而且 while j 这个循环是循环打印这一行星星的数,所以循环过程中不能换行

但是循环结束要开始下一行的打印所以要加个print() 起到换行作用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 17:36:39 | 显示全部楼层
刚才回答没过脑子...没看到这是在循环内
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 17:36:58 | 显示全部楼层
xiaosi4081 发表于 2020-6-16 17:35
print()
相当于:
print('\n')



不能相当于  print('\n')  


print() 只打印一个换行,而你这样是打印两个换行,会导致每次打完一行 * 会空一行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-16 17:54:44 | 显示全部楼层
Twilight6 发表于 2020-6-16 17:36
不能相当于  print('\n')  

确实打印了两行!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-16 17:56:01 | 显示全部楼层
青出于蓝 发表于 2020-6-16 17:35
有用的,换行
不然型号就会打印在一行

明白你的意思~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 18:01:12 | 显示全部楼层
彦彦儿 发表于 2020-6-16 17:54
确实打印了两行!



嗯嗯~ 因为 print有个默认参数  end = '\n' 也就是这个默认参数才能使 print 函数起到换行作用  

所以你直接 print() 也会有换行效果 反而你 print('\n') 这会先打印一次我们输入的 \n 然后在打印此 end = '\n' 导致打印两行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-22 00:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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