
Python
白话Python
这个作者很懒,什么都没留下…
展开
-
详解Python中for循环的内部机制
Python中,使用for循环可以迭代容器对象中的元素,这里容器对象包括是列表(list)、元组(tuple)、字典(dict)、集合(set)等。但是,为什么这些对象可以使用for循环进行操作呢?首先,定义一个简单的类尝试一下:class TestRange: def __init__(self, num): self.num = numfor i in Test...原创 2020-04-21 16:02:08 · 898 阅读 · 0 评论 -
编写高质量Python程序(四)库
本系列文章为《编写高质量代码——改善Python程序的91个建议》的精华汇总。按需选择 sort() 或者 sorted()Python 中常用的排序函数有 sort() 和 sorted()两者的函数形式分别如下:sorted(iterable[, cmp[, key[, reverse]]])s.sort([cmp[, key[, reverse]]])sort() 和 s...原创 2020-04-21 10:33:37 · 369 阅读 · 0 评论 -
编写高质量Python程序(三)基础语法
本系列文章为《编写高质量代码——改善Python程序的91个建议》的精华汇总。关于导入模块Python的3种引入外部模块的方式:import语句、from ... import ... 和 __import__函数。其中前两种比较常见。在使用 import 时,应注意:优先使用 import A 或 import A as a有节制的使用 from A import B尽量避...原创 2020-04-18 22:45:23 · 197 阅读 · 0 评论 -
编写高质量Python程序(二)编程惯用法
本系列文章为《编写高质量代码——改善Python程序的91个建议》的精炼汇总。利用assert语句发现问题assert语句的基本语法如下:assert expression1 ["," expression2]其中,expression1是判断语句,会返回True或False,当返回False时会引发AssertionError。[]中的内容表示是可选的,用来传递具体的异常信息。&...原创 2020-04-14 12:06:39 · 206 阅读 · 0 评论 -
编写高质量Python程序(一)基本准则
本系列文章为《编写高质量代码——改善Python程序的91个建议》的精华汇总。理解Pythonic概念什么是 Pythonic? Pythonic的代码就是具有Python独特风格的代码。通俗说来,就是在保证代码可读性的前提下,尽可能地简洁、优雅,看起来像伪代码一样。具有 Python 代码风格的例子交换两个变量。其他语言交换两个变量时,一般需要一个临时的中间变量,而Pyth...原创 2020-04-13 11:58:46 · 794 阅读 · 0 评论 -
Python - 将图片转化成numpy数组
from PIL import Image import numpy as npimage = Image.open("/home/yang/图片/dog.jpg") # 用PIL中的Image.open打开图像image_arr = np.array(image) # 转化成numpy数组原创 2019-01-15 00:43:30 · 32021 阅读 · 7 评论 -
Python - matplotlib在图像中添加文字
import matplotlib.pyplot as pltplt.plot([0, 2], [0, 2])plt.text(0.5, 1, 'put some text')plt.show()转载 2019-01-15 00:57:03 · 43715 阅读 · 1 评论 -
Python - numpy中axis的理解
文章目录axis的本质是数组层级若函数中axis=i,则沿着第i个下标变化、其余下标都不变的方向进行操作axis的本质是数组层级arr = np.array(np.arange(12).reshape(3,4))print(arr)"""array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])...原创 2019-01-15 11:40:13 · 481 阅读 · 0 评论 -
Python - os模块常用操作
os.mkdir 创建目录os.rmdir 删除目录os.rename 重命名os.remove 删除文件os.getcwd 获取当前工作路径os.path.join 连接目录与文件名os.path.split 分割文件名与目录os.path.abspath 获取绝对路径os.path.dirname 获取路径os.path.basename 获取最后的文件名或文件夹名os.p...原创 2019-01-15 18:06:12 · 209 阅读 · 0 评论 -
python - Dataframe 获得某行的最大值对应的的列索引(包含多个相等的最大值的情况)
import pandas as pd import numpy as np# create a dataframetable = pd.DataFrame(np.zeros([3,2]), index=["s1", "s2", "s3"], columns=["a1",&quo原创 2019-03-14 21:16:32 · 22957 阅读 · 1 评论 -
Python - 可迭代对象、迭代器、生成器
可迭代对象 Iterable:可以用 for 循环遍历的对象,包括:集合数据类型,如 list、tuple、dict、set、str等;生成器 generator,包括“( i for i in range(10) )”生成器和带yield的generator function。迭代器 iterator可以被 next() 函数调用并不断返回下一个值的对象称为迭代器,包括:生成...原创 2019-03-14 21:52:10 · 198 阅读 · 0 评论 -
弱类型、强类型、动态类型、静态类型语言
弱类型:运行时允许类型转换,比如 C/C++强类型:运行时不允许类型转换,比如 Python动态类型:运行期进行类型检查,比如 Python静态类型:编译期进行类型检查,比如 C/C++...原创 2019-03-19 11:19:59 · 183 阅读 · 0 评论 -
详解Python中的浅拷贝和深拷贝
numpy 中np.copy() 方法是 深拷贝;切片操作 是 浅拷贝;直接赋值给另一个变量是 浅拷贝。# numpy深拷贝示例In [12]: arr = np.zeros((3,3))In [13]: arrOut[13]: array([[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]])In [14]...原创 2019-01-14 00:58:37 · 891 阅读 · 0 评论 -
Python - pandas总结
文章目录1. pandas 的数据类型1.1 Series1.2 DataFrame2. 读取外部数据3. 数据合并4. 常用统计方法5. 缺失数据的处理1. pandas 的数据类型1.1 SeriesSeries 是“带标签的数组”。创建# 1.直接创建s = pd.Series(np.arange(10), index=list("ABCDEFGHIJ"原创 2019-01-07 22:50:39 · 491 阅读 · 0 评论 -
Python - 对Series做字符串操作
Pandas的DataFrame中的每一列都是一个Series,若该列全为字符串,则可对其作字符串操作:拆分 Series.str.split()>>> s.str.split(',')替换 Series.str.replace()>>> s.str.replace(',', '')...原创 2019-01-07 21:46:45 · 15306 阅读 · 0 评论 -
廖雪峰Python - 杨辉三角练习题
练习杨辉三角定义如下: 1 / \ 1 1 / \ / \ 1 2 1 / \ / \ / \ 1 3 3 1 / \ / \ / \ / \ 1 4 6 4 1 / \ / \ / \ /...原创 2018-08-30 21:25:04 · 919 阅读 · 0 评论 -
廖雪峰Python - str转成int
from functools import reducedef str2num(s): def char2num(c):#单个字符转成int类型 digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} ...原创 2018-08-31 20:32:29 · 398 阅读 · 0 评论 -
廖雪峰Python - map/reduce练习
练习利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:[‘adam’, ‘LISA’, ‘barT’],输出:[‘Adam’, ‘Lisa’, ‘Bart’]:def normalize(name): return name.title()# 测试:L1 = ['adam', 'LISA', 'barT']L2 = list(ma...原创 2018-08-31 21:21:31 · 207 阅读 · 0 评论 -
Python - 将字典内容印成一个格式化报告
def report(wages): students = list(wages.keys()) students.sort() for student in students: print("%-20s %12.2f" % (student, wages[student]))if __name__ == '__main__': wages ...原创 2018-09-17 22:56:31 · 1410 阅读 · 0 评论 -
Python - 最常用的列表去重方法
list1 = ['a', 'a', 'b', 'c']# 用set集合对列表去重,是最常用的去重方法list1_unique = list(set(list1))print(list1_unique)# 打印 ['a', 'b', 'c']原创 2019-01-05 12:03:30 · 228 阅读 · 0 评论 -
Python - Matplotlib 笔记整理
matplotlib 是最流行的Python绘图库之一,能将数据进行可视化,直观地呈现数据。1. 设置图片大小、分辨率等参数# 常用的导入方式import matplotlib.pyplot as plt# 设置图片大小, dpi是图片分辨率默认是100fig = plt.figure(figsize=(20, 8), dpi=80)2. 常用统计图1.折线图以折线表示统计量的...原创 2019-01-06 13:50:37 · 484 阅读 · 0 评论 -
Python - 一道用按位异或解决的算法题
已知一个数字数组。其中只有一个数字只出现1次,其他数字都出现2次。求只出现1次的数字。例如,[1,1,3,2,4,3,4],只出现1次的数字是2。def get_one(nums): return reduce(lambda x,y: x^y, nums)...原创 2019-01-06 23:32:09 · 935 阅读 · 0 评论 -
Python, C++ - 位运算与逻辑运算
1. 位运算1.1 按位与Python中按位与为&In [2]: 12 & 10 # 12的二进制为 0b1100,10的二进制表示为 0b1010Out[2]: 8In [3]: 0b1100 & 0b1010Out[3]: 81.2 按位或|2. 逻辑运算2.1 逻辑与2.2 逻辑或...原创 2019-01-07 12:10:50 · 569 阅读 · 0 评论 -
Python-__slot__属性
Python中默认用一个字典来保存一个对象的实例属性,使得我们在运行时可以任意设置新属性。但是,对于已知固有属性的小型类来说,这个字典浪费了很多内存。(由于可设置新属性,Python不能在对象创建时直接分配一个固定量的内存保存所有属性)因此,如果创建成千上万个这样的小类,Python就会浪费掉很多内存。此时,引入类中的__slots__方法,让 Python 给类指定一个固定大小的空间存放属...原创 2019-01-12 22:35:26 · 493 阅读 · 0 评论 -
解决安装 scrapy 时 CondaHTTPError: HTTP 000 CONNECTION FAILED 的问题
使用Anaconda Promote 安装 scrapy 库:conda install scrapy出现以下问题:CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.continuum.io/pkgs/pro/win-64/repodata.json.bz2>Elapsed: -解决方法:打开 控制面板 ...原创 2018-04-10 23:30:16 · 3804 阅读 · 1 评论