现在的位置: 首页 > 综合 > 正文

Python入门(一)

2013年08月22日 ⁄ 综合 ⁄ 共 3342字 ⁄ 字号 评论关闭

Subsections

缩进

注释

类型

数学运算

流程控制

数据结构

一、缩进
Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。

二、注释
''' 多行注释
# 单行注释

三、类型
Python采用动态类型系统。在编译的时候,Python不会检查对象是否拥有被调用的方法或者属性,而是直至运行时,才做出检查。
str 一个由字符组成的不可更改的有串行。在Python 3.x里,字符串由Unicode字符组成。eg:'Wikipedia'
bytes 一个由字节组成的不可更改的有串行。     b'Some ASCII'
list 可以包含多种类型的可改变的有串行     [4.0, 'string', True]
tuple 可以包含多种类型的不可改变的有串行     (4.0, 'string', True)
set, frozenset 与数学中集合的概念类似。无序的、每个元素唯一。     {4.0, 'string', True}
dict 一个可改变的由键值对组成的无串行。     {'key1': 1.0, 3: False}
int 精度不限的整数     42
float 浮点数。精度与系统相关。     3.1415927
complex 复数     3+2.7j
bool 逻辑值。只有两个值:真、假     True False

四、数学运算
Python使用与C、Java类似的运算符,支持整数与浮点数的数学运算。大多数数学函数处于math和cmath模块内。前者用于实数运算,而后者用于复数运算
import math
print(math.sin(math.pi/2))

五、流程控制
5.1 if Statements

'''
Created on 2012-12-17
@author: chenll
'''
x = int(raw_input("Please enter an integer: "));
if x < 0:
    x = 0
    print 'Negative changed to zero'
elif x == 0:
    print 'Zero'
elif x == 1:
    print 'Single'
else:
    print 'More';

5.2 for Statements

a = ['cat', 'window', 'defenestrate'];
for x in a:
    print x, len(x);

5.3 break and continue Statements

break 语句和 C 中的类似,用于跳出最近的一级 for 或 while 循环。
continue 语句是从 C 中借鉴来的,它表示循环继续执行下一次迭代。

5.4 The range()
如果你需要一个数值序列,内置函数range()可能会很有用,它生成一个等差级数链表。
>>> range(5, 10)
[5, 6, 7, 8, 9]
>>> range(0, 10, 3)
[0, 3, 6, 9]

5.5 pass Statements
pass 语句什么也不做。它用于那些语法上必须要有什么语句,但程序什么也不做的场合

5.6 Defining Functions 定义函数
过程只是一个没有返回值的函数

def add(m,n):
    print(m+n);
add(3,5);

带有返回值的函数

def add(m,n):
    return (m+n);
    
result=add(1,22);
print(result);

5.7 More on Defining Functions 深入函数定义
有时需要定义参数个数可变的函数。
  5.7.1  Default Argument Values 参数默认值 ,最有用的形式是给一个或多个参数指定默认值。这样创建的函数可以用较少的参数来调用。

def add(m,n,language=1):
    print(language);
    print(m+n);
add(3,5);

  5.7.2  Keyword Arguments  函数可以通过关键字参数的形式来调用,形如"keyword = value"。

def add(m,n,language=1):
    print(language);
    print(m+n);
add(3,5,language=2);

六、数据结构
Data Structures
6.1 More on Lists 深入链表
a = [xx,xxx,xxxx];
a.append(x) 把一个元素添加到链表的结尾,
a.insert(i,x) 在指定位置插入一个元素。
remove(x)  删除链表中值为x的第一个元素。如果没有这样的元素,就会返回一个错误。
pop(i) 从链表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop() 返回最后一个元素。元素随即从链表中被删除。
index(x) 返回链表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
count(x) 返回x在链表中出现的次数。
sort()  对链表中的元素就地进行排序。
reverse() 倒排链表中的元素。

Using Lists as Stacks 把链表当作堆栈使用
用append() 方法可以把一个元素添加到堆栈顶。用不指定索引的pop() 方法可以把一个元素从堆栈顶释放出来。

stack = [3, 4, 5];
stack.append(6)
stack.append(7);
for x in stack:
    print(x);
print(stack.pop()); # 7

Using Lists as Queues 把链表当作队列使用

使用 append() 方法可以把元素添加到队列最后,以0为参数调用 pop() 方法可以把最先进入的元素释放出来.

queue = ["Eric", "John", "Michael"]
queue.append("Terry")  
queue.append("Graham")   
print(queue.pop(0)); # Eric

链表的三个重要内置函数,filter(), map(), 和 reduce()。
filter(function, sequence) 返回一个sequence(序列),包括了给定序列中所有调用function(item)后返回值为true的元素。

def f(x):
    for n in range(2,x-1):
        if x%n==0:
            return False;
    return True;

seq = filter(f,range(2,25));
for item in seq:
    print(item);  #打印出素数

map(function, sequence) 为每一个元素依次调用function(item)并将返回值组成一个链表返回。

def cube(x):
    return x*x*x;
m = map(cube,range(1,5));
for x in m:
    print(x);  #打印出1到5各数的立方

可以传入多个序列,函数也必须要有对应数量的参数,执行时会依次用各序列上对应的元素来调用函数。如果某些序列比其它的短,就用None来代替

seq = range(8)
def add(x, y): return x+y
seq = map(add, seq, seq)
for x in seq:
    print(x);

reduce(function, sequence) 返回一个单值,它是这样构造的:首先以序列的前两个元素调用函数,再以返回值和第三个参数调用,依次执行下去。

def add(x,y): return x+y;
sum = reduce(add,range(1,11));
print sum;

6.2 The del statement

6.3 元组(Tuples)和序列(Sequences)
6.4 Sets 集合
6.5 Dictionaries
6.6 Looping Techniques 循环技术
在字典中循环时,关键字和对应的值可以使用 items() 方法同时解读出来。

knights = {'gallahad': 'the pure', 'robin': 'the brave'}
for k, v in knights.items():
    print k, v

在序列中循环时,索引位置和对应值可以使用 enumerate() 函数同时得到。

for i, v in enumerate(['tic', 'tac', 'toe']):
    print i, v
# 0 tic 1 tac 2 toe

抱歉!评论已关闭.