• _:临时变量,_ 代表临时变量比如for _ in range(10): _ 代表临时变量,用来循环10次。或者接收不需要的函数返回值。

  • 声明编码方式

    • python在文件头声明编码方式:具体格式参考官方文档:https://www.python.org/dev/peps/pep-0263/

      • # -*- coding: utf-8 -*-
      • # coding=utf-8

  • 字典取值

    • 最简单的是方括号,dict[‘key’],但是如果没有这个key,会抛出异常。
    • 字典的成员函数dict.get(key, default):使用get()可以预防ValueError,可以设置默认值,在没有取到的时候则返回默认值。

  • 字符串格式控制

    • u"“以 Unicode 格式进行编码; r”“去掉反斜杠的转移机制; b”“表示bytes类型数据; f”"支持大括号内的python表达式。

  • 控制输出浮点数的位数

    • print(format(1.23456, ‘.2f’)) 或 print(’%.2f’ % f)

  • 文件IO

    • open(filename, mode)
    • mode: r读,w写,a追加;后面:’+'读写, 'b’二进制
    • 使用open之后一定要执行close,为了避免忘记,可以使用:with open(‘in.dat’, ‘r’) as f,会自动调用close()

  • with xxx as y:

    • 有些对象可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。
    • 比如打开文件,会自动调用y.close()。
    • 如果是自定义的对象,你可以初始化类中的__enter__() 和 __exit__()函数,这样会在with进入和退出时自动调用。
    • 重点在于如果在with内部的语句抛出了异常,exit()函数依然能够在抛出之前顺利执行。并且可以让exit函数接收错误的信息比如错误类型、错误内容,并做相应的处理。

  • 修饰器@staticmethod

    • @staticmethod修饰的函数为静态方法,只是名义上归属类管理,但是不能使用类变量和实例变量,是类的工具包,类似C++的static成员函数。
    • 静态方法函数里不传入self 或 cls,可以传入自定义参数。
    • 静态方法调用时可以使用实例对象调用,也可以直接静态调用。myClass.method(),或者myClass().method()都可以。

  • 修饰器@classmethod

    • @classmethod修饰符修饰的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用自身类的属性、方法等。
    • 比如项目中会定义一个Tool类,Tool类中定义一些功能的tool函数,调用时直接Tool.getServerInfo()则可以直接调用。

  • 异常处理try…except…else…finally

    try:Nomal execution block
    except A:Exception A handle
    except B:Exception B handle
    except:Other Exception handle
    else:if no exception, get here
    finally: print('finally')
    
    • 完整的如上,try中的代码块抛出异常,被except语句捕获。
    • 可以指定特定的Error类型,如果这一层没有捕捉到,会传到下一层except,如果except不带特定类型,那么则会捕捉所有的异常。
    • 一般捕捉except Exception as e: ,Exception 是常见错误的基类。
    • else会在没有异常抛出时进入这个代码区域,else必须在有except语句后出现。
    • finally中的代码,无论是否有错误,都会运行。并且**前面如果调用了return,finally中的代码仍然会执行。**这个比较玄学,下面的例子测试:
    • def exceptTest():try:may_throw_excptioin()return 0except:return 1else:print 'no exception'return 2finally:print 'in finally'# return 3
      
      • 如果没有抛出异常,try会执行,else紧接着try后执行,但是由于try中以及return了,所以不会进else。return 0之前会执行finally中的语句,如果有return 3,则会覆盖返回值, 最终会执行return 3,;如果没有return 3,则return 0。
      • 如果抛出了异常,except会执行,但是return 1之前会调用finally中的语句,如果finally中执行了return 3,则会覆盖返回值,则最终会返回3。如果没有return 3,则会return 1。

  • 可迭代对象

    • 迭代器是可迭代的对象,这意味着可以使用for遍历所有值。for 循环遍历的原理就是靠这个迭代器。
    • 原理
      • 列表、元组、字典、集合以及字符串都是可迭代的对象。它们是可迭代的容器,可以从中获取迭代器(Iterator)。比如:

        mytuple = ("apple", "banana", "cherry")
        myit = iter(mytuple)
        print(next(myit))
        print(next(myit))
        print(next(myit))
        
      • for循环其实就是取了对象的迭代器,然后每次对迭代器调用next()。迭代完最后一个数据之后,再次调用next()函数会抛出StopIteration的异常,来告诉我们所有数据都已迭代完成,不用再执行next()函数了。
    • 自定义迭代器
      • 在使用next()函数的时候,调用的是迭代器对象的__next__方法。所以,我们要想构造一个迭代器,就要实现它的__next__方法。
      • 同时,python要求迭代器本身也是可迭代的,所以我们还要为迭代器实现__iter__方法,而__iter__方法要返回一个迭代器,迭代器自身正是一个迭代器,所以迭代器的__iter__方法返回自身即可。
    • 示例: 斐波那契数列
      class FeiboIterator(object):def __init__(self, n):# 斐波那数列值的个数self.n = n# 记录当前遍历的下标self.index = 0# 斐波那数列前面的两个值self.num1 = 0self.num2 = 1def __next__(self):"""被next()函数调用来获取下一个数"""if self.index < self.n:num = self.num1self.num1, self.num2 = self.num2, self.num1 + self.num2self.index += 1return numelse:raise StopIterationdef __iter__(self):"""迭代器的__iter__返回自身即可"""return selfif __name__ == '__main__':fb = FeiboIterator(20)for num in fb:print(num, end=' ')```
      

阿龙的学习笔记---python相关杂七杂八的记录相关推荐

  1. 树莓派学习笔记——Python SQLite插入温度记录

    0 前言 本文使用python向SQLite数据库中插入树莓派温度数据,SQLite数据库中包含一张只包含三个字段的记录表--参数名称,时间和温度值.本文重点解释Python操作SQlite的具体方法 ...

  2. 树莓派温湿度与mysql,树莓派学习笔记——Python SQLite插入温度记录

    0 前言 本文使用python向SQLite数据库中插入树莓派温度数据,SQLite数据库中包含一张只包含三个字段的记录表--参数名称,时间和温度值.本文重点解释Python操作SQlite的具体方法 ...

  3. DX11龙书学习笔记---渲染管线

    DX11龙书学习笔记---渲染管线 1.输入装配阶段 - 顶点 - 图元拓扑 - 点列表 - 线带 - 线列表 - 三角形带 - 三角形列表 - 带有邻接信息的图元 - 控制点面片列表 - 索引 2. ...

  4. 好记性不如烂笔头-linux学习笔记4apache相关知识

    好记性不如烂笔头-linux学习笔记4apache相关知识 apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 ...

  5. python语言的33个保留字的基本含义_Python学习笔记——Python的33个保留字及其意义,python,pythone33,含义...

    Python学习笔记--Python的33个保留字及其意义,python,pythone33,含义 发表时间:2020-03-27 笔记走起 正文 序号 保留字 含义 1 and 用于表达式运算,逻辑 ...

  6. DX11龙书学习笔记---准备工作

    DX11龙书学习笔记---准备工作 1.交换链和页面翻转 深度缓冲区 多重采样 1.交换链和页面翻转 为了避免在动画中出现闪烁,最好的做法是在一个离屏(off-screen)纹理中执行所有的动画帧绘制 ...

  7. Python学习笔记--Python字符串连接方法总结

    声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的 ...

  8. 上手机器学习前,先来学习下Python相关的环境配置吧~

    点击上方"AI派",选择"设为星标" 最新分享,第一时间送达! 作者:奔雷手,目前是名在校学生,当前主要在学习机器学习,也在做机器学习方面的助教,相对还是比较了 ...

  9. 学习笔记-python数据分析-环境配置

    系统win10 64位 miix5 512G 由于装双系统比较复杂,且miix在网上还没有发现成功的案例(本身就小众,即便ubuntu是通用的系统,也会存在驱动的问题) 1.安装最新版python3. ...

最新文章

  1. zoj2760(最大流)
  2. springboot-整合freemarker
  3. openssl 证书管理
  4. SQL基础操作_7_时间运算
  5. JavaWeb第二讲 重定向与转发 doGet()与doPost()
  6. OS- -进程详详解
  7. onclick传参数
  8. 使用git pull时,项目没有更新?
  9. 补码乘法实验原理_你真的理解补码吗?
  10. 安卓http服务器源码,Android搭建HTTP和WebSocket的服务器端
  11. 编写测试报告,及测试报告模板
  12. C++项目 GitHub Actions操作实例
  13. Material Design(三)--暗色主题设计
  14. mixly红外遥控问题在线等
  15. 过敏性鼻炎的治疗和保养
  16. ZZULIOJ-1088,手机短号 (多实例)(Python)
  17. 手机病毒“僵尸网络”进入高发期
  18. 华章8月书讯,夏日静心好读书
  19. Django book 2.0 的中文翻译
  20. Linux - 不同桌面环境介绍与常见设置

热门文章

  1. 校招简历的包装制作---详解教你制作一份适合自己的简历
  2. 国家统计局举办开放日 称将迎接“大数据”挑战
  3. android 服务自动运行怎么办,怎么解决安卓软件服务停止后又自启?
  4. Flink 中的木桶效应:单个 subtask 卡死导致整个任务卡死
  5. mysql 使用rads_bi-rads 分级是什么意思
  6. 官宣!CSDN“2019 优秀 AI、IoT 应用案例 TOP 30+”重磅发布!
  7. ps3运行linux,PS3上的PC系统Linux不是摆设!
  8. Office365 Word 打开某个文件就自动卡死关闭
  9. zabbix邮件报警发送至qq邮箱
  10. linux下was怎么卸载_WAS 6.1简单卸载方法