python基础详解
变量作用域
之前理解的是内存里的数据只要有引用就可以打印。
但是在python中,能够改变变量作用域的代码段是def、class、lamda。很简单的的来说就是只存在函数里面的变量,是有它相对应的作用域的。
def test_def():
a= 100
print "This is function inner and variable is ",a
test_def()#直接运行函数不会出错,会打印出a的值。
print a
# 要是运行完函数,再运行print a,那么就会报错,找不到变量a
# 因为a是本地变量
变量搜索的路径是 先本地变量,然后再全局变量
三元运算
result = 值1 if 条件 else 值2
# 简单的判断。用一条就搞定。
result = True if a =>100 else False
# 比如当连接mysql数据库的时候,可以如下使用
$conn = @mysql_connect(...) or die("Failed")
对象
在python中,一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method)
结论:对象=属性+方法
在python中,把具有相同属性和方法的对象归为一个类(class)
比如某个字符串就是字符串类所生成的。
字符串具有很多属性和方法。那么这个具体的字符串就是一个对象。
整型
常见的整型就是一些数字,12,34等.
比如num = 100
整型有很多方法可以使用。
下面罗列几个常用的。
num = -100
num.__abs__()
# 返回num的绝对值
# abs(num) ,也可以这样使用。和上面的是等价的。
num_a = 10
num_b = 20
num_a.__add__(num_b)
# 返回的是num_a + num_b
# num_a + num_b 其实调用的就是 __add__方法
num = 100
num.__cmp__(num,99)
# 比较两个数大小,大于返回1,等于返回0,小于返回-1.
# 相除,这个比较重要
# divmod,得到商和余数组成的元组。
x.__divmod__(y) <==> divmod(x, y)
长整型
和整型类似。
浮点型
待补充
字符串
python中提供了很多对字符串操作的函数。
a = "hansz"
a.capitalize()
# 首字母大写 Hansz
a.center(50,"*")
# 内容居中,长度为100,空白处填*
# **********************hansz***********************
# 子序列个数
a = "abcdeabcde"
a.count("a",1,10)
decode 解码
解码时先把自己的编码转换为unicode编码。
encode编码
编码是把unicode编码转换为需要的编码。
UTF-8 解码为unicode 然后编码为gbk
a.decode(“UTF-8”).encode(“GBK”)
a = "han.conf"
a.endswith("conf")
# 是否已某个字符结尾
a = "hansz"
a.find("s")
# 查找
a = "123hansz"
a.isalnum()
# 判断是否是字母和数字
a = "hansz"
a.isalpha()
# 判断是否是字母
a = "1212"
a.isdigit()
# 判断是否是数字
# isspace 是否为空
# 还有很多
# ...
列表
python中的列表也是非常有用的。