dragov 发表于 2025-7-31 15:41:57

for 循环语句



for i in range(10,1,1):
      print("*"*i)

为什么不能输出图形呢 ?如果for i in range(1,10,1): 的话,就能输出图形。

FishC 发表于 2025-7-31 15:42:53

鱼油的问题在于range(10,1,1)的参数设置错误,导致循环无法执行。原因分析如下:

错误原因:
1. range(10,1,1) 中:
   - 起始值:10
   - 结束值:1(循环到1时停止,不包括1)
   - 步长:1(正数递增)
2. 当步长为正数时,要求起始值 < 结束值才能执行循环
3. 此处 10 > 1,且步长为正数,循环条件永远不成立 → 循环体一次都不执行

解决方案:
要输出递减的星号金字塔,需将步长改为负数(如 -1):

for i in range(10,0,-1):# 从10递减到1(不包括0)
    print("*" * i)


输出效果:
**********
*********
********
*******
******
*****
****
***
**
*

对比说明:

循环语句执行逻辑结果
range(10,1,1)10→9→8...?(步长+1无法到达1)无输出
range(1,10,1)1→2→3...9(正常递增)递增金字塔
range(10,0,-1)10→9→8...1(递减到1)递减金字塔


关键记忆点:使用range()递减时必须设置负步长,且起始值 > 结束值。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

1q23w31 发表于 2025-7-31 15:54:15

本帖最后由 1q23w31 于 2025-7-31 15:59 编辑

https://www.runoob.com/python/python-func-range.html
ange函数在Python中用于生成整数序列,其语法和用法如下:

基本语法:

range(stop):从0开始,到stop-1结束,步长为1。
range(start, stop):从start开始,到stop-1结束,步长为1。
range(start, stop, step):从start开始,每次增加step,直到接近stop,但不包括stop。
关键点:

结束点stop不包含在生成的序列中。
步长step可以是正数(递增)或负数(递减)。
当step为负数时,start必须大于stop,否则不会生成任何元素。
range返回的是一个不可变的range对象,需转换为列表使用。

某一个“天” 发表于 2025-7-31 18:14:33

因为10再怎么加1也到不了1,可以把最后一个数改成-1

某一个“天” 发表于 2025-7-31 18:16:56

博客园更详细的讲解{:10_256:}

在Python中,range()是一个内置函数,用于生成一个整数序列,通常用于循环遍历。以下是range()函数的一些常见用法:

range(n): 从0数到n. 不包含n
range(m, n): 从m数到n, 不包含n
range(m, n, s): 从m数到n, 不包含n, 每次的间隔是s

下面举例:



1. 默认情况

当你调用range()函数时,它会生成一个从0开始到给定数字(不包括该数字)的整数序列。

for i in range(5):
    print(i)

# 输出: 0, 1, 2, 3, 4
2. 指定开始和结束

range()函数可以接受三个参数,分别表示起始点、终止点和步长。起始点默认为0,终止点是生成的数字的最大值(不包括该值),步长是每次递增的间隔。

for i in range(2, 5):
    print(i)

# 输出: 2, 3, 4
3. 指定步长

还可以通过设置步长参数来改变生成的数字的间隔。例如,步长为2将使序列中的每个数字之间的间隔为2。

for i in range(0, 10, 2):
    print(i)

# 输出: 0, 2, 4, 6, 8
4. 与列表结合使用

还可以将range()函数与list()函数结合使用来创建一个列表。例如,下面的代码将创建一个包含1到10(包括10)的整数的列表。

my_list = list(range(10))# ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
print(my_list)
5. 与其他内置函数结合使用

range()函数还可以与其他内置函数结合使用,例如map()和filter()。例如,下面的代码将使用range()函数和map()函数将列表中的每个元素乘以2。

my_list =
new_list = list(map(lambda x: x * 2, my_list))#
print(new_list)
页: [1]
查看完整版本: for 循环语句