python定义⼀个复数类complex、内有两个成员变量
_python(⼀):pytho。。。
⼀、python语⾔基本的8个要素
Python语⾔的8个要素:数据类型、对象引⽤、组合数据类型、逻辑操作符、运算操作符、控制流语句、输⼊/输出、函数的创建与引⽤。除此之外还有⼀个⾮常重要且⽆处不在的要素:对象。实际上,在所有的语⾔当中,这种要素结构⼏乎⼀样。
1.要素1--数据和对象类型
python的数据类型是指内置数据类型。python基本的内置数据类型是数字(int)、字符串(str)、列表(list)、元组(tuple)和字典
(dic),python基本的内置对象包括⽂件、对象(object)、布尔值(bool)、None。python中的内置数据类型也是⼀个对象。
具体来讲,python的基础[标准]数据类型包括:数字、整型、布尔型、长整型、浮点型、复数型、字符串、列表、字典和元组。python的其他内建类型包括:类型、Null对象(None)、⽂件、集合(固定集合)、函数/⽅法、模块、类。
2.要素2--变量和对象引⽤
第⼆步是定义储存数据类型的变量。在python中,变量(有的书中称为对象引⽤)不需要提前声明,有的语⾔是可以提前声明⽽不赋值的(如js:var x;)。
以 x = 123为例作⼀些探讨。
在这个语句中,123存在(或⽣成)于内存中,它是⼀个数字对象(type(123) = int);x是变量,或者称为对象引⽤(即引⽤了内存中数字对象123);
“=”的作⽤是把变量(对象引⽤)与内存中的数字123进⾏绑定(或重新绑定)。如果变量x没有被声明(创建),则“=”会创建x并把它绑定到123上;如果x已被声明,则进⾏重绑定。
变量(引⽤对象)的名字,称为“标识符”。当然标识符(也即变量的名字)也它的命名规则。
如果直接写⼀个数字或字符串⽽没有被赋给某个变量,则它称为“字⾯量常量”。
3.要素3--组合数据类型
与python中的其他内容⼀样,组合数据类型也是对象,因此可以将某种组合数据类型嵌套在其他组合类型⾥。
实质上,列表和元组并不存真正的数据项,⽽是存放对象引⽤。
元组、列表、字符串等数据类型都是有“长度的”,将这些数据类型传给len函数是有意义的。
组合数据对象有⾃⼰的属性和⽅法。
4.要素4--逻辑操作符
a.⾝份操作符 is
is操作符是⼀个⼆元操作符,如果其左端的对象引⽤与右端的对象引⽤指向的是同⼀个对象,则会返回true。is操作符只需要对对象的内存地址进⾏⽐较,所以速度很快。
b.⽐较操作符 ==、!=、<=、 >、<
a = "123",
b = "123",
c = 123。a is b (True),a == b (True),a is c (False), a >= c (报错。)
python⽐较操作符只会进⾏同类对象的⽐较。python可以进⾏链接⽐较。123 < 456 < 789。
c.成员操作符 in / not in
d.逻辑运算符 and or not
1.在没有()的情况下not 优先级⾼于 and,and优先级⾼于or,即优先级关系为( )>not>and>or,同⼀优先级从左往右计算。
2.x or y , x为真,值就是x,x为假,值是y;x and y, x为真,值是y,x为假,值是x。
注:同⼀灰度的运算符具有同样的优先级。每⼀组运算符的优先级由上⾄下。
5.要素5--算术运算法
+、 -、 *、 /、 %、 **
在这⾥需要剖析⼀下 a = 0, a += 2的过程。第⼀步是创建内存对象0并把它的内存地址绑定给a这个对象引⽤。第⼆步,计算 0 + 2,并将对象引⽤a重新绑定到新的内存地址。原来的内存对象0由于其引⽤计数变成了0⽽被来及回收。
列表和字符串都⽀持 + 、 * 操作。
6.要素6--流程控制
index复数
a. if - elif - else语句
.py⽂件中的每条语句都是⾃上⽽下⼀条条执⾏的。这⾥写条件的时候⼀定要注意范围的问题。
b.while - break - continue - else语句
while循环中⽀持break、continue、els语句。
while循环要对while 后⾯的参数进⾏布尔判断,并决定是否继续下⼀次循环。跟据参数可以⼤致分为两种循环⽅式。标志符的True/False 判断,参数的迭代次数判断。后者可以对参数的迭代进⾏跳跃。
break:当某个条件满⾜时,执⾏到break⾏时,会直接跳出break所在的那⼀层循环;
continue:当某个条件满⾜时,执⾏到continue时,会跳过当次循环时continue⾏后⾯的代码,但是仍会继续执⾏continue所在的那⼀层循环;
通常,break和continue都⽤在if语句的内部。
else:while正常结束时执⾏else内部的代码。如果while循环被break中断,则不会执⾏else代码。
1 n =0
2 while n < 5:
3 if n == 3:
4 print(n)
5 break
6 else:
7 pass
8 n += 1
9 else:10 print("over!")
View Code
c.for - in 语句
for 循环也⽀持continue、break和else,其⽤法与while基本⼀致。for循环可以对可迭代对象进⾏逐⼀迭代。
典型的写法包括三种⽅式。for index in range(len(list)),for item in (list),这两种循环可根据索引或对象引⽤对列表进⾏迭代。当然也推荐使⽤for index, value in enumerate(list) 对list迭代。
for key, value in dict.items(),可以对字典对象进⾏迭代。当然也有for key in dict.keys(),for value in dict.values()。
for循环⽀持"_"。如for key, _ in dict.items()。
< - except - finally异常处理
它是流程控制的⼀部分。这⾥暂不做细写。
<跳转:愚⼈节的作品,不推荐使⽤。
7.要素7--输⼊输出
a.input 和 print
input和print⽀持⽤户交互。Input的返回值是⼀个字符串,因此需要进⾏格式转化;print没有返回值,但是终端执⾏py⽂件时可以配合>输⼊到⽂本中保存。
b.格式化
1 "{name}, {age}".format(name="json", age=45)
2 "{0}, {1}".format("json", 45)
3 "{[0]}, {[1]}".format(["json", "bob"], [45, 27])
View Code
1 print("%s, %d" % ("json", 45))
2 print("%r, %r" % ("json", 45))
3 print("%(name)s, %(age)s" % ({"name": "json", "age": 45}))
View Code
8.要素8--函数
函数是⾯向对象中不可分割的最⼩功能性单元(逻辑上不可分割的代码块),在对象解耦中需要考虑函数的功能和具体代码。它可以接收参数,并执⾏相应的代码块,最后返回(或不返回)⼀个结果。
def可以创建函数。它的具体做法是:在内存中创建⼀个函数对象,并将该函数对象的内存地址绑定到该对象运⽤上(函数名)。
函数的另⼀重要特性是减少内存变量。因为除⾮在函数中声明global,否则函数内部的变量仅创建和回收于函数执⾏周期内。除⾮特别重要的变量,⼀般不会在.py中直接定义变量。(直接定义的变量显然存在于.py⽂件执⾏的整个进程中,占⽤系统资源。)
9.要素9--类
说到类,⾃然有三个词浮现出来,继承、多态、封装,⽤于实现更为复杂的操作。class⽤于创建类。暂时不提。
⼆、python的语法和标识符
1.语句和语法
注释:#表⽰单⾏注释,""""""表⽰多⾏注释或者格式化输出。
换⾏:\n,标准的⾏分隔符。
继续:\,反斜杠表⽰本⾏的代码继续上⼀⾏。
分号:;,表⽰两⾏代码如果写到⼀⾏⾥,可以⽤分号分开。
冒号::,将代码块的头和体分开。
缩进:tab,将代码块进⾏逻辑区分。
2.变量和标识符
重申⼀遍,python是没有变量这⼀概念的。如,在python如果只写“123”,你可能⽆法拿到123.因为它写在内存⾥,没有变量储存它。如果写"x = 123",就是在内存⾥写了123,并创建了⼀个名为x的标识符,它引⽤了123这个对象(内存地址)。因此,所谓的变量其实指的是对象引⽤。
变量赋值。包括“=”赋值,链式赋值,增量赋值,多元赋值。
标识符。规则:第⼀个字符必须是字母或者下划线,其余字符可以是字母数字下划线,⼤⼩写敏感。
关键字:被python占⽤的标识符。import keyword;print(keyword.kwlist),可以查看关键字。除此之外还有内建的其它字符(收录在
__builtins__中)。
专⽤下划线标识符:
_xxxx  :不能被其它的模块导⼊
__xxx__  :系统定义名字
__xxx  :类中的私有变量
三、python的字符编码
参考林海峰的博客,⾮常详尽。
wwwblogs/linhaifeng/articles/5950339.html#_label8
四、python的代码结构
(1)起始⾏,指定脚本运⾏的解释器。当然可以写上编码格式-*- coding:utf-8 -*-。
(2)介绍⽂档。可以通过模块名.__doc__来查看。
(3)导⼊其它模块。导⼊其它的模块只有在调⽤具体⽅法时执⾏。
(4)定义全局变量。尽量少,可以节省内存。
(5)类定义解释⽂档。功能和模块⽂档⼀样。可以通过类名.__doc__来访问
(6)函数定义语句。可以通过module.function()被调⽤。函数⽂档和模块⽂档⼀样,可以通过函数名.__doc__来访问。
(7)主程序。该功能可⽤于测试。当当前模块直接执⾏时,主程序__name__的值为"__main__",当当前模块被被的py⽂件导⼊和调⽤时,它的名字__name__为模块名。
五、内存管理

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。