求助啊。老版第四课课后题
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 哪位大神能讲解下这段代码。。为啥星号递减下去而且星星的左边坐标一直随着星号递减增加的。。看不懂啊 大神救我
temp = input('请输入一个整数:')
number = int(temp)
while number: #外循环
i = number - 1
while i:#这层循环4到0内循环前半部分
print(' ', end = '')#每行打印空格
i = i - 1
j = number #这层循环5到0
while j:
print('*', end = '')#每行打印*号(在空格后)内循环后半部分
j = j - 1
print()
number = number - 1
见注释,如果解决了,记得给个最佳 本帖最后由 昨非 于 2020-8-31 19:31 编辑
“为啥星号递减下去而且星星的左边坐标一直随着星号递减增加的”的原因在于:
第8行i=i-1的同时(同一外循环下)第1行也执行了 j=j-1
也就意味着,外循环对应打印一行,内循环每次先打印空格,后打印*,每行都各自比前一行少一个 昨非 发表于 2020-8-31 19:24
见注释,如果解决了,记得给个最佳
哎嘿。虽然目前没理解透。但是貌似大佬之前也是你回答的我。 temp = input('请输入一个整数:')# 接收输入,为字符串型
number = int(temp)# 强制转换字符串型为数值型,转换失败会报错
while number:# 当录入的数字大于0时执行while循环,等于0时判断为Flase,while循环不执行
i = number - 1# 赋值i为number-1
while i:# 当录入的数字大于0时执行代码,等于0时为Flase不执行
print(' ', end='')# 打印输出空格(非空值),结尾不换行
i = i - 1# i递减,一直到0时while循环不执行
j = number# 赋值j为number
while j:# 当录入的数字大于0时执行代码,等于0时为Flase不执行
print('*', end='')# 打印输出字符型“*”,结尾不换行
j = j - 1# j递减,一直到0时while循环不执行
print()# 输出空的一行,可写可不写
number = number - 1# number递减,一直到0时不执行代码
页:
[1]