Python基础

在命令行启动脚本

$python script.py

自动执行Python解释器:在#!后面写上Python的完整路径。更好的方案是使用Unix系统中的env命令

#!/usr/bin/env python

执行时,直接输入

$script.py

语句与语法

换行继续(\)

Python语句,一般使用换行分隔,一行一个语句。过长的语句可以用反斜杠(\)分解。

换行继续不需要(\)的例外情况:

  • 在闭合操作符中,如小括号,中括号,花括号中多行书写
  • 三引号包括下的字符

缩进分隔

Python使用缩进来分隔代码块。代码的层次关系是通过同样深度的空格或制表符缩进体现的。推荐使用4个空格宽度。 
由于不同编辑器中的制表符的空白宽度不一,如果代码要跨平台应用,或者会被不同的编辑器读写,建议不使用制表符。

标识符

Python标识符字符串规则:

  • 第一个字符必须是字母或下划线
  • 剩下的字符可以是字母数字或者下划线
  • 大小写敏感

专用下划线标识符

Python使用下划线作为变量前缀和后缀指定特殊变量。因为下划线对解释器有特殊意义,而且是内建标识符所使用的符号,建议程序员避免使用下划线作为变量名的开始。

  • _xxx 不用from module import *导入,类中的私有变量名
  • __xxx__ 系统定义的名字

代码块

if
if expression:
    expr_true_suite

if - else
if expression:
    expr_true_suite
else:
    expr_false_suite

if - elif - else
if expression1:
    expr1_true_suite
elif expression2:
    expr2_true_suite
elif expressionN:
    exprN_true_suite
else:
    expr_false_suite

条件表达式
X if C else Y

equals

if C:
    X
else:
    y   

while
while expression:
    suit_to_repeat

for
for iter_var in iterable:
    suite_to_repeat

pass

Python提供了pass语句,不做任何事情——NOP(No Operation).

while - else / for - else
while/for expr :
    suites
else:
    suites

在while或者for最后条件不满足时,执行else的suiites。 
如果while/for的suites中间出现break,则直接跳过,不执行else部分。

模块结构和布局

在Python中建立一种统一并容易阅读的结构,并将其应用到每一个文件中去。

                        

主程序代码通常都和前面的代码相似,先检查__name__的值,然后执行相应的操作。如果模块被导入,__name__的值为模块名称;如果模块被直接执行,__name__的值为__main__

数据类型

Python中的对象包含三要素:id、type、value。 
其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值

  • is 判断的是a对象是否就是b对象,是通过id来判断的
  • == 判断的是a对象的值是否和b对象的值相等,是通过value来判断的

存储模型

能够保存单个字面对象的类型,成为原子或标量存储,分类:数值,字符串。 
能够容纳多个对象的类型,成为容器存储或复合存储,分类:列表,元组,字典。

更新模型

对象创建成功之后,值是否可以更改呢?可变对象允许值被更新,不可变对象则不允许它们的值被更改。 
可变类型: 列表,字典 不可变类型:数字,字符串,元组

访问模型

根据访问存储的数据的方式,对类型进行分类:直接存储,顺序和映射。 
数值类型,直接访问。 
序列类型:元素按从0开始的索引顺序访问,字符串,元组,列表。 
映射类型:通过键值对映射来访问。

操作符

算数操作符

按照操作符的优先级依次排列

exp1 ** exp2     exp1的exp2次方
+exp             
-exp             
exp1 * exp2      
exp1 / exp2      
exp1 // exp2     地板除,from 2.2
exp1 % exp2      模余
exp1 + exp2      
exp1 - exp2   

位操作符

Python整形支持标准位操作:

~num           取反
num1<<num2     左移num2
num1>>num2     右移num2
num1&num2      按位 与
num1^num2      按位 异或
num1|num2      按位 或

函数

标准类型函数

cmp()
str()
type()

数字类型函数

int(x, base=10)
long(x, base=10)
float(x)
complex(real[, imag])
bool(x)

abs(num)           绝对值
coerce(n1,n2)      将n1和n2转换为同一类型,然后以元组返回
divmod(n1,n2)      除法取余运算的结合
pow(n1,n2,mod=1)   取n1的n2次方,如果提供mod,再对mod取余
round(n,ndig=0)   n四舍五入,保留ndig位小数

hex(num)      将数字转换为十六进制,并用字符形式输出
oct(num)      将数字转换成八进制,并用字符形式输出,num [0,255]
chr(num)      将ASCII值的数字转换成ASCII字符, 
ord(num)      接受ASCII或者Unicode的字符,返回值
unichr(num)   接受Unicode码值,返回字符

序列

序列类型操作符

obj [not] in seq   判断obj是否在序列seq中
seq[index]         获得下标为index的序列值
seq[i1:i2:s]       获得从i1到i2,以s间隔的序列值
seq * N            重复序列N次
seq1 + seq2        连接seq1和seq2

list(iter)         将可迭代对象转化成列表
tuple(iter)        将可迭代对象转化成元组

enumerate(iter)    接受可迭代对象作为参数
len(seq)           返回seq的长度
max(iter,key=None) 返回iter的最大值,key必须是可以传递给sort的参数
min(iter,key=None) 返回iter的最小值,key必须是可以传递给sort的参数
reversed(seq)      接受序列作为参数,返回一个逆序的迭代器

sorted(iter,
    fun=None,      接受一个可迭代对象,返回有序列表
    key=None,
    reverse=False)

sum(seq,init=0)    返回seq和可选参数init的总和,
                   其效果等于reduce(operator.add,seq,init)

zip([it0,...itN])  返回一个列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值