python3 day03 大纲
一. 上次课内容回顾
1. 格式化输出
%d 占位数字
%s 占位字符串
%f 占位小数 "jfklasjkfj%s %d %f" % (值1, 值2, 值3) "{}爱上了{}".format("周杰伦", "周润发") f-String:
f"{变量}" 2. 运算符
+
-
*
/
//
% >
<
== 等于
!= 不等于 and 两边同时为真, 结果才是真
or 一边是真. 结果就是真
not 非. 顺序
() => not => and => or a or b if a是真 结果就是a, 否则是b
a and b 和or相反 in 是否在xxx里面
not in 是否不在xxxx里面 += 累加 a+=b a = a + b 3. 编码
1. ascii: 8bit 1byte
2. gbk: 16bit 2byte 中文
3. unicode: 万国码 32bit 4byte
4. utf-8: 适合网络传输和文件存储
英文:8bite 1byte
欧洲:16bit 2byte
中文:24bit 3byte .encode() 编码 结果是bytes
.decode() 解码 结果是字符串 4. str
1. 索引和切片
索引从0开始
切片:[开始:结束:步长]
默认步长是从左到右 想反着来, 负数
顾头不顾尾
2. 操作:
upper(): 全部转化成大写 忽略大小写
strip(): 去掉空白(空格, \n, \t)
replace(): 替换
split(): 字符串切割. 结果是列表
startswith(): 判断是否以xxx开头
find(): 查找字符串出现的位置. 找不到返回-1
index(): xxxxxxxxxxxxxxxxxxx找不到报错
count(): 统计xxx出现的次数
isdigit(): 判断是否是数字组成 len() 计算字符串长度, 内置函数 迭代:
for 变量 in 字符串:
5. 列表
list
用[]表示列表
也有索引和切片 增加
append() 新增
insert() 插入
extend() 迭代新增, 合并列表 修改
list[索引] = 值
删除
pop(index) 删除
remove(item) 删除元素
del
clear()
查询
索引查
for循环 range() 计数 for i in range(10): 0-9
for i in range(10, 20): 10-19
for i in range(10, 20, 2): 10 12 14 16 18 for i in range(len(lst)): 直接能够获取到列表的索引 6. dict
key: 唯一. 可哈希(不可变)
value: 没有限制 dict[新key] = value 新增
setdefault() 先查看key是否存在. 如果存在. 不新增. 如果不存在, 新增. 最终都会使用key进行查询 dict[老key] = value 修改 dict.pop(key) 删除 查询:
get(key) 查询
使用for循环
for k in dict:
直接拿到key
dict[k] for v in dict.values():
直接拿value for k in dict.keys():
直接拿到key
dict[k] for k, v in dict.items():
直接拿到key, value 7. 元组
不可变的列表. 只读列表.
存在的意义就是查询, 让列表变的可哈希 8. 列表和字典在循环的的时候. 不能删除 二. 今日内容
1. 小数据池
为了重复的使用同一个数据
1. str "abc", "周杰伦"
2. int -5~256
3. bool True, False id() 可以查看内存地址 2. is和==的区别
== 判断左右两端的数据是否一致
is 判断两个数据是否是同一个数据 3. 深浅拷贝
拷贝的意义:快速的创建对象-> 克隆 浅拷贝:
只拷贝第一层内容. 复制一个表面, 更深层次的内容. 只拷贝一个内存地址
1. copy() [:] 深拷贝:
1. import copy
2. copy.deepcopy()
3. 把内容完全的复制一份 赋值操作:
不会创建新对象 4. set集合(粗略)
类似dict存储. 只放key.
可哈希. 不可变. 不重复. 无序
{} 可以表示set集合.
set() 创建空集合 帮助我们去除重复 添加:add()
删除:remove()
没有修改.
for循环 5. 文件操作(重点)
f = open(路径, mode="r", encoding="utf-8")
for line in f:
line每一行数据 read() 读取内容
readline() 读取一行内容 w, a: 写操作 b: 处理非文本文件. bytes
+: 扩展
r+
w+
a+ 文件修改
# lst = []
# with open("水果.txt", mode="r", encoding="utf-8") as f:
# title = f.readline().strip().split(",")
# for line in f:
# lst2 = line.strip().split(",")
# dic = {}
# for i in range(len(title)):
# dic[title[i]] = lst2[i]
# lst.append(dic)
# print(lst) '''
b 处理非文本文件 bypes
复制图片,从E盘复制到D盘(不能解码)
'''
# with open("E:\girl.jpg", mode="rb") as f1,\
# open("D:\girl.jpg", mode="wb") as f2:
# for line in f1:
# f2.write(line) '''
文件内容的修改
把sb改为dsb
'''
# import os
# with open("sb", mode="r", encoding="utf-8") as f1, \
# open("sb.bak", mode="w", encoding="utf-8") as f2:
# for line in f1:
# f2.write(line.replace("sb", "dsb"))
# os.remove("sb")
# os.rename("sb.bak", "sb") 6. 函数
对一段代码的封装
对功能或者动作的封装
def 函数名():
函数体 函数的调用
函数名() 函数执行之后会返回一个结果: 返回值. 7. 返回值
return语句. 代表函数的返回值
1. 不写return, 表示函数没有返回值.
2. 写了return. return后面不写值, 接受的是None
3. 写了return 值. 有一个返回值
4. 写return 值1, 值2, 值3..... 8. 参数
在函数执行的时候可以给函数传递一些信息.
在函数声明的位置. 写的变量叫形参
在函数执行的位置. 叫实参 1. 形参
1. 位置参数
2. 默认值参数
可以给出参数的默认值. 给了默认值之后. 调用的时候. 就可以不给值了
默认值参数放后面
3. 不定参数(动态传参)
* 动态接受位置参数. *args
** 动态接受关键字参数. 重点: 位置 > *args > 默认值 > **kwargs *, ** 在形参. 表示聚合, 在实参, 表示打散 2. 实参
位置参数
关键字参数
混合参数
位置在前, 关键字在后 9. 第一类对象(函数名)
函数名本质就是变量 10. 函数的嵌套
名称空间:
1. 内置名称空间 -> 放解释器内部的一些东西. print, input, len
2. 全局名称空间 -> 在全局py文件中... 全局变量(变量, 函数 )
3. 局部名称空间 -> 在函数内部的 变量, 函数 作用域:
1. 全局作用域: 随便用. 全局名称空间+内置名称空间 -> globals
2. 局部作用域: 局部使用. 函数内部. 局部名称空间 -> locals 查看当前作用域 global
1. 在局部引入全局变量
2. 在局部创建全局变量 nonlocal
在局部. 内层函数引入外层函数的局部变量 预习重点: 装饰器, 迭代器, 生成器,
python3 day03 大纲的更多相关文章
- python3 今日大纲 day05
1. 上周内容回顾 1. 闭包: 内层函数对外层函数变量的使用 def outer(): a = 10 def inner(): print(a) return inner ret = outer() ...
- python3 day04 大纲
上节课内容回顾: 1. 小数据池 存储数据. 共享小数据池 int,str, bool == 和 is区别: == 判断的是两边的值 is 左右两端的内存地址 2. 深浅拷贝 1. = 没有创建新对象 ...
- python3 day02 大纲
一. 格式化输出 %s 字符串的占位 %d 数字的占位 digit %f 浮点数 字符串 % (数据) 模板字符串(3.5) # username = "admin"# passw ...
- python3 day01 大纲
1. 简介python 龟叔 89年 人工智能 2. 特点 优点: 简单, 明确, 优雅,跨平台 缺点: 慢 解释型编程语言 分类: 解释型: 一行一行的把代码进行翻译. 执行效率比较低 优势: 跨平 ...
- day03 Python3的安装
目录 Python的安装 Python下载 Python3安装 环境变量 添加环境变量 在CMD中运行Python Python的安装 Python可在多个操作系统(Windows,Linux,Mac ...
- python3笔记目录大纲汇总
篇一.python3基础知识和语句 python3笔记一:python基础知识 python3笔记二:进制转换与原码反码补码 python3笔记三:运算符与表达式 python3笔记四:if语句 py ...
- python3 练习题 day03
''' 1. 文件a1.txt内容 序号 部门 人数 平均年龄 备注 1 python 30 26 单身狗 2 Linux 26 30 没对象 3 运营部 20 24 女生多 ....... 通过代码 ...
- Python3 第五周大纲(模块,导入方法、import本质,导入优化,模块的分类)
1.定义: 模块:逻辑上组织python代码(变量.函数.类.逻辑:实现一个功能,本质是.py结尾的文件) 2.导入方法 import module_name,module_name2,...... ...
- python开发学习-day03(set集合、collection系列 、深浅拷贝、函数)
s12-20160116-day03 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
随机推荐
- [PHP] 算法-删除链表中重复的结点的PHP实现
删除链表中重复的结点: 1.定义两个指针pre和current 2.两个指针同时往后移动,current指针如果与后一个结点值相同,就独自往前走直到没有相等的 3.pre指针next直接指向curre ...
- 理解es6中的const与“不变”
const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动. 效果 对于简单类型的数据(数值.字符串.布尔值),值就保存在变量指向的那个内存地址,因此等同于常量. 对于复合类型 ...
- MVC中的HtmlHelper详解
熟悉MVC开发的朋友都应该知道在MVC中,每一个Controller都对应一个View,并且CS文件和对应的ASPX文件也被分离了,更重要的是不再有服务器端控件在工具箱中,不再是代码后至了.MVC中的 ...
- Android JNI c/c++调用java 无需新建虚拟机
近期通过研究SDL源码 得出android JNI c/c++调用java 无需新建虚拟机: 具体步骤如下 第一步获得:两个参数 JNIEnv和jclass void Java_com_Test_A ...
- Android View体系(八)从源码解析View的layout和draw流程
前言 上一篇文章我们讲了View的measure的流程,接下来我们讲下View的layout和draw流程,如果你理解了View的measure的流程,那这篇文章自然就不在话下了. 1.View的la ...
- python:异常处理、自定义异常、断言
什么是异常: 当程序遭遇某些非正常问题的时候就会抛出异常:比如int()只能处理能转化成int的对象,如果传入一个不能转化的对象就会报错并抛出异常 常用的异常有: ValueError :传入无效的错 ...
- 心迹 使用说明&功能展示
下载地址 心迹.apk 更新于2018.8.9 11:47 测试账号:用户名testing,密码testing 项目地址 GitHub 注册&登录 第一次使用心迹app时,必须进行注册,以便区 ...
- mysql索引类型 normal, unique, full text
问题1:mysql索引类型normal,unique,full text的区别是什么? normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用 ...
- IP负载均衡
推荐一篇关于LVS的好文: https://www.cnblogs.com/gaoxu387/p/7941381.html 一.原博主要内容: 1.概述 IP负载均衡:四层负载,是基于IP+端口的负载 ...
- log4net写入日志到sqlserver数据库
1.添加log4Net配置文件log4net.config 配置文件属性设置为: 配置如下: <?xml version="1.0" encoding="utf-8 ...