python基础
官方内置函数文档地址:https://docs.python.org/2/library/functions.html#abs
#coding=utf-8
# 单行注释,即使是在注释中使用中文,也必须在文件开头声明字符编码,否则会报错;
'''多行注释1'''
"""
多行注释2
"""
# 多行字符串
strMulti1 = '''pikaqiu'''
strMulti2 = """
piqiu
"""
print strMulti1,strMulti2
# 格式化输出 %s 字符串 %d 整形 %f 浮点数 %x 十六进制数
print '%s进化后,是%s' % ('皮丘','皮卡丘')
# 数据类型:list和tuple
# 区别 list里的值可以更改,tuple里的值是不能更改的,list的下标是从0开始的
pikaqiuFamilyList = ['皮丘','皮卡丘','雷丘'] #变长动态list需要用函数append(params)
pikaqiuFamilyMultiList = ['皮丘','皮卡丘','雷丘',['皮小丘']]
print pikaqiuFamilyList,pikaqiuFamilyMultiList
piakqiuFamilyTuple = ('皮丘','皮卡丘','雷丘') #当tuple里的某个元素是list里,因tuple里对应的元素保存的是list的引用,因此,该tuple里的list的值是可以改变的
print piakqiuFamilyTuple
#流程控制示例
num = 2;
if num > 1:
print 1
print 2
print 3
print 4
else:
print 6
print 5
print 7 #输出结果为1,2,3,4,7
names = ['piqiu','pikaqiu','leiqiu']
for name in names:
print name
sum = 0
n = 100
while n > 0:
sum += n
n -= 2
print sum
# dict和set,dict类似关联数组,set和dict的唯一区别仅在于没有存储对应的value
pikaqiuDict = {'piqiu':'皮丘','pikaqiu':'皮卡丘'}
pikaqiuDict['leiqiu'] = '雷丘'
print pikaqiuDict
# set是一组不能重复的key,set中如果有重复key,则会被自动过滤掉,set可以进行交集,并集操作
pikaqiuSet1 = set(['皮丘','皮卡丘','雷丘'])
pikaqiuSet2 = set(['皮小丘','皮丘'])
print pikaqiuSet1 & pikaqiuSet2
# 数据类型转换函数示例:int(),float(),str(),unicode(),bool()函数、特性、类
# 自定义函数,返回多个返回值
def pikaqiu(param='pixiaoqiu'):
if param == 'pikaqiu':
return 'pikaqiu','piqiu'
else:
return 'leiqiu','pikaqiu'
pockemon1, pockemon2 = pikaqiu('pikaqiu')
print pockemon1,pockemon2
# 占位符pass定义空函数
def pikaqiuNone():
pass
# 特性------切片
pikaqiuList = ['piqiu','pikaqiu','leiqiu']
newPikaqiuList = pikaqiuList[1:3]
print newPikaqiuList
# 特性------迭代
pikaqiuList = ['piqiu','pikaqiu','leiqiu']
for key,value in enumerate(pikaqiuList):
print key,value
#高阶函数map和reduce
def numAdd(num):
num += 1
return num
addMap = map(numAdd,[1,2,3,4])
print addMap #[2, 3, 4, 5]
def numAddReduce(numX,numY):
return numX + numY
addReduce = reduce(numAddReduce,[1,2,3,4])
print addReduce #10
#filter过滤掉不符合条件的元素
def isOdd(num):
return num % 2 == 1
numList = [1,2,3,4,5]
newNumList = filter(isOdd,numList)
print newNumList #[1, 3, 5]
# 类的定义与实例化
class Pikaqiu(object):
__leiqiu = 'leiqiu' #私有变量private
def __init__(self):
pass
def piqiuPrint(self):
print 'piqiu'
pikaqiu = Pikaqiu()
pikaqiu.piqiuPrint()
# type和isinstance
# type主要用于获取未知变量的类型,isinstance主要用于判断A类是否继承于B类
class father(object):
pass
class son(father):
pass
if __name__ == '__main__':
print type(son())==father #False
print isinstance(son(),father) #True
print type(son()) # <class '__main__.son'>
print type(son) #<type 'type'>字符串操作
# 去空格及特殊符号
s = " pikaqi u, "
#s = s.lstrip() #去除左空格
#s = s.rstrip() #去除右空格
s = s.strip() #去除左右空格
s = s.replace(' ', '') #去除中间空格
print s # pikaqiu
# 字符串查找
# < 0 为未找到,index()用法同find(),但index没找到字符串时,会抛出异常
# rfind和rindex方法用法和上面一样,只是从字符串的末尾开始查找
sStr1 = 'strchr'
sStr2 = 'l'
nPos = sStr1.find(sStr2)
print nPos #- 1
# 连接字符串
sStr1 = 'pika'
sStr2 = 'qiu'
sStr1 += sStr2
print sStr1 # pikaqiu
#另一种连续方式
delimiter = ','
mylist = ['Brazil', 'Russia', 'India', 'China']
print delimiter.join(mylist)
# 字符串比较
sStr1 = 'pikaqiu'
sStr2 = 'piqiu'
print cmp(sStr1,sStr2) # 相同返回0,不同返回-1
# 输出字符串长度
sStr1 = 'pikaqiu'
print len(sStr1) #7
#将字符串中的大小写转换
sStr1 = 'PikaQiu'
#sStr1 = sStr1.upper()
sStr1 = sStr1.lower()
print sStr1 # pikaqiu
# 追加指定长度的字符串
sStr1 = 'pikaqiu'
sStr2 = '12345'
n = 5
sStr1 += sStr2[2:n]
print sStr1 # pikaqiu345
# 翻转字符串
sStr1 = 'pikaqiu'
sStr1 = sStr1[::-1]
print sStr1 # uiqakip
# 分割字符串
sStr1 = 'piqiu,pikaqiu,leiqiu'
sStr2 = ','
sStr1 = sStr1[sStr1.find(sStr2) + 1:]
print sStr1 # pikaqiu,leiqiu
#或者
s = 'piqiu,pikaqiu,leiqiu'
print(s.split(',')) # ['piqiu', 'pikaqiu', 'leiqiu']
# php中addslashes的实现
def addslashes(s):
d = {'"':'\\"', "'":"\\'", "\0":"\\\0", "\\":"\\\\"}
return ''.join(d.get(c, c) for c in s)
s = "John 'Johny' Doe (a.k.a. \"Super Joe\")\\\0"
print s # John 'Johny' Doe (a.k.a. "Super Joe")\
print addslashes(s) # John \'Johny\' Doe (a.k.a. \"Super Joe\")\\\
#截取字符串
str = '0123456789'
print str[0:3] # 012 截取第一位到第三位的字符
print str[:] # 0123456789 截取字符串的全部字符
print str[6:] # 6789 截取第七个字符到结尾
print str[:-3] # 0123456 截取从头开始到倒数第三个字符之前
print str[2] # 2 截取第三个字符
print str[-1] # 9 截取倒数第一个字符
print str[::-1] # 9876543210 创造一个与原字符串顺序相反的字符串
print str[-3:-1] # 78 截取倒数第三位与倒数第一位之前的字符
print str[-3:] # 789 截取倒数第三位到结尾
print str[:-5:-3] # 96 逆序截取dict常用操作
1、增加key-value;通过dict_stu[key_new]={value_new}; 通过dict_stu.update(dict_new);
2、修改某个key对应的value;通过dict_stu[key_modify]={values_new}
3、查找某个key对应的value;通过dict_stu[key_find]; 通过dict_stu.get(key_find); 通过dict_stu.setdefault(key_find,"defualt value");
3.1、返回字典中所有的值;通过dict_stu.values()
4、删除某个key对应的value;通过del dict_stu[key_del]; 通过dict_stu.pop(key_del);
5、复制一个字典:通过dict_stu.copy()
6、判断字典key是否在字典中:通过key in dict_stu; 通过key not in dict_stu
7、计算字典的长度:通过len(dict_stu)
8、创建一个(不)含默认值的字典:dict.fromkeys(key_list,values)
9、删除整个字典:通过del dict_stu; 通过dict_stu.clear(1