python学习笔记

Python Note

  • 在解释器中(terminal)退出 exit()
  • 缩进:四个空格
  • 常用方法<p>1.input(),input()返回的是字符串,如果要提取数字,那就得类型转换啦,可以用int()b=input('number:') n=int(b)<p>2.reng(number)生成一个整数序列
  • 字符串内部有很多换行,不好阅读的情况下:
    '''content'''
    eg:print('''line1 line2 line3''')
  • 变量,没有固定的类型,可以赋不同类型的值
  • 通常用大写表示常量(其实也是可以变的)
  • 精确的除法(结果为浮点数)/
  • 地板除(结果为整数,只取整数部分)//
  • 余数%
  • 在文件的开头应该写这两句<p>#!/usr/bin/env python3 告知系统,这是一个python可执行程序<p># -*- coding: utf-8 -*-告知python解释器,按照utf-8读取源代码
  • 格式化字符串(和C语言一样):<p>%s:字符串替换(永远起作用)<p>%d:整数替换<p>%f:浮点数替换<p>%x:十六进制整数
  • [list](数组啊)常用方法:<p>1.len(list)取长度<p>2.append()追加list.append('meng)<p>3.insert(index,content)插到指定位置<p>4.pop()删除末尾的元素list.pop(index)<p>5.替换,直接赋值就可以<p>6.list的数据类型可以不同,也可以嵌套list
  • (tuple)(有序列表),特殊的是一旦初始化,就不能改啦!注意:<p>1.定义的时候就得初始化 t(1,2)或者t()<p>2.只有一个元素的时候,必须写成t(,1)要加个逗号,不然谁知道你这是小括号还是tuple<p>3.tuple的不变,指的是它的指向永远不变,比如说它的第二个元素是一个list,list的值是可以改变的,此时也不会报错,因为tuple指向的还是list这个元素,里面的值变了是可以的(指针呐!)
  • 关于代码块:<p>没有大括号,就是:加缩进,来表示他们是一个代码块的
  • 条件判断:<p>特别的一点就是有个elif,else if的缩写(杀马特风)
  • 循环:<p>第一种for...in循环<p>name=['meng','liang'] for item in name:print(item)和js的循环很像啊,遍历了每个元素<p>第二种while循环
  • 字典dict(其实就是对象,键值对):<p>语法:<p>定义d={'meng':1,'liang':2}<p>赋值d['meng']<p>取值d.get('meng')如果不存在也可以返回一个自定义的value,作为get的第二个参数d.get('meng',0)这样不存在的时候,返回0<p>删除d.pop('meng')<p>确定某个值是否存在'meng' in d会返回true或false<p>注意:不能让可变的对象作为key,(也就是‘属性名’不能变,得是常量)
  • set,和字典类似,但是不存储value,key也不能重复(就是属性名)<p>创建:需要提供一个list作为输入集合s = set([1,2,3]),重复的自动被过滤,就是添加几个都是显示一个<p>添加元素:add()方法s.add(4)<p>删除元素:remove()<p>set可以看成数学上的无序和无重复元素的集合,可以做交集并集操作
  • 函数<p>定义函数:defegdef my_function(x):略<p>空函数def nop(): pass占位符,比如先放在那里,函数也可以跑起来,不报错<p>参数类型检查isinstance(x,(类型)),eg:isinstance(x,(int))参数不正确可以抛出错误<p>返回‘多个’值,return a,b本质是返回了一个tuple<p>参数:<p>特殊名词:<p>位置参数(positional argument),意思就是说传进来的参数一一对应。<p>默认参数,可以有自定义的值,默认参数在后,位置参数在前。<p>可变参数,也就是参数是一个list或tuple,写的时候参数前面加一个*def cal(*nums),表示把nums的锁欧元素作为可变参数传进去,好像很重要,记住,这样就可以传进来列表了(也就是数组)。<p>关键字参数,person('jack',24,**extra)extra是一个dict,这就代表把extra里面所有的key-value都传进去了,灵活。<p>命名关键字参数,好烦,没看完
  • 切片操作,也就是取一个list或者tuple的一部分<p>切片操作符[startindex:endindex:间隔],包含开始的,不包含结束的.支持负数<p>字符串也可以用切片操作符'ABCD'[:3]
  • 迭代,for...in...理论上只要是可迭代对象就可以来迭代,判断一个对象是可迭代对象的方法:<p>通过collections模块的Iterable类型判断isinstance('abc',Iterable)返回true或者false,注意,要引入collections模块。<p>高级写法:for index,item in someListindex代表索引,item代表元素值
  • 列表生成式(太高大上了)<p>最简单的列表生成:list(range(1,11))生成[1,2,3,4,5,6,7,8,9,10]<p>复杂一点的列表:[x*x for x in range(1,11)]就生成了[1,4,9...]这样的列表,要生成的元素放在前面,后面跟for循环,就可以了。
  • 生成器,它存在的意义在于并不是真真正正在内存存储一个列表,而是类似一种套路,然后可以通过for来遍历它,取自己需要的内容,比较省内存,可发展。<p>yield关键字,如果函数定义中包涵yield,那么他就不是一个普通的函数啦,而是一个generator,yield相当于return+print,遇到就返回,还打印?
  • 迭代器,可以被next()函数调用,并且不断返回下一个值的对象,成为迭代器:Iterator,生成器都是Iterator对象,list、dict、str虽然可迭代,但不是迭代器对象,变成迭代器对象可以用iter()函数
  • 高阶函数,也就是行参接受一个函数作为参数(这不就是js回调函数么)
  • map()函数,接受两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用于序列的每个元素,并把结果作为新的Iterable返回,也就是取代原来的每个item。
  • reduce()函数,也是接受两个参数,一个函数,一个序列,reduce(f,[a,b,c]]) => (f(f(a,b),c)f函数必须接受两个参数,好奇怪@_@
  • filter() 函数,用于过滤序列。接受一个函数和一个序列作为参数,把传入的函数作用于每个元素,根据返回值(true或false)来决定保留还是丢弃这个元素。
  • sorted()函数,排序函数。sorted()函数可以对list排序,它也是一个高阶函数,接受一个key函数来实现自定义的排序,这个函数可以变吗?
  • 高阶函数之返回值为一个函数,里面还有闭包的概念,用到在看吧
  • 匿名函数:lambda x : x*xlambda来表示是匿名函数,x为参数,:后面就是‘函数体’,只能有一个表达式,不用写return
  • 装饰器,在函数运行期间动态增加功能的方式。本质上就是一个接受函数的高阶函数而已。有点意思,用的时候好好看一下
  • 对于返回一个函数的函数,终于理解了,就是按顺序执行的意思,看return的包裹关系就知道,最外面的先执行,然后里面的执行!!!
  • 偏函数,没看懂
  • 模块,任何模块的第一个字符串都被视为模块的文档注释。
  • 安装模块:pip install packageName
  • 类,又是类!!!!<p>定义一个类:class Student(object),object代表它继承自哪个类,如果没有就写object<p>创建实例:bart = Student()类名+()实现的<p>init函数,如果一个类,有一些必须绑定的属性强制的填写,那么可以定义这个方法,在类的内部def _init_(self,name,score):self.name=name(到底怎么样才能写这个代码块啊!好烦)注意第一个参数永远都要是self,self代表创建的实例本身。<p>数据封装,就是类的方法,类的方法的第一个参数必须是self,代表实例本身。<p>访问限制,要想让内部的属性不被外部访问,可以把属性的名称前加上两个_,就变成了一个私有变量,这样就直接拿不到了,但是也是可以改的,可以在类内部通过设置一个更改的函数,然后再去调用就可以了。就是曲折了一点。。。。<p>所谓多态,就是说当子类和父类有一个同名函数的时候,子类执行的是自己的,父类执行的是自己的<p>获取对象信息。type(some),可以知道这个对象是什么类型。返回值是对应的类型。dir(some)获得一个对象所有的属性和方法,返回一个包含字符串的list,hasattr()\setattr()\getattr()三剑客。<p>实例属性和类属性:实例属性可以通过实例变量或者self变量来绑定;类属性直接在类里面写就行了name = 'student',这样直接写就可以啦!<p>限制类实例的属性,__slots__:在定义类的时候,__slots__=('name','age')这样在给实例绑定属性的时候,除了这两个别的都不可以。仅对当前类的实例起作用,对继承的子类是不起作用的。<p>@property
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,595评论 0 5
  • 教程总纲:http://www.runoob.com/python/python-tutorial.html 进阶...
    健康哥哥阅读 1,922评论 1 3
  • python学习笔记 声明:学习笔记主要是根据廖雪峰官方网站python学习学习的,另外根据自己平时的积累进行修正...
    renyangfar阅读 2,941评论 0 10
  • 要点: 函数式编程:注意不是“函数编程”,多了一个“式” 模块:如何使用模块 面向对象编程:面向对象的概念、属性、...
    victorsungo阅读 1,399评论 0 6
  • 做了测试快一年,每次发测试报告,都是战战兢兢,怕的是打错字写漏了bug list等等的规范。但是一直没有想过,我写...
    Y_Q阅读 273评论 0 0