python易忘 自用小甲鱼笔记
1.字符串.format
'{0:9=10}'.format(520)
#0表示format第0个参数,9表示用9填充,10表示宽度为10,=表示符号之后,数字之前
Out[150]: '9999999520'
'{0:9^10}'.format(520)#^表示居中,<表示靠左,>表示靠右
Out[151]: '9995209999'
'{0:^10}'.format(520)#默认用空格填充
Out[153]: ' 520 '
2集合的运算
#交集
s={1,2}
s.intersection_update({1,3})
s
Out[409]: {1}#并集
s.update({2,3})
s
Out[411]: {1, 2, 3}#差集 s-{2,5}
s.difference_update({2,5})
s
Out[414]: {1, 3}#对称差集,并集-交集
s.symmetric_difference_update({1,4,5})
s
Out[416]: {3, 4, 5}
3.可变容器不可哈希,不可变容器可哈希,函数hash返回对应的哈希值
4.
/左边不可以使用关键字参数,右边才可以
左边都行,右边只能是关键字参数
5.函数参数,*x元胞类型收集参数 **x字典类型收集参数
6.legb作用域原则:l:local e:enclosed嵌套函数 g:global全局 b:bif:built in function内置函数
当发生冲突时候,python选择左边的。例外情况:l e nonlocal关键字,e g global关键字。
所以一定小心不要起一个变量名和bif一样,就会把bif毁掉
7.函数的递归!!!居然是这么用,比如说求阶乘
def niubi(n)if n==1return 1else:return n*niubi(n-1)
甲鱼老师的,妙啊,当时学C语言就没有想到
def jie():m = 1def bi(n):if n>1:nonlocal mm = m * nn = n-1bi(n)return mreturn bi
我的,,,傻傻的
8.虽然说天才程序员用递归,但是迭代的效率居然更高
9.函数文档、类型注释
查看函数文档 help(函数名)
创建函数文档
类型注释:
:s后边的内容表示作者的期望类型
->后表示返回值类型
诸如此类:
如果希望python做检测 ,可以使用mypy插件需要安装,小甲鱼有教程
内省:自我检测的机制
获取名字:
类型注释的查看:
查看函数文档:
10.高阶函数:其他函数作为变量传入
为此搞了一个模块functools:
reduce()函数:
偏函数:类似于闭包,将多个参数分次传递
@wraps装饰器:装饰器装饰的函数名字会发生改变,有这个就不会改变(没彻底学会怎么用)
11.1永久存储(上)
速查宝典 open()
f = open('fish.txt','w') #当前目录下创建该文件,如果已经存在会清除内容。#写内容
f.write('dfdf')
f.writelines({'fdjkf\n','dkfjs'})#关闭文件后才会显示
f.close()
#想不关闭就显示
f.flush()f = open('fish.txt','r+')#更新方式打开
f.readable()#判断是否可读
f.writable()#判断是否可写#读取文件
f.read()
f.readline()
f.tell()#显示目前指针所在位置
f.seek()#设置指针位置f.truncate(29)#只要前29个字符
11.2 永久存储(中):速查宝典pathlib os.path 拓展阅读:新旧路径处理模块大比拼
路径处理(win\与转义字符矛盾,需要换成/或\\)
以前常用模块os.path,现在用pathlib
上图2好像不是元胞
4文件或文件夹的状态
当前文件夹下*。
当前目录下的下一级目录下的所有
当前目录及所有子目录
11.3
本节首先讲了with语句(上下文管理器),其为文件操作提供了一种更为优雅的操作方式,确保资源的释放,既省去了手动关闭文件的麻烦,还可避免程序出错时数据未能写入文件的悲哀。随后讲了pickle模块,其用于解决Python对象的永久存储问题,允许将字符串、列表、字典等Python对象序列化,保存为文件的形式。所谓序列化,就是将Python对象转换为二进制字节流的过程。pickle模块中的dump()函数可将Python对象写入扩展名为pkl的二进制文件,load()函数则用于读取二进制文件,将其还原为Python对象。因二进制文件无法被文本文件编辑器正常读取,这一过程有点类似于使用二进制对Python对象进行加密和解密,神奇又有趣! (copy自鱼C论坛:小古比鱼) |
12异常exception: 速查宝典:python内置异常大合集 报错后可以直接来这里搜索
处理异常
还可以与else结合,当没有异常时候
还可以与finally结合,无论是否出现异常
还可以异常嵌套
可以随时抛出异常(不能是胡编乱造的异常)
raise
异常链
assert 用于代码调试 抛出异常
利用异常实现 goto
13 类和对象
class A
classB(A)
class C(A,B)
此时C中的数据优先使用A中
MRO
super()扩展阅读:MRO 的核心工作原理就是 DFLR(Depth First,Left to Right)查找规则。
super() 的做法是根据 MRO 顺序,找到第一个匹配的方法,就停下了脚步。
秒~
继承自父类的__slots__属性不会生效
property
python中property的用法_Jayeeeee的博客-CSDN博客_python中property的用法
14魔法方法:相当于C++的重载
Python 魔法方法详解_Wain丶的博客-CSDN博客_python魔法方法
没太搞懂这里
15.模块
import 模块名 (如果模块不在目前文件夹下,
需要import sys sys.path.append('路径‘)后再import)
import 太长模块名 as 缩写
import 包名.模块名 包就是一个文件夹名,该文件夹中需要有一个文件,名为__init__.py
如果写模块时候,有的代码只是用来测试,并不希望导入的时候也调用的话,就可以在模块中使用
if __name__ == '__main__':test()
甲鱼老师说:要学会自己查文档。ctrl + q快速文档 shift + F1 官方外部文档pycharm中查看快速帮助和python官方帮助文档_adz41455的博客-CSDN博客
python官方文档链接3.9.13 Documentation (python.org)
还有很多扩展包可以去pypi下载,网址如下
PyPI · The Python Package Index
实例:
文档中进行索引
print(模块名.__doc__) 文档
dir(模块名)显示有哪些类 如果有__all__
模块名.__all__ 可供外界调用的属性
模块名.__file__ 该模块所在路径
help(模块)
拓展阅读:timeit模块详解
16终于到了激动人心的爬虫了
URL
lib www
模块 urllib
(原来小甲鱼是一只蜘蛛/(ㄒoㄒ)/~~,好喜欢小甲鱼,希望小甲鱼可以健健康康快快乐乐,他爱的人也是!~)
getcode()获取当前的网页的状态码: 200状态码表示网页正常,403表示不正常。
#鱼C官网关键字:python编码问题的解决方案总结
json轻量级数据交换格式,对python数据类型的封装
import urllib.request
import urllib.parse
import json
while(1):content = input('请输入需要翻译的内容:')#f12打开控制台,网络,添加方法,找到post,点击post对应元素#url 标头->请求url 注意要删去_o,好像是有道的反爬虫机制url = 'https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'#data 负载->表单数据data = {}data['i']= contentdata['from']= 'AUTO'data['to']= 'AUTO'data['smartresult']= 'dict'data['client']= 'fanyideskweb'data['salt']= '16557774287213'data['sign']= 'c7a6547baca9f65483f9c5e3b6458bd1'data['lts']= '1655777428721'data['bv']= '09e377475805a2fb71b566de21e0dc2b'data['doctype']= 'json'data['version']= '2.1'data['keyfrom']= 'fanyi.web'data['action']= 'FY_BY_REALTlME'data = urllib.parse.urlencode(data).encode('utf-8')#转换为utf-8response = urllib.request.urlopen(url,data)html = response.read().decode('utf-8')#将utf-8解码target = json.loads(html)#将json格式转换为字典格式a = target['translateResult'][0][0]['tgt']print('翻译结果:',a)
#缺陷只能翻译一句
隐藏:
一种是使用,自己的header,外加time延时
一种是使用代理:云代理 - 高品质http代理ip供应平台/每天分享大量免费代理IP (ip3366.net)
国内高匿免费HTTP代理IP - 快代理 (kuaidaili.com)
都得多试很多个才能碰到能用的,注意要使用高匿名,透明的和不用一样
import random
import urllib.requesturl = 'http://www.whatismyip.com.tw'iplist = ['120.194.55.139:6969','202.55.5.209:8090','58.20.235.180:9091']#步骤1:参数是一个字典(’类型‘:’代理ip端口号‘)
#proxy_support = urllib.request.ProxyHandler({'http':'183.247.202.208:30001'})
proxy_support = urllib.request.ProxyHandler({'http':random.choice(iplist)})#步骤2:定制创建一个opener
opener = urllib.request.build_opener(proxy_support)
opener.addheaders = {('User-Agent','Mo##换自己电脑44')}#步骤3:安装一个opener
urllib.request.install_opener(opener)response = urllib.request.urlopen(url)
html = response.read().decode('utf-8')
print(html)
正则表达式
(后续。。。
python易忘 自用小甲鱼笔记相关推荐
- (第二版)零基础入门Python小甲鱼-笔记-第三章-p5
(第二版)零基础入门Python小甲鱼-笔记-第三章-p5 变量和字符串(下) 上节课讲了有些字符比如换行符.TAB制表符还有单引号.双引号等等...可以通过转义字符来实现,今天来谈谈原始字符串 1. ...
- python小甲鱼笔记
提示:python小甲鱼笔记 文章目录 前言 〇.函数 1.常用基本函数 2.常用表函数 3.常用子函数 4.输入.输出 5.字符串函数 5.快捷键 一.常用函数案例 1.文本输出 2.猜数 if 实 ...
- 小甲鱼python课后题和答案简书_【py小甲鱼笔记】-列表
要点:通过print(dir(list))来查看列表的所有方法,然后通过help(list.index).help(list.sort) 等查看帮助文档,这样就可以快速了解列表的每一个函数的用法 一. ...
- 小甲鱼python全部视频_小甲鱼全套教程之Python系列视频教程
Python 当前位置:主页 > 编程教程 > Python > 小甲鱼全套教程之Python系列视频教程 小甲鱼全套教程之Python系列视频教程 教程大小: 发布时间:201 ...
- 跟着小甲鱼学python怎么样_跟着小甲鱼的python视频学习,小白能够接受吗?
查看: 3709|回复: 14 跟着小甲鱼的python视频学习,小白能够接受吗? 电梯直达 发表于 2018-4-29 16:57:27 | 只看该作者 |倒序浏览 |阅读模式 马上注册,结交更多好 ...
- python编程练习(小甲鱼)第16-20课
1.将可迭代对象转化为列表,元组,字符串的内置函数 list() tuple() str() 2.区分reverse()和reversed(),为什么用法不一样 reverse()是python中列表 ...
- 小甲鱼python教程视频怎么样-小甲鱼零基础入门学习Python视频教程全套96集
资源介绍 教程名称: 小甲鱼零基础入门学习Python视频教程全套96集 课程简介: xa0 xa0 Python具有跨平台特点,Python可以在各种不同类型的计算机上运行,Windows.MAC. ...
- 小甲鱼python课后题和答案简书_【py小甲鱼笔记】-函数
课后作业: 1. 请问这个函数有多少个参数? def MyFun((x, y), (a, b)): return x * y - a * b 如果你回答两个,那么恭喜你错啦,答案是0,因为类似于这样的 ...
- python二级考试选择题公共基础知识_计算机二级Python易忘考点整理
事先声明,这里记录的是我刷二级题时遇到的不熟悉的问题时记录下来的笔记.可能并不适合所有人,仅供参考. 任何问题请联系邮箱:admin@likehide.com (因为不常上网站,所以留言和私信可能无法 ...
- 小甲鱼python课件免费_小甲鱼零基础入门学习Python+全套源码课件-资源共享吧收集整理...
游客,如果您要查看本帖隐藏内容请回复 第000讲 愉快的开始(视频+课件) 第001讲 我和Python的第一次亲密接触(视频+课件) 第002讲 用Python设计第一个游戏(视频+课件+源代码) ...
最新文章
- interceptor拦截器典型应用实例----数据稽核
- 【Boost】boost库中timer定时器
- (14)Node.js 核心模块—http
- 前端协商缓存强缓存如何使用_http协商缓存与强缓存
- 15年3月c语言试卷,2015年3月计算机二级C语言试卷及答案..doc
- redis 使用案例
- Android中如何提取和生成mp4文件
- Base64---加密
- 最新M1芯片的MacBook Pro打开软件闪退解决方法
- Eclipse配置Tomcat8
- 淘宝开放接口api分享
- Java程序员必备!java商城项目难点
- php 微信 爬虫 源码,【程序源代码】微信爬虫
- Ubuntu系统实现简单c语言编程
- 基于anbox的云游戏技术简介
- KF UD分解之UD分解基础篇【1】
- 内农大《嵌入式基础》实验一 Shell编程
- CC2530学习(一)CC2530微控制器介绍
- 新视野大学英语第三版第二册视听说答案
- LTspice基础教程-011.仿真相关文件介绍
热门文章
- Microsoft Sync Framework Runtime 简介(一篇非常好的MSF介绍文章)
- java 快速判断对象是否为null的快捷方法
- 2021年剑桥高考成绩查询,2021年剑桥英语KET/PET成绩查询指南
- 知乎--LSTM(挺全的)
- java field_Java Field.get()取得对象的Field属性值
- MIPS体系结构简介
- 沙箱环境和正式环境【PayPal接入(java)】【IPN通知问题】项目实战干货总结记录!
- WMB Compute 节点访问数据库
- 前端面试录音整理(私人版)
- 深圳台电:联合国的“沟通”之道