Python编程
Parallax_2019
初极狭,才通人。复行数十步,豁然开朗。----T
展开
-
代码简洁之道
1.命名要有意义如方法名:动宾 命名要能读得出来 命名具有一致性,且尽量使用领域内专业术语2.函数函数尽量短小 每个函数只抽象一次 函数参数越少越好,超过三个说明参数需要封装(如封成一个类)3.注释需要注释基本可以代表代码整体的表达能力不好,可读性不好,wtf太多 能用命名解决的就不要用注释 拒绝喃喃自语、多余的废话注释及注释掉的代码4.格式每行不要太长,不超过1...原创 2020-04-14 22:14:17 · 261 阅读 · 0 评论 -
C和python中命令行传参解析
python: main(argc, argv[])argv[ ]默认的第一个参数是传进来的执行文件的目录地址,因此argc最小是1 parser = parser """源码中创建parser对象:parser.add_argument参数命名带前缀--:表示是有默认值的参数(源码中用default设置默认值),命令行传参时可传可不传参数名不带前缀:表示命令行调...原创 2020-03-19 10:58:05 · 211 阅读 · 0 评论 -
python相对路径与绝对路径
1.一般用 / 表示相对路径,用\\表示绝对路劲(\转义符的缘故,也可以用 r'\' )E:/file1/file2/a.py2. 相对路径: ./a.py 表示不包括文件a.py的那些部分,等价于a.py,等价于 E:/file1/file23.相对路径: ../a.py 表示不包括a.py及之前的那一层的剩下的部分,等价于 E:/file14.在解释器里,对于文件相对路径...原创 2020-03-06 01:06:03 · 693 阅读 · 0 评论 -
python装饰器-------在代码运行期间动态增加功能的方式
def log():装饰器本质上是一个接受函数作为参数,并返回一个函数的这种高阶函数,用在定义函数或类时。log就是装饰器装饰器可以用函数实现,也可以用类实现。python放置装饰器的语法:@log@property:class DataSet(object): @property def method_with_property(self): ##含有@pro...原创 2020-02-25 17:04:41 · 461 阅读 · 0 评论 -
python中的*和**
*星号(asterisk)主要在函数定义和函数调用时使用。与C语言中的指针无任何关系。1.函数定义时使用单个*会将所有的参数,放入一个元组tuple供函数使用 使用**会将所有的关键字参数,放入一个字典dict供函数使用2.函数调用时在list,tuple,set前加*,会将容器中所有元素解包unpack变成位置参数 在dict前加*,会将dict字典的键key 变成位置参数 ...原创 2020-02-25 16:06:52 · 263 阅读 · 0 评论 -
python之封装
Python基础之封装 一、什么是封装 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用。 要了解封装,离不开“私有化”,就是将类或者是函数中的某些属性限制在某个区域之内,外部无法调用。 二、为什么要封装 封装数据的主要原因是:保护隐私(把不想别人知道的东西封装起来) 封...原创 2020-02-13 23:45:10 · 247 阅读 · 0 评论 -
jupyter notebook使用
关联conda环境和jupyter notebook:conda install nb_conda原创 2019-11-20 01:55:07 · 96 阅读 · 0 评论 -
pycharm小技巧
任意位置新建行,不需要光标到尾部,shift+enter 设置分屏:setting—Keymap——Mainmenu—window——Editor Tabs——split V/H 访问历史粘贴板:Ctrl + Shift + V 多行注释:也是在前面行号选中多行,crtl+/,再按一次取消多行注释 如何同时打开多个项目:setting——Projects——Projects struc...原创 2020-01-12 01:19:28 · 230 阅读 · 1 评论 -
python从txt文档中随机抽取n条记录
#coding:utf-8import randomimport time"""注意盘符小写"""f = open("d:\\MyData\\zhaohz4\\Desktop\\train.txt","r") #源文件fw = open("d:\\MyData\\zhaohz4\\Desktop\\sample_10.txt","w") #待写文件...原创 2019-11-26 08:37:58 · 2722 阅读 · 0 评论 -
numpy数组的维度操作和axis的对应关系
import numpy as npnp.random.seed(123)a = np.random.randint(0,5,[3,3,2])print(a)print(a[-1,:,:]) # -1 就是 2Output:[[[2 4] [2 1] [3 2]] [[3 1] [1 0] [1 1]] [[0 0] [1 3]...原创 2019-11-20 11:33:01 · 658 阅读 · 0 评论 -
numpy copy(无拷贝 浅拷贝、深拷贝)类型说明
numpy copy分为三种,no copy,shallow copy or view,deep copy三种。1 无拷贝简单的复制操作不会产生对象的复制操作。import numpy as npa = np.arange(12)b=a #对象复制,a,b地址一样b.shape = 3,4 #a对象的shape也会变化2 浅拷贝view操作,如numpy的slice,...转载 2019-09-27 17:17:22 · 227 阅读 · 1 评论 -
OS之listdir类
"""目录地址引用用单引号!"""from os import listdirlistdir('C:/Users/Administrator/Desktop/data/Ch02/digits/trainingDigits') print(trainingFileList[:5])Output:['0_0.txt', '0_1.txt', '0_10.txt', '0_100.t...原创 2018-11-23 04:33:51 · 245 阅读 · 0 评论 -
python之range()
range(a, b, step) #a下界:默认从0开始。b:上界,不包含。step:步长。>>> range(1,5) #代表从1到5(不包含5)[1, 2, 3, 4]>>> range(1,5,2) #代表从1到5,间隔2(不包含5)[1, 3]>>> range(5) #代表从0到5(不包含5)[0, 1...原创 2018-11-23 17:24:43 · 758 阅读 · 0 评论 -
Python中的if __name__ == "__main__" (模拟程序入口)
PI = 3.14def main(): print("PI:", PI) if __name__=="__main__": #加入这行,模拟程序入口:当此.py文件被直接运行,此行下的代码块被运行,当.py文件以模块包的形式被调用或导入时,则此行下的代码块不被运行(方便作为包调用执行,比如你只想调用其中一个参数) main()# 运行结果:PI: 3.14...原创 2018-10-12 18:12:23 · 858 阅读 · 0 评论 -
python交互界面更改目录
假如要用交互界面调用一个.py文件:0:将cmd界面定位到文件位置,如/Desktop/data1 : 接着打开python(输入python)或者调用os0 : import os1 : get os.cwd() #查看当前目录2:os.chdir(“d:/demo”)3 : import xxx #xxx为.py文件名...原创 2018-10-12 18:27:00 · 2179 阅读 · 0 评论 -
numpy利用布尔掩码做复杂索引
data=[(‘Alice’, 25, 55.0) (‘Bob’, 45, 85.5) (‘Cathy’, 37, 68.0)(‘Doug’, 19, 61.5)]data[‘age’] < 30 #此布尔操作返回bool数组。#Output: array([ True, False, False, True])data[data[‘age’]<30]#以布尔数组中真值为索引标签...原创 2018-10-17 22:50:09 · 818 阅读 · 0 评论 -
numpy数据类型
np.dtype({'names':('name', 'age', 'weight'),'formats':('U10', 'i4', 'f8')})#Output: dtype([('name', '<U10'), ('age', '<i4'), ('weight', '<f8')])np.dtype([('name', 'S10'), ('age', 'i4'), ('...原创 2018-10-17 23:06:59 · 913 阅读 · 0 评论 -
python中的输入输出格式
>>> pi = 3.141592653>>> print('%10.3f' % pi) #字段宽10,精度3 3.142>>> print('%-10.3f' % pi) #左对齐3.142 >>> print("pi = %.*f" % (3,pi)) #用*从后面的元组中读取字段宽度或精原创 2018-10-08 12:08:02 · 1148 阅读 · 0 评论 -
数组的生成方法
1.由列表生成:np.array([list]) – output: array([list])原创 2018-10-15 00:44:00 · 1490 阅读 · 0 评论 -
Matplotlib入门
首先补充一下python shell,ipython shell及jupyter概念。0:python shell:安装python后系统终端进入的输入界面,不好用。1:ipython shell: 安装ipython后即有,通过anaconda终端(anaconda prompt)输入ipython进入。作用等于spyder ide的右侧ipython控制台,不过在右侧控制台输入执行代码块需...原创 2018-10-19 03:39:25 · 258 阅读 · 0 评论 -
Numpy入门
数组计算:不同维度的数组可以直接运算(数组的维度拓展属性-broadcasting),如常数和1维数组运算,1维数组和3×3数组运算,数组(1×3)和数组(3×1)运算,都是将自己扩展后进行。维度拓展的规则:1.在低维数组左边加一,然后按这个第一维度方向拓展去匹配另一高维数组。(若此后仍不匹配则错误)np.newaxis:增加一个维度。如果是一维行数组(1×3),就变成二维列数组(3×1)....原创 2018-10-17 19:39:28 · 136 阅读 · 0 评论 -
twoSum理解python中的类、方法、对象(类的实例)
#self实际是类的实例class A: def func(self): print(self) #指向的是类的实例 print(self.__class__) #指向的是类a = A()a.func()#<__main__.A object at 0x02C40F10> ,...原创 2018-10-23 15:17:27 · 624 阅读 · 0 评论 -
python之产生随机数
#产生范围内随机整数import randompoint=random.randrange(1,7) #包括左边不包括右边 range(a,b,c) a:start b:stop(不包含) c:step #产生范围内任意给定精度随机数import numpy as nprandom = np.random.RandomState(0) #RandomState生成随机数种子f...原创 2018-09-06 00:31:29 · 233 阅读 · 0 评论