python之路——15
王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594
复习
1.迭代器
1.可迭代协议:含有iter
2.迭代器协议:含有iter和next
3.特点:节省内存,逐一取值
2.生成器
1.生成器函数
1.含有yield关键字
2.特点:1.调用后不执行,返回生成器
2.不断取值,遇到yield停止
3.取值方法: for、next、send、强制转换
2.生成器表达式
学习内容
1.内置函数
1.作用域相关
global 和globals() 不同 nonlocal 和 locals()不同
2.迭代相关
next() iter() range()
3.其他
1.dir——查看一个对象拥有的方法
2.callable——检测是否可调用
3.help
4.import 导入模块
5.open——文件操作
6.writable() readable()——检测文件是否可读/写
7.id() ——内存地址
8.hash ——字典的键,哈希产生一串数,标记内存地址,将值放入;字典的键必须为可哈希类型
——hash值 在一次程序的执行中总是不变的
9.input
10.print 自带回车(end='\n'); # progress bar
11.exec 没有返回值,适合处理简单的流程控制;eval 有返回值,适合处理有结果的简单计算。 两者均可执行字符串类型代码——'1+2+3+4'
12.compile 将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。
4.数据类型
int bool complex float(可以写成分数的小数,即不包括无限不循环小数)
# 354.123 = 3.54123*10^2 = 35.4123*10^1 浮点
5.进制转换
bin(0b) oct(0o) hex(0x)
6.数学运算
abs 绝对值
divmod(7,2)=(3,1) 7/2=3....1
round(3.14159,3) = 3.142
pow(2,3) = 8 幂运算 pow(2,3,3) = 2 2^3取余3=2
sum(iterable,start)
min(1,2,3,4) = min([1,2,3,4]) = 1 min(1,2,3,-4,key = abs) = 4
max
代码区
1.打印进度条
import time
for i in range(0,101,2):
time.sleep(0.1)
char_num = i//2 #打印多少个'*'
per_str = '\r%s%% : %s\n' % (i, '*' * char_num) if i == 100 else '\r%s%% : %s'%(i,'*'*char_num)
print(per_str,end='', flush=True)
2.load...... 点为动态
import time
print("Loading",end = "")
for i in range(6):
print(".",end = '',flush = True)
time.sleep(0.2)
3.注意名字指向内存地址,{}可变数据类型,容器数据类型,一个改变,都跟着改变
kvps ={'':1, '':2}
thecopy = kvps
kvps[''] = 5
sum1 = kvps[''] + thecopy['']
print(sum1)
4.练习题目
# 复数不能比较大小
# 只能在循环体中使用break
print(3>2==2) # 3>2--True 2==2--True print(43>=1 and 'A'<'b') # ASCII A-65 a-97 转换成ASCII比较
print(43>=1 and 'A'<'b' and 1) # 返回1 print('abc'>'bca') # 字符串首字母ASCII比较大小, 元祖不能比大小
print([1,2]>[2,1]) # 列表从第一个位置开始比 c = 5+6j
print(type(c.imag))
is 比较内存地址
== 比较值
5.python2 与python3的区别
k = 1000
count = 0
while k>1:
count += 1
print k # python 2 语句
k = k/2
print(count)
6range切片
l = range(100)
print(list(l[0:3]))
print(l[98])
print(l[-2])
print(l[-10:])
l1 = l[:]
print(l)
7.默认参数陷阱问题, 类似于函数名字问题,
def extendlist(val,lis=[]):
lis.append(val)
return lis
list1 = extendlist(10) # 函数返回lis 是内存地址,即list1指向同一个列表
list2 = extendlist(123,[])
list3 = extendlist('a') # list3也指向lis, lis指向的列表变了,所有的指向这个列表的变量值都变了
print('list1 = %s'%list1)
print('list2 = %s'%list2)
print('list3 = %s'%list3)
8.删除list中的重复元素
li = [1, 3, 1, '', 'asd', 'asd', 'asd12']
li_new = []
for i in li:
if i not in li_new:
li_new.append(i)
print(li_new)
python之路——15的更多相关文章
- 【python之路15】深浅拷贝及函数
一.集合数据类型(set):无序不重复的集合,交集.并集等功能 二.三元运算符 三.深浅拷贝 1)字符串和数字:深浅内存地址都一样 2)其他:浅拷贝:仅复制最外面第一层 深拷贝:除了最内层其他均拷贝 ...
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- Python之路【第十八篇】:Web框架们
Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
- Python之路【第十五篇】:Web框架
Python之路[第十五篇]:Web框架 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 ...
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
- Python之路【第八篇】:堡垒机实例以及数据库操作
Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...
- Python之路【第七篇】:线程、进程和协程
Python之路[第七篇]:线程.进程和协程 Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
随机推荐
- Vue.js 基本功能了解一下~
一.写在前面 隔了这么久才来出Vue的第二篇文章,真是堕落了,自己先惩罚下/(ㄒoㄒ)/~~ 回过头看自己第一篇相关文章<初试 Vue.js>(http://www.cnblogs.com ...
- day051 django第二天 django初识\代码
模板渲染 JinJa2 from wsgiref.simple_sever import make_sever from jinjia2 import Template def index(): wi ...
- linux后台运行python程序 nohup
nohup python -u test.py > out.log 2>&1 & nohup sh **.sh > /dev/null 2>&1 &am ...
- CLR via C#--------CLR的执行模式
CLR:是一个可由多种编程语言使用的“运行时”. CLR的核心功能(比如 内存管理.程序集加载.安全性.异常处理.线程同步)可由面向CLR的所有语言使用. CLR是完全围绕类型展开的. 面向CLR的语 ...
- Problem A: 平面上的点和线——Point类、Line类 (I)
Description 在数学上,平面直角坐标系上的点用X轴和Y轴上的两个坐标值唯一确定,两点确定一条线段.现在我们封装一个“Point类”和“Line类”来实现平面上的点的操作. 根据“append ...
- Windows----Github环境搭建
关于Github的那点事: 一.下载安装 下载地址: https://git-for-windows.github.io/ 在官方下载完后,安装到Windows Explorer integra ...
- Core Json 序列化相关问题
//返回json 大小写 配置 services.AddMvc() .AddJsonOptions( op => op.Serial ...
- 二、fread与fwrite
fread 原型:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 参数: ptr:数据存放地址 size:一个对象的 ...
- golang结构体、接口、反射
struct结构体 struct用来自定义复杂数据结构,可以包含多个字段属性,可以嵌套; go中的struct类型理解为类,可以定义方法,和函数定义有些许区别; struct类型是值类型. struc ...
- XQuery:查询任何可作为 XML 形态呈现的数据,包括数据库
XQuery 也被称为 XML Query,被设计用来查询 XML 数据. 学习这个 需要知道 HTML / XHTML XML / XML 命名空间 XPath XML 实例文档 我们将在下面的例子 ...