获取地址
获取地址
1、Python是一门动态、解释型、强类型语言
动态:运行期间进行数据检查,不用提前声明变量
静态:编译时进行数据检查,需要提前声明变量
解释型:执行程序时,解释成机器语言给计算机执行
编译型:先将代码编译成二进制可执行文件,再执行
强类型:变量类型设置成功,如果不强制转化,一直是这种类型
弱类型:在执行过程中会根据需要自动转化类型
2、基本数据类型
数字:整型,浮点型,复数型,布尔类型
字符串:
len('abc') 字符串长度
print('abd'.find('f')) 查找字符,找不到会报错
print('abd'.index('f')) 查找字符,找不到返回-1
'abc'.count('a') 统计字符的数量
"".join(["a","b","c"]) 列表转化成字符串
"a,b,c,d".split(",") 将多个字符串分割成列表
"hello,java".replace("java", "python") 将java 替换为 python
"Name: %s, Age: %d" % ("Lily", 12) 字符串格式化
"Name: {}, Age: {}".format("Lily", 12)
列表:可以改变,有序
s.append('s') 只能增加一个元素
s.extend(['a','b']) 可以增加多个元素
s.pop() 默认删除最后一个元素
s.remove('a') 删除固定元素
s.sort() 排序
s.reverse() 反转
字典:无序,可变,字典的key不能相同
d = {'a':'b'}
d['a'] 或 d.get('a') 获取键值
d.pop('a') 删除元素
d.clear() 清除所有元素
元组:不可改变,有序
集合:可变,无序,通常用作去重,性能比列表好,一次搜索
3、哈希元素
通过计算得到元素的存储地址(映射), 要求不同长度的元素都能计算出地址,相同元素每次计算出的地址都一样, 不同元素计算的地址必须唯一, 基于哈希的查找永远只需要一步操作, 计算一下得到元素相应的地址, 不需要向序列那样遍历, 所以性能较好
可哈希元素: 为了保证每次计算出的地址相同, 要求元素长度是固定的, 如数字/字符串/只包含数字,字符串的元组, 这些都是可哈希元素
4、例子:判断一个字符串是不是ip地址
5、文件操作
文件打开 f=open('t.text') f.close() //// f = with open('t.text') as f
文件读取 read() /// readline()
文件保存 f.save()
文件写入 f.write()
文件指针移动 f.seek()
二、python函数
1、必选与可选参数
可选参数必须放在后面,已有默认值定义
2、位置参数和关键字参数
位置参数:按照位置传参
关键字参数:直接指定参数值,不按顺序
3、可变参数
*args 定义多个元素,里面存储元组
**kwargs 存储多个元素,格式是字典
4、匿名函数lambda(主要为了定义简单函数)
add = lamda x,y: x+y
5、高阶函数
以函数为参数的函数称为高阶函数
常用高阶函数
map,使用一个函数面对序列进行批量操作
filter,使用一个函数来过滤数据
reduce,使用一个函数对序列累计操作;这个函数的2个参数操作完作为下一轮的入参
6、装饰器
以函数为参数的函数称为高阶函数,以@为引用
7、函数嵌套
函数内部定义函数
学习要点:
- 弱语法,重原理。语法是表现,只有了解深层原理,才能灵活运用。需要深入内存,剖析原理,才能看清语法。
- 重思想,重设计。思想是解决问题的思路,设计是指导程序结构的过程。
- 学习方法:
(1)知识点必须理解(定义/作用/适用性/语法)
(2)整理笔记(三合一)
(3)当天联系独立完成 - 学习过程:
记:解决问题的思想 - 靠实战训练
忘:细枝末节一些东西 -查找资料获取具体的解决
执行过程
- 编译型: C ,优点:执行快;缺点:开发效率低,不能跨平台
- 解释型:Javascript, 优点:开发效率高,能跨平台;缺点:效率低
- Python: 既有编译,也有解释(字节码),拥有上面两种优点