本节学习Python的错误和异常,及类等相关知识。
错误和异常Python中有两种错误: 语法错误和异常。
语法错误,硬伤没办法。 在Python中内置了很多异常
参考内置的异常
异常处理try语句工作方式:
首先,执行try子句。
如果没有异常,except子句在try执行完成后被忽略。
如果在try子句执行过程中发生了异常,那么该子句其余的部分被忽略。如果异常匹配于except关键字后面指定的类型,就执行对应的except子句。然后继续执行try语句后的代码。
如果发生了一个异常,在except子句中没有与之匹配的分支,它就会传递到上一级try语句中。如果最终仍找不到对应的处理语句,他就成为一个未处理异常,终止程序,显示提示信息。
一个try语句可能包含多个except子句,分别指定处理不同的异常。
一个except子句中可以括号中列出多个异常的名字。
try...except...else当try语句没有异常需要执行一些代码时,使用else。
抛出异常raise语句允许程序猿强制抛出一个指定的异常。
1234>>> raise NameError(&q ...
本节学习Python中的模块、输入和输出。
模块简介Python提供了一个方法可以从文件中获取定义,在脚本或者解释器的一个交互式实例中使用。这个文件就是模块。
模块是包含Python定义和声明的文件。文件以.py为后缀,模块的模块名可以有全局变量__name__得到。
举个🌰:fibo.py
1234567891011121314def fib(n): a, b = 0, 1 while b < n: print(b, end=' ') a, b = b, a + b print()def fib2(n): result = [] a, b = 0, 1 while b < n: result.append(b) a, b = b, a + b return result
深入模块除了包含函数定义,模块也可以包含可执行语句,用来初始化模块。仅在第一次导入的地方执行一次。
每个模块都有自己的私有符号表,被模块内所有的函数定义作为全局符号表使用。
...
学习新的语言最好的资料是官方文档。由于笔者有其他语言基础,这里只整理区别和理解不清的地方。文档介绍Python语言及系统的诸多特性,开始是简单的语法、数据类型和表达式。接着介绍函数和模块,最后涉及异常和自定义类等高级内容。
文档地址:官方文档
Python解释器Python是一门解释型语言,因为不需要编译和链接,可以在程序开发中节约宝贵的时间。
Python解释器
在设备上安装好Python后就可以启动解释器了。打开终端,输入python3。
ps: 因为Mac默认安装Python2,所以需要使用Python3命令来启动。
交互模式
>>> :主提示符号 ... : 从属提示符号
解析器打印欢迎信息、版本号和授权提示。
1234➜ ~ python3Python 3.6.2 (default, Jul 27 2017, 13:31:44)[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.38)] on darwinType "help", "copyr ...
相信很多人都是用过库,Github上有很多优秀的开源库。如果我们不想暴露源代码还希望提过给他人使用,这就需要闭源库。通过将代码打包,分发给使用者。既方便使用者,也不会泄露核心代码。接下来我们看看如何打包库吧!
静态库基本概念什么是库?
库 就是程序代码的集合,是共享程序代码的一种方式。
库的分类?开源库
公开源代码,别人可以看到,例如:MJExtension,MJRefresh等。
闭源库
不公开源代码,经过编译的二进制文件。主要分为:静态库和动态库。
静态库的存在形式?.a.framework
动态库的存在形式?.dylib.framework
静态库和动态库的区别?静态库多次使用,多次拷贝存在多份副本。动态库只有一份,程序运行时动态加载到内存中。
程序使用了自己的动态库,不允许上架
静态库应用场景?
保护自己的核心代码。例如,友盟,百度地图,微信SDK等
将MRC的项目打包成静态库可以直接在ARC中使用
静态库的特点?
.a + .h
看不到具体代码
静态库的生成两种类型:
.a
.framework
架构
不同架构的静态库是不可以通用的。修改Build Setti ...
上一篇,学习如何请求网络数据,接下来学习使用Beautiful Soup解析请求到的数据。Beautiful Soup是一个可以从HTML和XML文件中提取数据的Python库。
版本:4.4.0
安装Beautiful Soup确保安装Python3之后,只需一行命令。
12pip install beautifulsoup4
注意,Mac中可能需要使用pip3 install beautifulsoup4
安装完BeautifulSoup后,我们还需要HTTP解析器,例如三方解析器lxml
1pip install lxml
万事俱备只欠东风!
快速开始123>>>from bs4 import BeautifulSoup>>>soup = BeautifulSoup('<b class="boldest">Extremely bold</b>')
对象种类BeautifulSoup将复杂的HTML文档转为一个复杂的树形结构,每个节点都是Python对象,所有对象可以 ...
目前在学习Python3爬虫技术,学习爬虫不仅要熟悉Python的基本知识,还要熟悉其他的库。例如:网络请求库Request,数据解析库Beautifulsoup,lxml,和爬虫框架Scrapy等。本文将学习Requests库的基础知识,后续将学习其他内容。少年加油吧!
版本:Python3.6 Requests2.18.1
Requests安装笔者使用Mac电脑,至于Windows电脑自行Google。Mac终端运行:
1pip install requests
Mac 系统自带Python2.x,需要自行安装Python3。在Python3环境下安装需要使用pip3 install requests
Request基础知识确定前面的内容顺利完成,按我们开始学习如何使用Request吧。
发送一个网络请求打开终端,运行python3进入Python模式。
导入模块:
12>>> import requests
发送Get请求
12>>> r = requests.get('https://api.github.com/e ...
面向对象都有类的概念,通过类可以创建多个具有相同属性和方法的对象。ECMAScript中没有类的概念,因此它的对象与基于类的语言的对象有所不同。
##目录
一.理解JavaScript的对象
二.JavaScript中创建对象方法
1工厂模式
2 构造函数模式
3 原型模式
4 组合使用构造函数模式和原型模式
一.理解JavaScript的对象JavaScript中的对象是一种无序的集合数据类型,它由若干键值对组成。其中值可以是函数或数据。
1.对象自定义对象的最简单方法创建一个Object的实例。
1234567var person = new Object();person.name = "owen";person.age = 25;person.job = "iOS Engineer";person.sayName = function() { console.log(this.name);}
早期常用此方法创建对象,现在常用字面量:
123456789var person = { name: &qu ...
目录
JavaScript的基本数据类型
JavaScript的执行环境和作用域链
JavaScript的垃圾收集机制
一.JavaScript的基本数据类型ECMAScript5中有5中基本数据类型:Undefined、Null、Boolean、Number和String。还有一种复杂数据类型——Object。
1.typeof操作符用来检测给定变量的数据类型。
12345678var bool = true;console.log(typeof bool); //booleanvar number = 23;console.log(typeof number);//numbervar string = "String";console.log(typeof string); // stringvar object = Object(); console.log(typeof object); // object
typeof操作符不是函数,不需要使用圆括号。NULL是什么类型呢?typeof null返回值为”Object“。
2.Undefined类型U ...
API ReferenceCoreBluetooth中,需要用到的类和协议(完整导图):
基础知识蓝牙分类中心端和外设端(完整导图)。
中心端(接收端)
1 .创建中心端控制器(CBCentralManager)
2 .扫描设备(Discover)
3 .连接 (Connect)
4 .获取Service和Characteristic
扫描Service (一个service中包含一个或多个Characteristic)
获取Service中Characteristic
获取Characteristic的值
5 . 数据交互(explore and interact)
订阅Characteristic的通知
6 . 断开链接
外设端(发送端)
创建Peripheral管理对象
创建Service和Characteristic树
发送广告
处理读写请求和订阅
蓝牙状态
12345678typedef NS_ENUM(NSInteger, CBManagerState) { CBManagerStateUnknown = 0, CBManag ...
前言Swift type System
Swift是强类型的,尽管只有六种类型。
命名类型: protocol, class , struct , enum
复合类型:tuple, function
可能会有疑问,那些基本类型:Bool,Int,UInt, Float, Double, Character, String, Array, Set, Dictionary, Optional。实际上他们都是通过命名类型创建的。
Struct Class and Enum 对比Swift中提供了多种可以结构化存储数据的方式,它们是: struct、enum和class。Swift标准库中的绝大多数类型都是struct,甚至Foundation中的一些类也提供了它们在Swift中的struct版本,而class和enum只占很少一部分。
Class,Struct and Enum对比表
|copy by| inheritance| static variable | instance variable| static method | instance method——–|—— ...