有人能解释一下为什么这在Python中不起作用吗?我怎么才能让它起作用?我不想先做sa=0之类的事情,因为这段代码放在一个函数中,我不想让sa在每次函数执行时都从0开始。
def tr(ok):
s = 1
sa = sa + (ok / s)
print (sa)
for i in range(10):
ok = 2
我得到的错误是sa是一个未解析的引用
编辑: sa += (ok/s)也不起作用
在Python中,全局变量是如何工作的?我知道全局变量是邪恶的,我只是在做实验。
这在python中不起作用:
G = None
def foo():
if G is None:
G = 1
foo()
我得到一个错误:
UnboundLocalError: local variable 'G' referenced before assignment
我做错了什么?
我将变量newUser从options.html发送到带有chrome.extension.getBackgroundPage()的background.html,如下所示
document.getElementById("save").addEventListener(
"click", function ()
{
var newUser = document.getElementById("getEmail").value;
var bkg = chrome.extension.getBackg
我得到了
local variable 'flag' referenced before assignment
在python中。我在这里做错了什么?
flag = 0
def abc():
while flag <= 10:
try:
print(10/0)
except Exception:
print('yo')
flag += 1
abc()
在mac x上的python 2.7.5中,我可以写以下几行。我的问题是,变量age1是在内部块中声明的,因此不应该在后续的外部块中可见。但是python编译并且不抱怨。如果我注释行age1 = 25,那么python就会抱怨变量age1没有被声明。
在其他语言(如java/c++ )中,在作用域内声明的变量(由{}确定)在作用域外不可见。因此,我的问题是,在python中,由缩进决定范围的目的是什么。
age = 41
if age >= 41:
print(">=41")
age1 = 25 #this is declared inside the scop
我一直在同时学习Ruby和Python,我注意到的一件事是,这两种语言似乎对待作用域的方式不同。下面是我的意思的一个例子:
# Python
a = 5
def myfunc():
print a
myfunc() # => Successfully prints 5
# Ruby
a = 5
def myfunc
puts a
end
myfunc # => Throws a "NameError: undefined local variable or method `a' for main:Object"
在Python中,def块似乎可
我正在阅读一些关于变量作用域的C#文本,并且得到了一些混淆:
案例1:
class A
{
void F() {
i = 1;
}
int i = 0;
}
案例2
class A
{
void F()
{
i = 1; // Error, use precedes declaration
int i = 0;
}
}
在case 1和2中,变量i都是在声明和初始化之前使用的,但是为什么第二种情况会出错呢?(我已经阅读了一篇解释,因为我在第一种情况下是一个全局变量,但仍然想知道是否有其他解释)
我玩了一点二叉树,构建了一个菜单,当我点击创建树时,用户可以选择是构建二叉树,向他构建的二叉树插入一个值,还是删除它。树被创建,然后菜单再次出现,现在我想在这棵树中放一个数字,但那个变量没有设置在案例中,每个案例应该设置它的变量吗?或者您可以使用全局变量?
这是我的menu类的代码。
import java.util.Comparator;
import java.util.Scanner;
public class TreeMenu {
public static void main(String[] args) {
while(true ){
Sy
看看这个的提升示例,我不明白为什么即使在提升之后,下面的1也会改变:
var a = 1;
function b() {
a = 10;
return;
function a() {}
}
b();
alert(a); // alerts 1
实际上是
var a = 1;
function b() {
function a() {}
a = 10;
return;
}
b();
alert(a);
因为在b函数返回之前,a仍然被赋值为10,所以它不应该改变10吗?为什么调用一个空函数会导致这种情况?在相关的注释中,为什么下面的警报功能不起作用,但
我有一些AJAX,它使用setInterval()显示进度条来获取脚本的当前进度。我的问题是,当进度达到100%时,我似乎不能扼杀它。我不确定这是否与作用域有关,但我的处理程序是全局的,所以我不知道为什么它不能工作。这就是我所拥有的:
function showLog(){
document.getElementById('log').style.display = "block";
clearInterval(inth);
return false;
}
function startAjax(){
var inth = set
我正在做不同功能的c++。我想把函数放在不同的源文件中。为此,我创建了一个头文件:
function.h
int X(int i, int k);
和带有函数的文件:
function.cpp
int X(int i, int k){
return p + (i-1)*(n-1) + (k-1);
}
我有我的主线:
#include "subfunction.h"
int p, n, m, num_entries, NUMROWS;
int main (int argc, char **argv){
int project = 4;
int employee =
我有这个工作的JS,它检查不同的复选框是否被选中,并为每个复选框标记一个不同的价格,稍后将汇总。
function priceCandy1() {
var priceCandy1 = 0;
var candy = document.getElementById("candy1");
if(candy.checked==true)
{
priceCandy1=13;
}
return priceCandy1;
}
function calculateTotal()
{
var totalPrice = pri
我在更新函数中的全局变量时遇到了问题。我发现了下面这篇看起来很有前途的文章:
然而,我发现他发布的任何东西都比不上我看到的输出。这是他的密码:
$array=@("g")
function foo()
{
$array += "h"
Write-Host $array
}
& {
$array +="s"
Write-Host $array
}
foo
Write-Host $array
他的结果是:
g s
g h
g
然而..。我在PowerShell 5.0上的结果是:
s
h
g
添加建议的$
在Fortran中,有一条语句Implicit none,当一个局部变量没有声明但被使用时,它会抛出编译错误。我知道Python是一种动态类型的语言,变量的作用域可以在运行时确定。
但我希望避免某些意外的错误,因为我忘记初始化一个局部变量,但在主代码中使用它。例如,以下代码中的变量x是全局变量,尽管我并不打算这样做:
def test():
y=x+2 # intended this x to be a local variable but forgot
# x was not initialized
print y
x=3
test()
所以我
我有一个程序Sudoku递归,运行良好,但我想在解决方案中添加一个计数器,我尝试过对代码进行多次更改,这些更改都可以做到这一点,但是它没有工作,最后尝试了一个使用全局变量的解决方案,这将作为最后的手段在C中实现,而且也不起作用,但我不知道我是否正确地使用了这个变量,我在python中的代码返回了以下错误:
File "~/CCR/UserFiles/Marcilio/Sudoku/sudoku.py", line 176, in Sudoku
contador += 1
UnboundLocalError: local variable 'contador
这只是一个关于python中局部和全局范围的初学者问题。
X = 100
#is X a global variable?.We defined it outside the function scope
def foo():
print(X)
return X
#it prints 100 and even returns it
def foo():
X = X + 10
#local error
#UnboundLocalError: local variable 'X' referenced before assignment
def foo():
注意:还有一个非常类似的问题。但是,请耐心等待;我的问题不是“为什么会发生错误”,而是“在这种情况下,为什么要实现Python来抛出错误”。
我只是偶然发现了这个:
a = 5
def x()
print a
a = 6
x()
抛出一个UnboundLocalException。现在,我确实知道为什么会发生这种情况(在这个作用域的后面,a是绑定的,所以a在整个作用域中都被认为是本地的)。
在这种情况下:
a = 5
def x()
print b
b = 6
x()
这是非常有意义的。但第一种情况有一个直观的逻辑,这意味着:
a = 5
def x()