Peteryo01223 发表于 2019-11-27 17:27:28

求助:基础入门学习Python第4课,一个习题,我的方法不同

零基础入门学习Python,第四课练习中,有一条道题,关于 8个*的联系。

我的答案如下,看上去和小甲鱼的结果很相似,行数比他少哦(自鸣得意中。。。),但是好像最后一个 * 的位置偏右了一个格子,且下方多了一个空行。请问为什么?

百思不得其解~

菜鸟问题,请帮助!

temp = input('请您输入一个整数:')
number = int(temp)+1
while (number > 0):
    number = number -1
    i = ('*' * number)
    print (' '* (number -1), i)

jackz007 发表于 2019-11-27 18:22:52

本帖最后由 jackz007 于 2019-11-27 18:31 编辑

while (number > 0):
    number = number -1   # 最后一次循环 number = 1,而 number = number - 1 = 0,这就是出现最后那个空行的原因。

    print (' '* (number -1), i)# print() 被逗号隔开的 ' '* (number -1) 和 i 是两个参数,print() 会在打印完第一个参数后,输出一个空格,然后才打印第二个参数,这样的话,'*' 前面的空格就会多出 1 个,这个问题楼主有考虑吗?

      这样写代码岂不是更简洁
number = int(input('请您输入一个整数:') . strip())
while (number > 0):
    print(' ' * (number - 1) + '*' * number)
    number = number - 1

zltzlt 发表于 2019-11-27 20:31:54

1. 应该把 number = number -1 放到代码最后面;
2. number = int(temp)+1,+1 纯属多余,可以去掉
3. 应该把 print (' '* (number -1), i) 中的 , 改为 +,不然会多出一个空格。

temp = input('请您输入一个整数:')
number = int(temp)
while number > 0:
    i = ('*' * number)
    print(' ' * (number - 1) + i)
    number = number - 1

Peteryo01223 发表于 2019-11-28 08:47:51

jackz007 发表于 2019-11-27 18:22
while (number > 0):
    number = number -1   # 最后一次循环 number = 1,而 number = number - 1 = 0 ...

厉害。感谢啦~

Peteryo01223 发表于 2019-11-28 08:48:36

zltzlt 发表于 2019-11-27 20:31
1. 应该把 number = number -1 放到代码最后面;
2. number = int(temp)+1,+1 纯属多余,可以去掉
3. 应 ...

非常感谢指点~

还有苹果 发表于 2019-11-28 22:37:36

学习到了,

liu1527189 发表于 2019-12-3 21:19:20

腻害呀
页: [1]
查看完整版本: 求助:基础入门学习Python第4课,一个习题,我的方法不同