您的位置:首页 > 编程语言 > Python开发

python主要知识点(与Java的区别)

2016-03-15 16:46 477 查看
语法:
1、乱码:注意:Python3.X
源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。
#!/usr/bin/python
# -*- coding:UTF-8 -*- 或者 #coding=utf-8 或 #coding=UTF-8

print '你好'

2、Python 标识符

在python里,标识符有字母、数字、下划线组成。

在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。

python中的标识符是区分大小写的。

以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入;

以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。


3、行和缩进


学习Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。

缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:

IndentationError: unexpected indent 错误是python编译器是在告诉你"Hi,老兄,你的文件里格式不对了,可能是tab和空格没对齐的问题",所有python对格式要求非常严格。

如果是 IndentationError: unindent does not match any outer indentation level错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。

因此,在Python的代码块中必须使用相同数目的行首缩进空格数。

建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 ,
切记不能混用


4、变量赋值


每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。


(1)多个变量赋值

Python允许你同时为多个变量

赋值。例如:

a = b = c = 1

以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。

您也可以为多个对象指定多个变量。例如:

a, b, c = 1, 2, "john"

以上实例,两个整型对象1和2的分配给变量a和b,字符串对象"john"分配给变量c。

(2)注意事项
a,b,c=1,2
Traceback (most recent call last): File "/usercode/file.py", line
12, ina,b,c=1,2 ValueError: need more than 2 values to unpack

必须都赋值,才可以生效。

5、标准数据类型

number:int long,float,complex,但是没有double

6、Python字符串

python的字串列表有2种取值顺序:

从左到右索引默认0开始的,最大范围是字符串长度少1
从右到左索引默认-1开始的,最大范围是字符串开头

如果你的实要取得一段子串的话,可以用到变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。最大范围不包括上边界

加号(+)是字符串连接运算符,星号(*)是重复操作

#!/usr/bin/python

# -*- coding: UTF-8 -*-

str = 'Hello World!'

print str # 输出完整字符串

print str[0] # 输出字符串中的第一个字符

print str[2:5] # 输出字符串中第三个至第五个之间的字符串

print str[2:] # 输出从第三个字符开始的字符串

print str * 2 # 输出字符串两次

print str + "TEST" # 输出连接的字符串

以上实例输出结果:

Hello World!

H

llo

llo World!

Hello World!Hello World!

Hello World!TEST


7、Python列表


List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。

列表用[ ]标识。是python最通用的复合数据类型。看这段代码就明白。

列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。

加号(+)是列表连接运算符,星号(*)是重复操作。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]

tinylist = [123, 'john']

print list # 输出完整列表

print list[0] # 输出列表的第一个元素

print list[1:3] # 输出第二个至第三个的元素

print list[2:] # 输出从第三个开始至列表末尾的所有元素

print tinylist * 2 # 输出列表两次

print list + tinylist # 打印组合的列表

list=[123,345,'ege',['123m44r',445,666],'gfdee']
print list # 输出完整列表

以上实例输出结果:

['abcd', 786, 2.23, 'john', 70.2]

abcd

[786, 2.23]

[2.23, 'john', 70.2]

[123, 'john', 123, 'john']

['abcd', 786, 2.23, 'john', 70.2, 123, 'john']
[123, 345, 'ege', ['123m44r', 445, 666], 'gfdee']

8、Python元组


元组是另一个数据类型,类似于List(列表)。

元组用"()"标识。内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。

Python的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

创建空元组
tup1 =();


元组中只包含一个元素时,需要在元素后面添加逗号
tup1 =(50,);


(1)修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:
# 创建一个新的元组
tup3 = tup1 + tup2;


(2)删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
del tup;


(3)无关闭分隔符

任意无符号的对象,以逗号隔开,默认为元组,如下实例:

9、Python 字典(Dictionary)

key-values样式

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d ={key1 : value1, key2 : value2 }


键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

(1)修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
dict['Age']=8;# update existing entry
dict['School']="DPS School";# Add new entry


(2)删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显示删除一个字典用del命令,如下实例:
del dict['Name'];# 删除键是'Name'的条目
dict.clear();# 清空词典所有条目del dict ;# 删除词典,用del后字典不再存在


10、循环使用 else 语句


在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while
… else 也是一样。(continue中断不算)
#!/usr/bin/python

count =0while count <5:print count," is  less than 5"
count = count +1else:print count," is not less than 5"


以上实例输出结果为:
0is less than 51is less than 52is less than 53is less than 54is less than 55isnot less than 5

内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数


无do ...while

for iterating_var in sequence:
statements(s)

11、Python pass 语句


Python pass是空语句,是为了保持程序结构的完整性。

passass 不做任何事情,一般用做占位语句。

Python 语言 pass 语句语法格式如下:


pass

Python 数字:

转换,数学公式


12、Python转义字符

在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:
转义字符描述
\(在行尾时)续行符
\\反斜杠符号
\'单引号
\"双引号
\a响铃
\b退格(Backspace)
\e转义
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\oyy八进制数,yy代表的字符,例如:\o12代表换行
\xyy十六进制数,yy代表的字符,例如:\x0a代表换行
\other其它的字符以普通格式输出



(1)Python字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。 print "My name is %s and weight is %d kg!" % ('Zara', 21)

string.join(seq)

student=['1d','d2','3','li;/','kkjhkk']
print "ss".join(student)

1dssd2ss3ssli;/sskkjhkk

student中的元素必须都是字符串,整型的不可以

(2)string.partition(str)

string.partition(str)

有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
s='21rrrrrffffff'
print s.partition('dd')

print s.partition('rr')

('21rrrrrffffff', '', '')
('21', 'rr', 'rrrffffff')

(3)增加元素

A.新加入一个元素append

append方法添加。它在原列表末尾添加一个 item, item类型可以是任意的
l = [1, 2, 3]
l.append('hello')   #得到 [1, 2, 3, 'hello']
l.append(['hello'])   #得到 [1, 2, 3, 'hello', ['hello']]


B.插入一个元素insert
l1 = [1, 2, 3]
l1.insert(1,9)    #[1, 9, 2, 3]


C.两个列表相加两种方式第一种
l1 = [1, 2, 3]
l3 = l1 + [4, 5, 6]  #这种方式,l1不变,二者返回新的列表,当列表很长时,会消耗大量内存


第二种(必须接收一个参数,且是另一个列表)
l1.extend([4, 5, 6])  #直接扩增l1


等价的做法
l1 += [4,5,6]


(4)删除元素

A.按item的索引或切片删除
l1 = [1, 2, 3, 4, 5, 6]del l1[0]   #得到[2, 3, 4, 5, 6]del l1[0:2]  #得到[4, 5, 6]


B.按item的值进行删除
l1 = [1,2,3,1,2]l1.remove(1)  #得到[2,3,1,2]


若是remove对应值查无,将跑ValueError

C.删除某个位置并返回该位置值

pop若是不传位置参数,默认删除列表最后一个元素
l1 = [1, 2, 3, 4, 5]a = l1.pop(1)   #a=2
b = l1.pop()   #a=5

(5)修改元素

对指定索引进行赋值操作

A.某个元素
l1 = [1, 2, 3, 4]l1[0] = 0   #[0,2,3,4]


B.某一段元素
l1= [1,2,3,4]l1[0:2] = [7,8,9]  #[7,8,9,3,4]
1[:] = []   #清空了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: