for i in 1:2 if i == 2 print(x) end if i == 1 x = 0 endend
undefvarerror : x not defined
为什么代码会给出错误而不是在julia中打印0?
在python中以下代码打印0?
for i in range(2): if i==1: print(x) if i==0: x=0解决方法 原因是因为在循环中,每次执行循环时变量都会获得一个新的绑定,参见 https://docs.julialang.org/en/latest/manual/variables-and-scoping/#For-Loops-and-Comprehensions-1.
事实上,虽然循环改变了Julia 0.6.3和Julia 0.7之间的这种行为(在Julia 0.6.3中没有创建新的绑定).因此以下代码:
function f() i=0 while i < 2 i+=1 if i == 2 print(x) end if i == 1 x = 0 end endend
给出以下输出.
朱莉娅0.6.3
julia> function f() i=0 while i < 2 i+=1 if i == 2 print(x) end if i == 1 x = 0 end end endf (generic function with 1 method)julia> f()0
朱莉娅0.7.0
julia> function f() i=0 while i < 2 i+=1 if i == 2 print(x) end if i == 1 x = 0 end end endf (generic function with 1 method)julia> f()ERROR: undefvarerror: x not definedStacktrace: [1] f() at .\REPL[2]:6 [2] top-level scope
For循环在每次迭代时都在Julia 0.6.3中创建了一个新绑定,因此在Julia 0.6.3和Julia 0.7.0下都失败了.
编辑:我已将示例包装在函数中,但如果在全局范围内执行while循环,则会得到相同的结果.
总结以上是内存溢出为你收集整理的python-3.x – Julia UndefVarError全部内容,希望文章能够帮你解决python-3.x – Julia UndefVarError所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)