python中x=(y=1 )为什么是非法的呢?

Python013

python中x=(y=1 )为什么是非法的呢?,第1张

x=(y=1)在解释器看来就是x= y=1,解释器会先解释y=1 但是y=1是个赋值语句不会有返回值,所以x等于的是个空值。

Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。

扩展资料:

Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。所以很多人认为Python很慢。不过,根据二八定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,Python设计师倾向于使用JIT技术,或者用使用C/C++语言改写这部分程序。

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

合法。

这是交换x和y的值,等号左侧多个变量,是python的一种特殊的赋值方式。会自动unpack右侧的 iterable,一次性赋值。x,y=y,x在Python中是非法的。python中x,y=y,x的交换原理 千次阅读 2020-10-20 19:34:31 当我们写到 x, y, z = 1, 2, 3的时候,python令左右两边各自形成了元组。

没看错这是求根公式吧?

其他没问题,关键在于这一句:

在python中,这种一行多个赋值的方法是不合法的,不能用逗号,得用分号

或者你也可以分行写

完整代码:

from numpy.lib.scimath import sqrt

a=float(input())b=float(input())c=float(input())

d=0

if a==0:

    d=(-1)*c/b

    print(d)

    

elif b**2-4*a*c>0:

    x1=((-1)*b+sqrt(b**2-4*a*c))/2*a

    x2=((-1)*b-sqrt(b**2-4*a*c))/2*a

    print(x1,x2)

    

elif b*2-4*a*c==0:

    d=((-1)*b)+sqrt(b**2-4*a*c)/2*a

    print(d)

else:

    x1=((-1)*b+sqrt(b**2-4*a*c))/2*a

    x2=((-1)*b-sqrt(b**2-4*a*c))/2*a

    print(x1,x2)

测试(我用的python2)