谁能解释一下这段代码背后的逻辑
Can any one explain the logic behind this code
很抱歉问了这个非常基本的问题 - 但我不明白为什么它会这样做。
a = int(input('Enter No. of rows'))
for i in range (a,0,-1):
print(i*'*')
感谢您抽出时间审阅并回答此问题。
range
函数接受三个参数。第一个参数。表示起始整数,第二个参数。表示停止的整数,以及第 3 个参数。代表数字应该增加多少。因此,在这种情况下,(start, stop, step) = (a, 0, -1)
。这基本上意味着从 a
(输入值)开始,移动到 0
并递增 -1
。
然后,在每次迭代中,打印重复 i
多次的星号 (*
)。
循序渐进。
在第一行你有:
a = int(input('Enter No. of rows'))
首先,您有一个变量 a
,它被归因于用户 input
的 int
值。 int()
和 input()
都是函数。
这意味着用户输入的任何数字都将被转换为 int 类型,结果将归因于一个名为 a
的变量
然后你有一个 for 循环(参见文档 here):
for i in range (a,0,-1):
for
当您有一段代码要重复固定次数时,使用循环。它遍历序列(列表、元组、字典、集合或字符串)。
for
循环的语法如下:
for <item> in <iterable>:
<loop body>
因此对于可迭代对象中的每一项,将执行 for 循环体内的代码。
然后你就有了range()
函数(见文档here)。它需要 3 个参数:range(<starting int>, <stopping int>, <step int>)
starting int
: 返回整数序列的起始整数
stopping int
: 返回整数序列之前的整数。
step int
:整数值,决定序列中每个整数之间的增量
负步长值意味着 range()
函数将以相反的顺序生成数字序列。
在 range (a,0,-1)
的情况下,这意味着从 range()
函数返回的数字序列应该从 a
的值开始,在 0 处停止并减少 1。
然后在最后一行你有:
print(i*'*')
(i*'*')
位意味着字符串 '*'
应该在控制台上打印 i
次(查看 this 解释)。
很抱歉问了这个非常基本的问题 - 但我不明白为什么它会这样做。
a = int(input('Enter No. of rows'))
for i in range (a,0,-1):
print(i*'*')
感谢您抽出时间审阅并回答此问题。
range
函数接受三个参数。第一个参数。表示起始整数,第二个参数。表示停止的整数,以及第 3 个参数。代表数字应该增加多少。因此,在这种情况下,(start, stop, step) = (a, 0, -1)
。这基本上意味着从 a
(输入值)开始,移动到 0
并递增 -1
。
然后,在每次迭代中,打印重复 i
多次的星号 (*
)。
循序渐进。
在第一行你有:
a = int(input('Enter No. of rows'))
首先,您有一个变量 a
,它被归因于用户 input
的 int
值。 int()
和 input()
都是函数。
这意味着用户输入的任何数字都将被转换为 int 类型,结果将归因于一个名为 a
然后你有一个 for 循环(参见文档 here):
for i in range (a,0,-1):
for
当您有一段代码要重复固定次数时,使用循环。它遍历序列(列表、元组、字典、集合或字符串)。
for
循环的语法如下:
for <item> in <iterable>:
<loop body>
因此对于可迭代对象中的每一项,将执行 for 循环体内的代码。
然后你就有了range()
函数(见文档here)。它需要 3 个参数:range(<starting int>, <stopping int>, <step int>)
starting int
: 返回整数序列的起始整数
stopping int
: 返回整数序列之前的整数。
step int
:整数值,决定序列中每个整数之间的增量
负步长值意味着 range()
函数将以相反的顺序生成数字序列。
在 range (a,0,-1)
的情况下,这意味着从 range()
函数返回的数字序列应该从 a
的值开始,在 0 处停止并减少 1。
然后在最后一行你有:
print(i*'*')
(i*'*')
位意味着字符串 '*'
应该在控制台上打印 i
次(查看 this 解释)。