鱼C论坛

 找回密码
 立即注册
查看: 978|回复: 5

[已解决]第4课作业打印出的*不能顶格

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

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

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

x
本帖最后由 EasonShan 于 2020-4-6 00:21 编辑

第四课作业之一,如下:
temp=input('请输入一个整数:')
a=int(temp)
b=a-1
while a:
    print(' '*b,'*'*a)
    b=b-1
    a=a-1
按这个代码运行后(和小甲鱼的答案略有不同),打印出的*不能顶格,请问问题出在哪。
以下是标准答案:
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-4-6 00:21:31
本帖最后由 txxcat 于 2020-4-6 00:24 编辑

因为print在打印多个参数之间会打印一个空格,所以你每行的空格实际上比希望的多了一个,到了最后一行,虽然' '*0不会被打印,但两个元素之间的空格依旧被打印出来了,所以没办法顶格,你可以把代码中的空格改成其他可见的字符就可以看到多的空格了,例如改成'|’,就这样了:
>>> %Run test15.py
请输入一个整数:9
|||||||| *********
||||||| ********
|||||| *******
||||| ******
|||| *****
||| ****
|| ***
| **
 *
要顶格可以改成这样:
temp=input('请输入一个整数:')
a=int(temp)
b=a-1
while a:
    print(' '*b,end='')
    print('*'*a)
    b=b-1
    a=a-1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-6 00:07:47 | 显示全部楼层
*不能顶格 只有你能才理解的说法。
能把问题描述清楚?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-6 00:21:31 | 显示全部楼层    本楼为最佳答案   
本帖最后由 txxcat 于 2020-4-6 00:24 编辑

因为print在打印多个参数之间会打印一个空格,所以你每行的空格实际上比希望的多了一个,到了最后一行,虽然' '*0不会被打印,但两个元素之间的空格依旧被打印出来了,所以没办法顶格,你可以把代码中的空格改成其他可见的字符就可以看到多的空格了,例如改成'|’,就这样了:
>>> %Run test15.py
请输入一个整数:9
|||||||| *********
||||||| ********
|||||| *******
||||| ******
|||| *****
||| ****
|| ***
| **
 *
要顶格可以改成这样:
temp=input('请输入一个整数:')
a=int(temp)
b=a-1
while a:
    print(' '*b,end='')
    print('*'*a)
    b=b-1
    a=a-1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-6 00:23:27 | 显示全部楼层
ba21 发表于 2020-4-6 00:07
*不能顶格 只有你能才理解的说法。
能把问题描述清楚?

老哥,小甲鱼的标准答案已经编辑进去了,但是因发帖中图片没有上传选项,所以看不到原作业截图啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-6 00:29:14 | 显示全部楼层
txxcat 发表于 2020-4-6 00:21
因为print在打印多个参数之间会打印一个空格,所以你每行的空格实际上比希望的多了一个,到了最后一行,虽 ...

老哥稳!连修改的都给出来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-23 15:05:57 | 显示全部楼层
a=input('shuruzhengshu')
a=int(a)
b=a-1
while b>0:
    print(' '*b+'*'*a)
    b=b-1
    a=a-1
else:
    print('*'*a)

你把字符串用拼接的方式,这样两个字符串之间就不会有空格了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 18:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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