像 Python 这样易于学习的语言,但需要变量声明?

Posted

技术标签:

【中文标题】像 Python 这样易于学习的语言,但需要变量声明?【英文标题】:Easy-to-learn language like Python, but which requires variable declaration? 【发布时间】:2011-05-13 12:16:29 【问题描述】:

Python 非常容易学习和理解;我喜欢它,因为它使用了关键字、缺乏复杂的语法(与 perl 相反,据我所知)以及易于使用的数据结构。但是,我无法忍受缺少变量声明,因为它无法明确告诉 Python 您希望变量具有什么作用域。是否有任何语言具有我喜欢 Python 的所有特性以及变量声明,也许还有一组不错的库可用?

感谢。

【问题讨论】:

Python 的作用域相当容易推断。我真的不明白你的意思。 变量声明与作用域有什么关系?如果你在大多数语言中做“正确的事情”并声明你初始化的地方,你就会遇到完全相同的情况。 @Nick Bastin:在具有真正闭包的语言中,变量声明用于设置范围 - 如果您在函数内声明变量,则该函数内声明的任何其他内容都可以读取和写入(即使稍后调用)。 Python 不允许 赋值 到更高范围的事物(全局范围除外)。 @Amber:当然你的意思是 Python 2.x。 Python 3.x 具有用于此目的的 nonlocal 语句。 @Amber:首先,这既不存在也不存在 - 没有语言可以让您对范围进行完全访问控制(我们没有 ACL 来定义名称传播)。第二点你错了——Python 允许显式分配更高范围内的名称(w/nonlocalglobal)。 Python 完全允许 ​​OP 想要的东西,他们可能只是不理解它。 【参考方案1】:

尝试pychecker、pylint、pyflakes 或其他代码检查工具。它们有助于捕获解释器不会抱怨的错误。

【讨论】:

【参考方案2】:

您可以尝试使用带有变量声明的 Python:

>>> x = 0 # a global variable
>>> def fact(n): #n is a parameter
...     x = 0 # local variable declaration
...     z = 1 # declaration and initialization
...     for i in range(1, n + 1): # a loop variable is defined inline
...         z = z * i
...     return z
...     
>>> x = 5 # the global x
>>> fact(x)
120

你能解释一下这有什么问题吗?此外,就像 Nick Bastin 在评论中所说的那样,如果您解释您的问题是与声明还是范围有关,这将有所帮助。

如果您的问题是语法或静态类型,您可以接受下一个语法吗?

def f(double x):
    return x**2-x

def integrate_f(double a, double b, int N):
    cdef int i
    cdef double s, dx
    s = 0
    dx = (b-a)/N
    for i in range(N):
        s += f(a+i*dx)
    return s * dx

This syntax 是 Cython 的名称,Cython 是一种使用编译 (C) 扩展来扩展 Python 的语言。

【讨论】:

【参考方案3】:

C#

这里有一些code examples。

【讨论】:

【参考方案4】:

如果您不是在谈论生产代码,请尝试 Google 的 Go。语言才一年多。它也很容易学习。这个建议只是因为您要求任何语言

否则,Wim Coenen 的答案应该对你有用。

【讨论】:

【参考方案5】:

您还可以查看 Perl 6,它消除了您在 Perl 5 中描述的问题,但保留了优点,甚至可以选择强类型变量。问题是还没完结,也不知道什么时候……

如果您有兴趣,可以查看dev.perl.org。

【讨论】:

【参考方案6】:

Cython 很像 Python,但具有类似于 C 的变量声明(实际上,Cython 允许 C 中存在很多东西)。

【讨论】:

【参考方案7】:

Boo 怎么样。 CLR,非常类似于 Python。具有类型推断的静态类型。

【讨论】:

以上是关于像 Python 这样易于学习的语言,但需要变量声明?的主要内容,如果未能解决你的问题,请参考以下文章

易于理解的 python 深度学习摘要算法教程

python学习之路

本科想学习人工智能方向,需要学习python的啥方向?

11 个最佳的 Python 编译器和解释器

11 个优秀的 Python 编译器和解释器

安全运行用户代码