互动网站建设的主页,天辰工程信息网,深圳市鸿运通网站建设,河南网站建设价位做题时遇到的不知道的知识点会更新在此#xff1a; python中的int()函数可以用于进制转换 该函数最为常见的使用是用于强制类型转换#xff0c;实际上#xff0c;它可以有两个参数 值得强调的是当传入两个参数时第一个参数一定要是字符串类型 字符串方法#xff1a; lower(… 做题时遇到的不知道的知识点会更新在此 python中的int()函数可以用于进制转换 该函数最为常见的使用是用于强制类型转换实际上它可以有两个参数 值得强调的是当传入两个参数时第一个参数一定要是字符串类型 字符串方法 lower()将字符串所有字符变为小写非原地upper()将字符串所有字符变为大写title()将字符串内每一个单词首字母大写capitlize()将首字母大写.swapcase()将字符串中的大写字符变成小写字符小写字符变成大写字符strip()去除首尾空白字符lstrip()去除左边空白字符rstrip()去除右边空白字符想重复输出某个字符串可以使用*号split()从字符串的左边开始切分默认的切分参数第一个是空格第二个参数可以选择指定切分次数返回列表rsplit()从字符串的右边开始切分其他同上isalpha()判断字符串是否只包含字母isalnum()判断字符串是否全部由字母和数字组成isdigit()判断字符串是否只包含数字isdecimal()判断字符串是否只包含十进制数字isnumeric()判断字符串是否只包含数字注意s.isdigit、isdecimal 和 s.isnumeric 区别isspace()判断字符串是否只包含空格(回车、换行、水平制表符).center()居中对齐第一个参数指定宽度第二个参数可以指定填充字符是什么默认是空格如果设定的宽度小于原字符串宽度则返回原字符串.ljust()左对齐参数同上rjust()右对齐参数同上zfill()右对齐只接受一个参数指定宽度默认使用0填充.isidentifier()判断指定的字符串是否是合法的标识符.encode()编码方法可以指定编码的类型传入参数即可.decode()解码方法可以指定解码的类型 python内置函数del注意与列表.del()区分 del 对象 直接删除一个对象可用于列表删除一个del lst[ j ]或多个元素del lst[ 0:3 ]利用切分 内置函数/方法 max()参数为一个可迭代对象得到其中的最大值min()同上得到其中的最小值sum()第一个参数为一个可迭代对象第二个参数为结果相加值默认为0即返回值会加上这个数得到迭代对象的和abs()返回传入参数的绝对值ord()返回传入参数的ASCII码数值hex()返回传入十进制整数的十六进制返回类型是字符串bin()返回传入十进制整数的二进制返回类型是字符串pow(x,y)返回x^y.count() 统计列表中传入参数出现的次数.index(参数)得到传入参数在列表中第一次出现的下标是多少从0开始未找到则报错.find()查找传入参数在序列中的索引下标未找到返回-1string.join(iterable) join() 方法获取可迭代对象中的所有项目并将它们连接为一个字符串。 必须将字符串指定为分隔符 .replace(old,new,max)可将字符串中的某些字符替换为其他字符,第一个参数是原字符第二个参数是新字符第三个参数是替换次数默认替换全部注意该函数不是原地替换 round(num,dig) 函数返回一个浮点数该浮点数是指定数字的舍入版本并带有指定的小数位数。 默认的小数位数为 0表示该函数将返回最接近的整数。 eval()函数计算指定的表达式如果该表达式是合法的 Python 语句它会被执行。 set(序列集合或迭代器)函数创建集合对象。集合列表中的项目是无序去重的因此它将以随机顺序出现。 hasattr(obj,name)函数用于判断对象是否包含对应的属性 setattr(obj,name,value)函数用于设置属性值如果该对象已经拥有该属性值则对其进行修改如果没有该属性则创建该属性后对其赋值 dir(对象)可以查看某个对象所拥有的属性和方法 常用数据类型 整数类型int 二进制以0b开头八进制以0o开头十六进制以0x开头 这里还有一个值得注意的点python中的整型是“无限长”的因此它可以表示任何数 浮点数 python中只有float作为浮点数没有double 主要注意python中对浮点数与Decimal的关系例如 可参考 布尔类型 有True和False两种其中要注意的是python的bool可以作为数字进行运算 例如 True12 False10 字符串类型 可以用一对单引号或一对双引号或三个单引号对或三个双引号对 表示 其中三引号表示的字符串可以跨行输入其他的则不行 三引号还可以实现多行注释 对于字符串想要输出原字符串可以在字符串前加上r或R print(r我是字符串) 但是注意 想输出的字符串末尾不能是反斜杠因为如果末尾是反斜杠就变成了\即一个已经存在的转义字符 类型转换 float() int() str() bool()字符串转成bool类型都是True 运算符 python中没有运算符和--运算符 python的整除是// 而 / 则会得到浮点数 幂运算是** 赋值上python可以支持解包赋值即类似 a,b,c1,2,3;
#这样就完成了a1,b2,c3的赋值 对象id(地址)的比较可以使用is和is not python的布尔运算符有and,or,not,in,not in python的位运算符有,|,, 其中是“高位溢出舍弃低位补零” 是“低位溢出舍弃高位补零” 条件表达式 x if 判断条件 else y 即如果判断条件返回True则得到x,反之得到y pass语句 在遇到暂时不想写的地方时可以使用pass语句进行略过 分支结构 if 判断条件:语句
elif 判断条件:语句
else:语句 内置函数range 该函数用于生成一个整数序列 我们有如下三种方法对其进行创建 该函数的返回值是一个迭代器对象 循环 while循环 #语法结构
while 表达式:语句 for-in循环 in表达从字符串、序列等以此取值称为遍历 for-in遍历的对象必须是可迭代对象 #语法结构
for 自定义的变量 in 可迭代对象:循环体 如果不需要上述的自定义变量可以使用_代替该位置 循环与else 在python中else可以与循环搭配使用 即一个循环如果正常退出则执行else语句内容 列表 python中的列表可以相当于其他语言中的数组 上图可近似抽象表示一个列表的内存形式 列表的创建方式 直接使用中括号创建使用内置函数list() 列表的特点 列表元素按照顺序有序排序索引映射唯一一个元素列表可以存储重复数据列表可以任意数据类型混合存储列表会根据需要动态分配和回收内存空间 列表的查询操作 这里值得强调的是切片得到的列表与原列表的id是不同的说明新的列表是拥有了新的内存空间此外切片三个参数中的中间参数不管是正序遍历还是逆序遍历都是“开的一边”即不会遍历的stop本身 列表元素的增加操作 值得强调的是append()方法是“原地添加元素”extend()方法适用于两个列表的拼接也是原地拼接 此外切片也是一种灵活的方式 输出如下 等于是在下标为1的后面所有元素都变了 列表的删除操作 remove()根据元素值删除 一次删除一个元素重复元素只删除第一个元素不存在则抛出异常 2.pop()根据索引进行删除 删除一个指定索引位置上的元素指定索引不存在则抛出异常如果不指定索引则默认删除最后一个元素 3.切片 可实现一次至少删除一个元素 但是这样不是原地操作最好的做法如下 4.clear() 清空列表 5.del() 直接删除列表 列表元素的修改操作 直接通过索引修改单个元素切片 列表元素的排序 调用列表的sort()方法默认将列表进行升序排序如果指定参数reverseTrue则可实现降序排序该方法是原地排序调用内置函数sorted()同理可传入参数reverseTrue实现降序排序会产生新列表 列表产生式 列表产生式是用于生成列表的公式 补充列表的另外一些常用方法 reverse() 实现原地反转列表 字典 什么是字典 与列表一样字典也是python的一种数据结构它以键值对的形式存储数据 此外字典是可变序列即我们可以对其中的元素进行增删改 字典是无序的即添加的第一个元素不一定被放在第一个位置添加的第二个元素也不一定在第二个位置这是因为元素的位置是由字典的key经过哈希函数的结果来决定的所以也会要求字典的key是不可变序列类似字符串就是不可变序列来避免元素的位置被频繁改变 值得一提的是字典也可以根据需要动态地伸缩 不过字典会浪费较大的空间是一种空间换时间的数据结构 字典的创建 主要有以下两种方式 使用花括号使用内置函数dict() 注意使用内置函数dict()内部是用等号进行赋值的不是冒号 字典元素的获取 主要有以下两种方式 使用中括号[]取值 get方法取值 上述二者的区别 字典key的判断 字典元素的删除 使用.clear()方法可直接清空字典使用内置函数删除即可 del 字典[张三] 字典元素的添加与修改 该操作较为简单有点类似访问其中的元素操作 获取字典视图 .keys()方法获取字典中所有的key.values()方法获取字典中所有的value.items()方法获取字典中所有的键值对 这里还可以将上述得到的序列使用list()转换为列表方便操作 字典元素的遍历 当然使用上述提到的字典视图也可以实现遍历 内置函数zip() 该函数用于将可迭代对象作为参数将对象中对应的元素打包成一个元组然后返回由这些元组组成的列表 例如 如上两个列表使用zip(items,prices)所得到的为 [(Fruits,96),(Books,78),(Others,85)] 字典产生式 具体语法如下图所示 元组 元组是python中内置的数据结构之一是一个不可变序列即元组不能被增删改 补充 截至目前所学的不可变序列出现了有 字符串、元组这些不可变序列如果进行了增删改就相当于直接修改了地址创建了一个新的对象反之可变序列 列表、字典进行增删改操作对象地址并不会改变 语法如下图所示 元组的创建方式 主要包含如下两种方式 直接小括号需要强调的是 只包含一个元素的元组需要使用逗号和小括号使用内置函数tuple()需要强调的是tuple()函数内还需要使用小括号 实际上元组的小括号是可以省略的 需要强调的是 元组中存放的是对象的引用 如果说元组中的对象本身是不可变对象则不能再引用其他对象‘ 如果说元组中的对象本身是可变对象则可变对象的引用不能被修改但是可变对象的数据可以修改 元组的遍历 而关于元组元素的查看 则直接使用索引下标即可 此外想输出元组内的多个元素也可以使用切片操作不过需要注意的是元组的切片也是使用的中括号 集合 集合也是python所提供的内置数据结构之一并且它属于可变无序序列我们通常使用“没有value的字典”来理解它也就是说集合中的元素不能重复 集合的创建 使用{}创建 使用内置函数set() 集合元素的判断操作 类似其他数据结构直接使用in与not in 判断元素是否存在集合中即可 集合元素的新增操作 .add()方法一次添加一个元素.update()方法一次添加一个或多个元素参数是可迭代对象 集合的删除操作 .remove() 一次删除一个指定元素如果元素不存在则抛出异常.discard()同上一次删除一个指定元素但是如果元素不存在不会报错.pop()该方法无参数它会随机删除集合中的一个元素.clear()该方法用于清空集合 集合之间的关系 值得强调的点是这个isdisjoint()方法该方法如果两个集合没有交集返回True,反之返回False 集合的数学操作 交集 使用.intersection()方法可以返回两个集合的 交集 此外 还可以使用 符号得到两个集合的 交集并集 使用.union()方法可以得到两个集合的 并集 此外 还可以使用 | 符号得到两个集合的 并集差集 使用.difference()方法可以得到两个集合的 差集 此外还可以使用 - 符号得到两个集合的差集对称差集 使用.symmetric_difference()可以得到两个集合的 对称差集 此外还可以使用 ^ 符号得到 集合生成式 将列表生成式的中括号改为花括号即可 学了这么多生成式我们需要注意的是元组没有生成式 python内置数据结构总结 字符串 字符串的驻留机制 什么是字符串的驻留机制 python对字符串仅保留一份相同且不可变的方法不同的值被保留在字符串的驻留池内python对相同的字符串只保留一份拷贝后续创建相同字符串时不会开辟新空间而是把该字符串的地址赋给新创建的变量 什么样的字符串会被驻留 字符串的长度为0或1时符合标识符的字符串字符串只在编译时进行驻留而非运行时[-5256]之间的整数数字 python还提供了方法允许我们对字符串进行强制驻留 即可以使用sys中的intern方法强制两个字符串指向同一对象 这里需要注意的是pycharm对字符串进行了优化即可能不满足上述条件的字符串也会被驻留 字符串的比较操作 字符串与字符串之间其实可以使用类似 这些运算符进行比较 比较规则 首先比较两个字符串的第一个字符如果相等就继续比较下一个字符串以次比较下去直至两个字符串中的字符不相等其比较结果就是两个字符串的比较结果此后后续字符不再进行比较比较原理 两个字符进行比较时调用的是内置函数ord()所得到的值 值得强调的是符号比较的是字符串的内容 而 is 运算符比较的是字符串的地址id 字符串的切片 与其他数据类型相似字符串也能进行切片操作 但是因为字符串是不可变类型不具备增删改操作切片操作将产生新的对象 字符串的格式化 对字符串进行格式化主要有一下两种方式 1.%作为占位符 这一点与C语言中完全一样这里不再赘述 2. {}作为占位符 如上图所示的0与1分别代表format参数的第一个参数与第二个参数 补充 上图中如果format中只有一个参数那么可以省略0 函数 函数就是执行和完成特定功能的一段代码 函数的好处 复用代码隐藏实现细节提高可维护性提高可读性便于调试 函数的创建 函数的参数传递 主要有如下两种方式 1.位置实参 根据形参对应的位置进行实参传递 2.关键字实参 根据形参名称进行实参传递 函数参数传递的内存分析 如上图代码所示我们定义了一个函数fun且传入两个参数分别时不可变类型int与可变类型list我们发现在调用fun后n1还是n1但是列表n2却被改变了 如果参数是不可变对象在函数体内的修改不会影响实参的值如果是可变对象则在函数体内会影响实参的值 函数的返回值 如果函数没有返回值return可以省略不写函数的返回值如果存在多个返回的类型为元组 默认值参数 函数定义时我们可以给形参设置默认值如果不希望使用默认值时则可以传递实参反之不传实参则默认使用默认值 个数可变的函数参数 主要有以下两类 1.个数可变的位置参数 定义函数时可能无法事先确定传递的位置实参的个数时使用可变的位置参数 使用*定义个数可变的位置形参 结果为一个元组 2.个数可变的关键字形参 定义函数时可能无法事先确定传递的位置实参的个数时使用可变的关键字参数 使用**定义个数可变的关键字形参 结果为一个字典 值得强调的是如果一个函数的形参既有个数可变的位置形参也有个数可变的关键字形参那么我们定义 位置形参 放在 关键字形参前面 函数传参时的解包 只需在传实参时在前面加上对应的星号即可 变量的作用域 即程序代码能访问该变量的区域 根据变量的有效范围可分为 局部变量 在函数内部定义的变量只在函数内部有效但如果局部变量使用global声明这个变量就会成为全局变量全局变量 在函数体外定义的变量可作用于函数内外 异常 python与其它高级程序语言一样提供了异常处理机制可以在异常出现时进行捕获然后内部“消化”让程序继续运行 try....except....else....finally语句 如上图所示我们可以使用这样的语句来实现捕获异常在try子句内编写可能会出现异常的语句块except后书写异常类型然后在except语句块内编写如果出现该异常需要执行的代码 当然我们可以书写多个except语句如果书写多个except语句的话我们希望从上到下按照异常的范围大小从小到大排下来这样我们更能精确地处理异常 其次上述语句也可以补充使用else语句else语句块的内容表示如果try语句块中未出现异常所需要执行的代码 最后我们还可以添加finally语句块该语句块无论是否发生异常都会被执行通常用来释放try语句块中申请的资源 常见异常类型如下图所示 类与对象 值得注意的一点是 实例对象的创建一般有两种形式 stu.info()
Student.info(stu) 类属性、类方法、静态方法 需要强调的是类方法与静态方法的区别 类方法 类方法和实例方法相似它最少也要包含一个参数只不过类方法中通常将其命名为 clsPython 会自动将类本身绑定给 cls 参数注意绑定的不是类对象。也就是说我们在调用类方法时无需显式为 cls 参数传参。 其次类方法只能访问类属性 类方法推荐使用类名直接调用当然也可以使用实例对象来调用不推荐 Student.cm()
stu.cm()#不推荐静态方法 静态方法其实就是我们学过的函数和函数唯一的区别是静态方法定义在类这个空间类命名空间中而函数则定义在程序所在的空间全局命名空间中 静态方法没有类似 self、cls 这样的特殊参数因此 Python 解释器不会对它包含的参数做任何类或对象的绑定。也正因为如此类的静态方法中无法调用任何类属性和类方法 静态方法的调用既可以使用类名也可以使用类对象 动态绑定属性和方法 python是一门动态语言在对象创建后允许动态地绑定属性和方法 面向对象的三大特征 封装 封装可以提高程序的安全性封装即将属性和方法包装到类对象中在方法内部对属性进行操作在类的外部调用方法 需要强调的是在python中没有专门的修饰符用于表示属性的私有我们通常在我们希望的私有成员前面使用两个下划线_ 继承 继承可以很好地提高代码的复用性 python中的继承语法格式如下 如果一个类没有继承任何类则默认继承object python支持多继承即一个子类可以有多个父类 定义子类的构造方法时必须在其中调用父类的构造方法(利用super()) 多态 多态可以提高程序的可扩展性和可维护性 方法重写 如果子类对继承自父类的某个属性或方法不满意可以在子类中对其进行重新编写子类重写的方法中也可以通过super().xxx调用父类的方法 object类 object类是所有类的父类因此所有类都有object类的属性和方法object类中存在一个__str()__方法用于返回一个对象的描述我们通常会将其重写使其返回更加确切的类描述 如上图所示如果我们没有重写__str__方法则print(p)会输出该对象的地址反之则输出了我们重写方法__str__返回的内容 object的一些属性 x.__dict__ 如果x是一个实例对象的话那么返回实力对象的属性字典如果x是一个类名则返回该类的属性与方法的字典x.__class__ 返回对象所属的类x.__bases__ 返回一个元组包含x的父类x.__mro__ 返回一个元组包含类的层次结构x.__subclasses__ 返回子类的列表 object的一些方法 __add__(self,other) 类似C实现了类与类之间的运算符操作一样如果我们想使得两个类可以相加我们就需要实现它__len__(self)同理如果我们想要得到len(类)那么我们需要在该类中实现该方法 __new__(cls,其他参数) 与 __init__(self) 中前者用于创建对象后者则用于初始化前者创建的对象具体可参考通俗的讲解Python中的__new__()方法 值得强调的是发现__new__方法是传入类(cls)而__init__方法传入类的实例化对象(self)而有意思的是__new__方法返回的值就是一个实例化对象ps:如果__new__方法返回None则__init__方法不会被执行并且返回值只能调用父类中的__new__方法而不能调用毫无关系的类的__new__方法 类的浅拷贝与深拷贝 变量的赋值操作实质上是形成两个变量指向同一个对象浅拷贝使用copy模块中的copy方法python中的拷贝一般都是浅拷贝拷贝时对象包含的子对象内容不拷贝因此源对象与拷贝对象会引用同一个子对象深拷贝使用copy模块中的deepcopy方法递归拷贝对象中包含的子对象源对象与拷贝对象中的所有子对象均不同 如上图所示我们发现computer对象与浅拷贝对象computer2是不同的对象但是他们的子对象都是相同的 上图则使用了深拷贝我们发现源对象与拷贝对象都不同包括他们的子对象 模块Modules 我们可以简单将模块理解为一个.py文件就是一个模块 而一个模块会包含函数、类、语句 使用模块的好处 方便其他程序或脚本的导入并使用避免函数名和变量名的冲突提高代码的可维护性提高代码的可重用性有利于团队协作开发 模块的导入 我们在自定义模块时名称尽量不要与python自带的标准模块名称相同 导入模块的方式有如下两种 此外第三方模块的导入 以主程序形式运行 简单地说就是我们的模块中因为可以包含语句例如print因此在我们导入某个模块运行时该模块的语句也会被执行如果我们不希望它被执行就在该语句加上if __name__ __name__即可 包 包是一个分层次的目录结构它将功能相近的模块整合到一个目录下包使得我们的代码更为规范避免了模块名称的冲突包在创建时通常会包含__init__.py文件而目录不会 值得强调的是使用import进行导入后面只能跟包或者是模块 但是使用from...import...可以导入包、模块、函数、类 python中常用的内置模块 文件 文件的读写原理如下图所示 .py文件被解释器所运行而解释器会用到操作系统中的资源进行相关操作 使用python中的文件相关函数来实现对文件的操作 一般分为以下步骤 获取文件对象对文件对象进行操作关闭文件对象 内置函数open创建文件对象 语法规则如下图所示 常用的文件打开方式 按照文件的数据组织形式文件分为以下两类 文本文件存储的是普通’字符‘文本默认为unicode字符集可以用记事本打开二进制文件把数据内容用’字节‘进行存储无法用记事本打开例如MP3jpg图片 文件对象的常用方法 值得强调的是flush与close的区别 close()关闭流对象但是先刷新一次缓冲区关闭之后流对象不可以继续再使用了。 flush()仅仅是刷新缓冲区(一般写字符时要用,因为字符是先进入的缓冲区)流对象还可以继续使用 with语句上下文管理器 with语句可以自动管理上下文资源无论说明原因跳出with块都能确保文件的正确关闭以此来达到释放资源的目的该语句可以避免遗忘关闭文件的行为 上图是一个利用with语句实现copy功能的代码 文章转载自: http://www.morning.frpm.cn.gov.cn.frpm.cn http://www.morning.nstml.cn.gov.cn.nstml.cn http://www.morning.fnpmf.cn.gov.cn.fnpmf.cn http://www.morning.zwpzy.cn.gov.cn.zwpzy.cn http://www.morning.fkmqg.cn.gov.cn.fkmqg.cn http://www.morning.jhtrb.cn.gov.cn.jhtrb.cn http://www.morning.sfnjr.cn.gov.cn.sfnjr.cn http://www.morning.mxmdd.cn.gov.cn.mxmdd.cn http://www.morning.gjlst.cn.gov.cn.gjlst.cn http://www.morning.sjwws.cn.gov.cn.sjwws.cn http://www.morning.zxqxx.cn.gov.cn.zxqxx.cn http://www.morning.grqlc.cn.gov.cn.grqlc.cn http://www.morning.rongxiaoman.com.gov.cn.rongxiaoman.com http://www.morning.wlsrd.cn.gov.cn.wlsrd.cn http://www.morning.nfbnl.cn.gov.cn.nfbnl.cn http://www.morning.lhqw.cn.gov.cn.lhqw.cn http://www.morning.bkgfp.cn.gov.cn.bkgfp.cn http://www.morning.dnbhd.cn.gov.cn.dnbhd.cn http://www.morning.qllcp.cn.gov.cn.qllcp.cn http://www.morning.mmkrd.cn.gov.cn.mmkrd.cn http://www.morning.fmrd.cn.gov.cn.fmrd.cn http://www.morning.rbkl.cn.gov.cn.rbkl.cn http://www.morning.dnqlba.cn.gov.cn.dnqlba.cn http://www.morning.ygkq.cn.gov.cn.ygkq.cn http://www.morning.ppdr.cn.gov.cn.ppdr.cn http://www.morning.kfcfq.cn.gov.cn.kfcfq.cn http://www.morning.nrtpb.cn.gov.cn.nrtpb.cn http://www.morning.fnhxp.cn.gov.cn.fnhxp.cn http://www.morning.xmttd.cn.gov.cn.xmttd.cn http://www.morning.pzwfw.cn.gov.cn.pzwfw.cn http://www.morning.hqwtm.cn.gov.cn.hqwtm.cn http://www.morning.tstkr.cn.gov.cn.tstkr.cn http://www.morning.nqyzg.cn.gov.cn.nqyzg.cn http://www.morning.fysdt.cn.gov.cn.fysdt.cn http://www.morning.tbqdm.cn.gov.cn.tbqdm.cn http://www.morning.mxlmn.cn.gov.cn.mxlmn.cn http://www.morning.yxwcj.cn.gov.cn.yxwcj.cn http://www.morning.ywpwq.cn.gov.cn.ywpwq.cn http://www.morning.rnyhx.cn.gov.cn.rnyhx.cn http://www.morning.rwjtf.cn.gov.cn.rwjtf.cn http://www.morning.kmkpm.cn.gov.cn.kmkpm.cn http://www.morning.xcszl.cn.gov.cn.xcszl.cn http://www.morning.kdrjd.cn.gov.cn.kdrjd.cn http://www.morning.fxzw.cn.gov.cn.fxzw.cn http://www.morning.rwmft.cn.gov.cn.rwmft.cn http://www.morning.rrms.cn.gov.cn.rrms.cn http://www.morning.fnbtn.cn.gov.cn.fnbtn.cn http://www.morning.ckfqt.cn.gov.cn.ckfqt.cn http://www.morning.qnbgh.cn.gov.cn.qnbgh.cn http://www.morning.yjmns.cn.gov.cn.yjmns.cn http://www.morning.rfmzs.cn.gov.cn.rfmzs.cn http://www.morning.qkcyk.cn.gov.cn.qkcyk.cn http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn http://www.morning.rdng.cn.gov.cn.rdng.cn http://www.morning.zsyrk.cn.gov.cn.zsyrk.cn http://www.morning.wmfny.cn.gov.cn.wmfny.cn http://www.morning.hsrch.cn.gov.cn.hsrch.cn http://www.morning.lzqdl.cn.gov.cn.lzqdl.cn http://www.morning.pzlcd.cn.gov.cn.pzlcd.cn http://www.morning.rmltt.cn.gov.cn.rmltt.cn http://www.morning.sbncr.cn.gov.cn.sbncr.cn http://www.morning.fwblh.cn.gov.cn.fwblh.cn http://www.morning.yqyhr.cn.gov.cn.yqyhr.cn http://www.morning.wschl.cn.gov.cn.wschl.cn http://www.morning.sfnr.cn.gov.cn.sfnr.cn http://www.morning.nzkc.cn.gov.cn.nzkc.cn http://www.morning.kzrbd.cn.gov.cn.kzrbd.cn http://www.morning.jprrh.cn.gov.cn.jprrh.cn http://www.morning.mxxsq.cn.gov.cn.mxxsq.cn http://www.morning.qsy40.cn.gov.cn.qsy40.cn http://www.morning.ysbrz.cn.gov.cn.ysbrz.cn http://www.morning.wrysm.cn.gov.cn.wrysm.cn http://www.morning.thxfn.cn.gov.cn.thxfn.cn http://www.morning.hnhkz.cn.gov.cn.hnhkz.cn http://www.morning.xykst.cn.gov.cn.xykst.cn http://www.morning.rnmdp.cn.gov.cn.rnmdp.cn http://www.morning.dnwlb.cn.gov.cn.dnwlb.cn http://www.morning.pslzp.cn.gov.cn.pslzp.cn http://www.morning.kzrbn.cn.gov.cn.kzrbn.cn http://www.morning.jzmqk.cn.gov.cn.jzmqk.cn