在Python 2.6中如何在for循环中改变全局变量

-1 投票
3 回答
8831 浏览
提问于 2025-04-16 05:44

我想在一个循环里改变一个变量的值,但希望在循环结束后,这个新的变量值能被保留下来。

这是我尝试的代码(其实比我实际做的要简单一些)。

SNP 是一个列表,而 compar_1 是一个列表的列表。

line_1 = empty_row
for SNP1 in compar_1:
    global line_1
    if SNP[3] == SNP1[3] 
        compare_line_1 = SNP1 
print = line_1
output_file.write(to_print)

如果在循环中找到匹配的内容,我希望把变量改成这个匹配的值,这样就会打印出来。如果在这个循环里没有找到匹配的内容,我希望打印出之前定义的“empty_row”(一个字符串)。

3 个回答

0

当然可以!请看下面的内容:

在编程中,有时候我们需要让程序做一些事情,比如处理数据或者与用户互动。为了实现这些功能,我们通常会使用一些特定的代码块。这些代码块就像是程序的“指令”,告诉计算机该做什么。

例如,假设你想让程序显示一条消息,你可能会写一段代码来实现这个目的。这段代码就像是给计算机发了一条信息,让它知道你希望它做什么。

在这个过程中,可能会遇到一些问题,比如代码写错了或者程序没有按照预期运行。这时候,我们就需要去查找问题的原因,并进行修正。

总之,编程就像是在和计算机对话,通过写代码来告诉它我们想要的结果。希望这个解释能帮助你更好地理解编程的基本概念!

for SNP1 in compar_1:
    if SNP[3] == SNP1[3]:
        line_1 = SNP1 
        break
else:
    line_1 = empty_row
to_print = line_1
output_file.write(to_print)
1

在Python中,for循环不会影响变量的作用域(跟C语言不一样)。

如果你在一个函数里使用变量,可以用global [var]来声明你提到的[var]是全局变量。

这个链接提供了关于Python中变量作用域的不错概述。

3

如果你只是尝试改变这个变量,你会发现它其实是可以正常工作的。Python 在循环中没有独立的作用域。

撰写回答