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

像Python这样易于学习的语言,但哪种语言需要变量声明?,python,declaration,declare,variable-declaration,Python,Declaration,Declare,Variable Declaration,Python非常容易学习和理解;我喜欢它使用关键字,缺少复杂的语法(据我所知,与perl相反),以及易于使用的数据结构。然而,我不能忍受变量声明的缺乏,因为它使得不可能显式地告诉Python您希望变量具有什么作用域。有没有任何语言具有我喜欢的Python的所有特性以及变量声明,也许还有一套合适的库 Thankslot.试试,或者其他代码检查工具。它们有助于捕捉口译员不会抱怨的错误。C# 这里有一些。如果你不是在谈论生产代码,试试谷歌的。这种语言才刚过一年。它也很容易学。这个建议只是因为你要求任何

Python非常容易学习和理解;我喜欢它使用关键字,缺少复杂的语法(据我所知,与perl相反),以及易于使用的数据结构。然而,我不能忍受变量声明的缺乏,因为它使得不可能显式地告诉Python您希望变量具有什么作用域。有没有任何语言具有我喜欢的Python的所有特性以及变量声明,也许还有一套合适的库

Thankslot.

试试,或者其他代码检查工具。它们有助于捕捉口译员不会抱怨的错误。

C#

这里有一些。

如果你不是在谈论生产代码,试试谷歌的。这种语言才刚过一年。它也很容易学。这个建议只是因为你要求任何语言


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

您可以尝试使用带有变量声明的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

是一种使用编译(C)扩展扩展来扩展Python的语言。

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


无论哪种方法,您都可以检查您是否安装了。

非常类似于Python,但具有类似于C的变量声明(实际上,Cython允许C中存在许多内容)。

如何。CLR,非常像Python。带有类型推断的静态类型。

Python的作用域相当容易推断。我真的不明白你的意思。变量声明和作用域有什么关系?如果在大多数语言中都做了“正确的事情”,并声明了初始化的位置,则情况完全相同。@Nick Bastin:在具有true闭包的语言中,变量声明用于设置范围-如果在函数中声明变量,则该函数中声明的任何其他变量都可以读写(即使稍后调用)。Python不允许在更高的范围内赋值(全局范围除外)。@Amber:当然,你是说Python 2.x。Python 3.x有用于此目的的语句。@Amber:首先,这既不在这里也不在那里-没有任何语言可以完全控制范围(我们没有ACL来定义名称传播)。第二点你错了-Python允许在更高的范围内(w/
非本地
全局
)显式分配名称。Python允许OP想要什么,他们可能只是不理解而已。