当前位置: 首页 > news >正文

建站宝盒建站系统百度贴吧鞍山

建站宝盒建站系统,百度贴吧鞍山,衡水做网站,什么物流公司网站建设目录 1 快速上手#xff1a;基础知识2 列表和元组3 字符串4 字典5 条件、循环及其他6 抽象7 再谈抽象8 异常9 魔法方法、特性和迭代器10 开箱即用 本文参考自《Beginning Python: from novice to professional》#xff0c;中文版为《Python基础教程#xff08;第三版#… 目录 1 快速上手基础知识2 列表和元组3 字符串4 字典5 条件、循环及其他6 抽象7 再谈抽象8 异常9 魔法方法、特性和迭代器10 开箱即用 本文参考自《Beginning Python: from novice to professional》中文版为《Python基础教程第三版》。 1 快速上手基础知识 from __future__import xxx 从python2.1开始当一个新的语言特性首次出现在发行版中时如果该新特性与旧版本的python不兼容则该新特性默认会被禁用。要想启用这个新特性必须使用该语句进行导入。 /除法 //整除向下圆整%求余**乘方 round 圆整到最接近的整数并在两个整数一样近时圆整到偶数。 nan 具有特殊含义指的是“非数值”not a number。 #!/usr/bin/env python无需显式地使用Python解释器 $ hello.py str() 的输出追求可读性输出格式要便于理解适合用于输出内容到用户终端。 repr() 的输出追求明确性除了对象内容还需要展示出对象的数据类型信息适合开发和调试阶段使用。 print(repr(Hello,\nworld!)) Hello,\nworld!print(str(Hello,\nworld!)) Hello, world要表示很长的字符串跨越多行的字符串可使用三引号而不是普通引号。 原始字符串用前缀 r 表示不能以单个反斜杠结尾。 print(rLet\s go!) Let\s go!print(rC:\Program Files\foo\bar \\) C:\Program Files\foo\bar\2 列表和元组 元组语法很简单只要将一些值用逗号分隔就能自动创建一个元组。只包含一个值的元组在它后面加上逗号。 3 字符串 字符串是不可变的 4 字典 在字典中键的排列顺序是不固定的因此打印字典时每次的顺序都可能不同。 5 条件、循环及其他 print # 自定义分隔符默认的是空格print(I, wish, to, register, a, complaint, sep_) I_wish_to_register_a_complaint# 自定义结束字符串以替换默认的换行符。例如如果将结束字符串指定为空字符串以后就可继续打印到当前行。 print(Hello,, end) print(world!)赋值魔法 序列解包/赋值魔法 # 星号运算符 * 来收集多余的值这样无需确保值和变量的个数相同name Albus Percival Wulfric Brian Dumbledorefirst, *middle, last name.split()middle [Percival, Wulfric, Brian]# 带星号的变量最终包含的总是一个列表。链式赋值将多个变量关联到同一个值。x y somefunction() 增强赋值 x 1 布尔值False None 0 () [] {} 为假其他为真 True 和 False 不过是0和1的别名 支持链式比较可同时使用多个比较运算符如 0 age 100 用来检查两个对象是否相等而 is 用来检查两个对象是否相同是同一个对象。 添加 assert 语句充当检查点 age -1assert 0 age 100, The age must be realistic并行迭代zip for name, age in zip(names, ages):print(name, is, age, years old)迭代时获取索引enumerate 判断循环是否是提前结束 from math import sqrt for n in range(99, 81, -1):root sqrt(n)if root int(root):print(n)break else:print(Didnt find it!)无论是在 for 循环还是 while 循环中都可使用 continue 、 break 和 else 子句。 列表推导使用多个 for 部分时也可添加 if 子句。 girls [alice, bernice, clarice]boys [chris, arnold, bob][bg for b in boys for g in girls if b[0] g[0]] [chrisclarice, arnoldalice, bobbernice]字典推导for 前面有两个用冒号分隔的表达式。这两个表达式分别为键及其对应的值。 squares {i:{} squared is {}.format(i, i**2) for i in range(10)}squares[8] 8 squared is 64exec 执行一系列Python语句而 eval 计算用字符串表示 的Python表达式的值并返回结果 exec 什么都不返回因为它本身是条语句。 添加第二个参数——字典用作代码字符串的命名空间避免污染原来的命名空间。 from math import sqrtscope {}exec(sqrt 1, scope)sqrt(4) 2.0scope[sqrt] 16 抽象 放在函数开头的字符串称为文档字符串docstring将作为函数的一部分存储起来。square.__doc__ help(square) 前面使用的参数都是位置参数使用名称指定的参数称为关键字参数主要优点是有助于澄清各个参数的作用。hello_3(nameGumby) 收集参数 def print_params_2(title, *params):print(title)print(params)def in_the_middle(x, *y, z):print(x, y, z) in_the_middle(1, 2, 3, 4, 5, z7) 星号意味着收集余下的位置参数。带星号的参数也可放在其他位置而不是最后此时使用名称来指定后续参数。 收集关键字参数可使用两个星号。这样得到的是一个字典而不是元组。 def print_params_3(**params): ... print(params) ...print_params_3(x1, y2, z3) {z: 3, x: 1, y: 2}分配参数 def add(x, y):return x yparams (1, 2)add(*params)通过使用运算符 ** 可将字典中的值分配给关键字参数。 可使用函数 globals 来访问全局变量。这个函数类似于 vars 返回一个包含全局变量的字典。 locals 返回一个包含局部变量的字典。 重新关联全局变量global x 递归基线条件针对最小的问题满足这种条件时函数将直接返回一个值。递归条件包含一个或多个调用这些调用旨在解决问题的一部分。 函数式编程 list(map(str, range(10))) # 与[str(i) for i in range(10)]等价 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]lambda x, y: xy # 匿名函数7 再谈抽象 多态polymorphism 方法 鸭子类型多态让你无需知道对象所属的类对象的类型就能调用其方法而封装让你无需知道对象的构造就能使用它。封装 属性多重继承是一个功能强大的工具。然而除非万不得已否则应避免使用多重继承抽象类是不能至少是不应该实例化的类其职责是定义子类应实现的一组抽象方法。 8 异常 在没有出现异常时执行一个代码块不管 try 子句中发生什么异常都将执行 finally 子句。 try:1 / 0 except NameError:print(Unknown variable) else:print(That went well!) finally:print(Cleaning up.)闭眼就跳直接去做有问题再处理而不是预先做大量的检查。 9 魔法方法、特性和迭代器 构造函数constructor super(SongBird, self)super().__init__() 基本的序列和映射协议 __len__(self) __getitem__(self, key) __setitem__(self, key, value): __delitem__(self, key) size property(get_size, set_size) 调用函数 property 并将存取方法作为参数获取方法在前 设置方法在后创建了一个特性然后将名称 size 关联到这个特性。 迭代器 class TestIterator:value 0def __next__(self):self.value 1if self.value 10: raise StopIterationreturn self.valuedef __iter__(self):return self当你调用方法 __next__ 时迭代器应返回其下一个值。如果迭代器没有可供返回的值应引发 StopIteration 异常。 next(it) 与it.__next__() 等效。 生成器包含 yield 语句的函数都被称为生成器 每次使用 yield 生成一个值后函数都将冻结即在此停 止执行等待被重新唤醒。被重新唤醒后函数将从停止的地方开始继续执行。 生成器推导不立即执行循环而是返回一个生成器让你能够逐步执行计算。 g ((i 2) ** 2 for i in range(2, 27))next(g) 16sum(i ** 2 for i in range(10))递归式生成器 生成器由两个单独的部分组成生成器的函数和生成器的迭代器。生成器的函数是由 def 语句定义的其中包含 yield 。生成器的迭代器是这个函数返回的结果。用不太准确的话 说这两个实体通常被视为一个通称为生成器。 10 开箱即用 导入模块多次和导入一次的效果相同 import syssys.path.append(C:/python)if __name__ __main__: test() 模块存储在扩展名为.py的文件中而包则是一个目录。 探索模块 [n for n in dir(copy) if not n.startswith(_)] 列出所有的函数、类、变量等__all__ [Error, copy, deepcopy] 旨在定义模块的公有接口如果不设置 __all__ 则会在以 import * 方式导入时导入所有不以下划线打头的全局名称。 常用模块 在较新的版本中集合是由内置类 set 实现堆heap它是一种优先队列。优先队列让你能够以任意顺序添加对象并随时可能是在两次添加对象之间找出并删除最小的元素。
http://www.hkea.cn/news/14480934/

相关文章:

  • 设计常去的网站seo关键词怎么优化
  • 网站备案地点html电影网页设计教程
  • 建设部网站监理公告网站制作窍门
  • 如何让网站不被收录网站建设公司专业网站制作开发
  • 微网站免费平台深圳建设网站和公众号
  • 网站服务器租一个月建站工具哪个好用
  • 顺的网站建设效果环保局 网站建设
  • 合肥网站建设公司 推荐怎么让百度搜到网站
  • 大厂做网站shijuewang站长网站模板
  • 微信网站域名商务网站开发开题报告
  • 网站建设的结论和体会wordpress 热门文章
  • 广州专业网站建设价格万能搜索引擎
  • 网站备案 免费app手机软件开发公司
  • 时尚网站设计东莞哪里开发app的
  • 网站建设样板软件开发应该学什么专业
  • 哪个网站做视频有钱怎么注册公司流程和费用
  • 常州天宁建设局网站哈尔滨网站建设外包公司
  • 英文seo网站建设专业的门户网站建设方案
  • 阜阳市建设局网站wordpress邮件表单
  • 网站建设需求范本晋江哪里可以学建设网站
  • 网站制作公司哪家正规新人学会seo
  • 书画网站 建站广西建设网郭业棚
  • 中国城乡与住房建设部网站类似于美团的网站怎么做的
  • 南京哪里可以做网站微信小程序官网网址
  • 国外 家具 网站模板下载做淘宝客网站哪个好用
  • wordpress的退款期限seo优质友链购买
  • 小程序企业官网南昌网站排名优化软件
  • 成都市网站制作网站策划的具体内容是什么
  • 怎么做服务器网站高端大气传媒公司名字
  • 一个企业网站的建设流程wordpress更换图片