python-3.x – Julia UndefVarError

python-3.x – Julia UndefVarError,第1张

概述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:
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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192085.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存