如何使用索引遍历列表

How to iterate through a list using index

我正在制作一个从 0 到某个数字输入的函数我尝试使用 print 实现它并且有效但输出需要是一个 return 值所以我尝试制作一个列表然后迭代通过它使用 for 循环并 return 使用列表的索引返回列表的每个值但这不起作用它只 returns 列表的最后一个值我还想要 return将值设为字符串,而不是列表。

这是我的代码

nums = []
def numbers_range(number):
  for i in range(number+1):
    numz = nums.append(i)
  for g in range(len(nums)):
   numb = nums[g]
  return numb

print(numbers_range(5))

结果 5 我想要的结果 0 1 2 3 4 5 请帮忙

所以我认为问题出在您对 range() 的使用上。根据我的经验,range() 需要像 range(min, max) 那样格式化,而你正在像 range(min).

那样格式化

我想你想要的会来自这段代码:

nums = []
def numbers_range(number):
  for i in range(0, number+1):
    numz = nums.append(i)
  for g in range(0, len(nums)):
   numb = nums[g]
  return numb

print(numbers_range(5))

希望这对你有用!

您的包含变量 'g' 的 for 循环将值 1 放在同一个变量 numb 中的 next 之上。 基本上 numb 中的每个值都被列表中的新值覆盖。

改为这样做。

def numbers_range(number):
  nums = []
  for i in range(number+1):
    nums.append(i)
  
  ans = "".join([str(no) for no in nums])
  return ans

print(numbers_range(5))

这里是代码,

  1. 我们正在创建一个名为 nums 的新列表。

  2. 然后我们从 0 遍历到数字并将每个值附加到列表中。

  3. 最终返回转换为字符串的列表。

一个解决方案是

def numbers_range(number):
            ans = [str(i) for i in range(number+1)]
            return " ".join(ans)
                
print(numbers_range(5))

另一个解决方案是

def numbers_range(number):
    ans = []
    for i in range(number+1):
        ans.append(str(i))
    return " ".join(ans)
    


print(numbers_range(5))
for i in range(number+1):
    numz = nums.append(i)

for g in range(len(nums)):
    numb = nums[g]

您在这里所做的是遍历列表并将项目逐一分配给变量。在每一轮中,变量都会被覆盖。 因此,当循环终止时,仅分配的值是列表中的最终值。

如果您需要 return 一个数字序列,您可以使用 eval 函数实现您的代码。但是返回值是字符串,而不是整数。由于您只是退货,所以这不是问题。

def numbers_range(number):
    x =0
    s =''
    while x<=number:
# if you don't need a new line replace '\n' with a space ' ' .
         s =(s+str(x)+"\n")
         x =x+1
    numb = eval("print(s)")
    return numb

使用函数时,

print(numbers_range(5))

输出

0
1
2
3
4
5

希望这能回答您的问题。