EasonShan 发表于 2020-4-5 23:26:01

第4课作业打印出的*不能顶格

本帖最后由 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
因无法上传作业图片,请各位老哥帮忙审阅!

ba21 发表于 2020-4-6 00:07:47

*不能顶格 只有你能才理解的说法。
能把问题描述清楚?

txxcat 发表于 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

EasonShan 发表于 2020-4-6 00:23:27

ba21 发表于 2020-4-6 00:07
*不能顶格 只有你能才理解的说法。
能把问题描述清楚?

老哥,小甲鱼的标准答案已经编辑进去了,但是因发帖中图片没有上传选项,所以看不到原作业截图啦{:5_100:}。

EasonShan 发表于 2020-4-6 00:29:14

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

老哥稳!连修改的都给出来了{:5_106:}

支离疏哈哈哈 发表于 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)

你把字符串用拼接的方式,这样两个字符串之间就不会有空格了
页: [1]
查看完整版本: 第4课作业打印出的*不能顶格