python 注意的语法

来源:互联网 发布:勒索病毒 开启端口 编辑:程序博客网 时间:2024/05/18 14:11

sequence(序列)是一组有顺序元素集合

(严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素)

序列可以包含一个或多个元素,也可以没有任何元素。

我们之前所说的基本数据类型,都可以作为序列的元素。元素还可以是另一个序列,以及我们以后要介绍的其他对象。

序列有两种:tuple(定值表; 也有翻译为元组) 和 list ()

>>>s1 = (2, 1.3, 'love', 5.6, 9, 12, False)         # s1是一个tuple

>>>s2 = [True, 5, 'smile']                          # s2是一个list

>>>print s1,type(s1)

>>>print s2,type(s2)

tuple和list的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更


元素的引用:

序列元素的下标从0开始:

>>>print s1[0]

>>>print s2[2]

>>>print s3[1][2]

其他引用方式

范围引用: 基本样式[下限:上限:步长]

>>> print s1[:5]    //下表从零到4
(2, 1.3, 'xy', 5.6, 9.0)
>>> print s1[2:]  //从下表2开始
('xy', 5.6, 9.0, False)
>>> print s1[0:5:2] //从下表0到4 步长为2
(2, 'xy', 9.0)
>>> print s1[3:0:-1]  //从下表3到0 步长为-1
(5.6, 'xy', 1.3)

从上面可以看到,在范围引用的时候,如果写明上限,那么这个上限本身不包括在内

尾部元素引用

>>> print s1[-1] //最后一个
False
>>> print s1[-2] //倒数第2个
9.0
>>> print s1[0:-1] //begin to end
(2, 1.3, 'xy', 5.6, 9.0)

字符串是元组

字符串是一种特殊的元素,因此可以执行元组的相关操作。

>>> str ='abcde'
>>> print str[1:3]
bc
>>>

if语句之后的冒号

以四个空格的缩进来表示隶属关系, Python中不能随意缩进

if  <条件1>:

    statement

elif <条件2>:

    statement

elif <条件3>:

    statement

else:

    statement

i  = 5
if i > 1:
    print 'i bigger than 1'
    print 'good'
    if i > 2:
        print 'i bigger than 2'
        print 'even better'

输出:

i bigger than 1
good
i bigger than 2
even better

循环语句:

range()  //idx = range(5) idx=[0,1,2,3,4]

for 元素 in 序列:

while 条件:

continue

break

a**2 //是a的平方


专用下划线标识符:

Python 用下划线作为变量前缀和后缀指定特殊变量。

1. _xxx 不用'from module import *'导入

2. __xxx__系统定义名字
 3. __xxx 类中的私有变量名


is 是关键字

obj1 is obj2 obj1 和obj2 是同一个对象
obj1 is not obj2 obj1 和obj2 不是同一个对象


str和repr的区别:

repr返回的是一个对象的“官方”字符串表示, 也就是说绝大多数情况下可以通过求值运算(使用eval()内建函数)重新得到该对象。

str() 致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值, 但很适合用于 print 语句输出。

也就是说 repr() 输出对 Python 比较友好, 而str()的输出对人比较友好。


python不支持的类型:

1.char或byte

2.指针:python替你管理内存,因此没有必要访问指针。

3.int,short,long python的整数实现等同于c语言的长整数

4.float,double python只支持double。


 ** 优先级高于左侧的 -

>>> -3 ** 2 # ** 优先级高于左侧的 -
-9


核心模块: copy
我们刚才描述的浅拷贝和深拷贝操作都可以在copy 模块中找到.其实copy 模块中只有两
个函数可用:copy()进行浅拷贝操作,而deepcopy()进行深拷贝操作.


集合(sets)有两种不同的类型,可变集合(set) 和 不可变集合(frozenset)。


Python 并不会字典中的键存在冲突产生一个错误,它不会检查键的冲突是因为,如果真这样做的话,在每个键-值对赋值的时候都会做检查,这将会占用一定量的内存


next函数和next方法
Python 2.7.5中你两种方法都可以使用,而在Python 3却只能使用next函数了!
# Python 2>>> my_generator = (letter for letter in 'abcdefg')>>> my_generator.next()'a'>>> next(my_generator)'b'# Python 3>>> my_generator = (letter for letter in 'abcdefg')>>> next(my_generator)'a'

Type中的name:

type(num).__name__  应该是双下划线

__init__()和__del__ 这里内建函数都是双下划线

0 0
原创粉丝点击