
PYTHON
huizhang0110
厚积薄发
展开
-
Python使用'input'读取输入文本出现NameError错误
在Python2中内置函数input()会将输入数据当成指令,从键盘中输入数据应该使用raw_input() 在Python3中input()函数用于从键盘中读取数据 1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 4 # 使用 input 会出现NameError 5 message = input("Tell me somet原创 2017-09-24 02:27:15 · 7283 阅读 · 0 评论 -
python collections模块
python collections提供了一些数据类型的扩展,使用起来非常方便Counter类Counter类是一个计数器类,继承于字典类,表示对象和相应的计数 常见的一个应用就是词频的统计from collection import Counterimport reif __name__ == "__main__": path = "/usr/lib/python3.5/LICENS原创 2017-10-19 23:48:45 · 263 阅读 · 0 评论 -
python 如何工整的打印字符串
# 如何工整的打印字符串 [对字符串进行左中右对齐的操作]from collections import OrderedDictmy_dict = OrderedDict()my_dict["name"] = "Hui Zhang"my_dict["age"] = "21"my_dict["gender"] = "M"my_dict["email"] = "huizhang0110@fox原创 2017-10-22 16:22:06 · 939 阅读 · 0 评论 -
python 使用正则表达式捕获文本内容并调整
读取Log文件内容,使用正则表达式读取日期数据,并调整格式# 输出正则表达式的描述import ref = open("/var/log/dpkg.log")log = f.read()t = re.sub("(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})", r"\g<month>/\g<day>/\g<year>", log)print(原创 2017-10-22 21:55:00 · 2713 阅读 · 0 评论 -
python 同时迭代多个对象
python中可以将多个可迭代对象组成一个可迭代对象,在一个for循环中完成迭代。 zip函数可以将多个可迭代对象封装成多元素的元组的列表,从而方便并行操作数据 itertools.chain函数可以将多个可迭代对象的元素按照顺序存入同一个列表中,从而方便顺序操作数据示例代码# 如何在一个for循环中同时迭代多个对象from random import randintfrom itertoo原创 2017-10-23 14:50:14 · 6288 阅读 · 0 评论 -
re.match匹配多行数据失败
出错代码与现象: 正则表达式提取网站源码中的_xsrf的值 使用单行数据测试正则表达式,能够正确提取,但是换成网页全文数据的时候,出现错误。import requeststry: import cookielibexcept: import http.cookiejar as cookielibimport resession = requests.session()h原创 2017-11-09 15:45:18 · 1925 阅读 · 0 评论 -
python3 迭代器与生成器
迭代器使用迭代器可以很方便地获取对象中的数据 实现__iter__()、__next__()方法,用于返回迭代的对象和元素。iter()可以将可迭代对象转换为迭代器生成器带有yield的函数被认为是生成器函数,将会被解释成可迭代器对象。程序执行到yield的时候将会被暂停,再次被迭代的时候,将会从上次执行的位置继续class Container: def __init__(self,原创 2017-10-23 23:24:21 · 369 阅读 · 0 评论 -
python3 对迭代器进行切片
使用itertools.islice方法# 使用itertools.islice, 返回一个迭代对象切片的生成器from itertools import islicef = open('/var/log/dpkg.log')for line in islice(f, 100, 300, 1): #迭代[100, 300)行,步长1 print(line, end='')f.clos原创 2017-10-24 22:39:39 · 376 阅读 · 0 评论 -
python3 使用静态属性节约对象实例的内存开销
# 如何减少大量实例占用内存的开销import sysclass Player: def __init__(self, uid, name, status=0, level=1): self.uid = uid self.name = name self.stat = status self.level = levelcl原创 2017-10-24 23:21:31 · 595 阅读 · 0 评论 -
python 如何进行多个字符串的拼接
# 如何将多个字符串进行连接s_list = ["<123>", "<klj>", "<2381293>", 123, 456]print(s_list)# 使用重载的字符串加法运算,直接拼接字符串(将会出现大量的临时字符串,列表元素比较多的时候不建议使用)s1 = ""for s in s_list: s1 += str(s) print(s1) # 每次都会出现临时字符串原创 2017-10-22 15:46:33 · 11125 阅读 · 1 评论 -
python 判断字符串中的的起始、终止子字符串
实例: 找出文件系统中以py、sh结尾的文件并赋予相应的可执行权限# -*- coding=utf-8 -*-# 如何判断字符串开头和结尾字符# 某文件系统中有一系列文件,编写程序给其中的sh文件和py文件加上用户权限import osimport stat # 和文件状态相关if __name__ == "__main__": # 对py sh脚本加上可执行权限 root原创 2017-10-22 12:22:40 · 3608 阅读 · 0 评论 -
python 按照字典的值进行排序
# 对字典数据的值进行排序from random import randintd = {k: randint(60, 100) for k in "xyzabc"}print(d)# 直接使用sort()只能将键进行排序print(list(iter(d)))sorted_1 = sorted(d) # 排序的只是可字典的迭代对象-键print(sorted_1)# 按照值进行排序# 1原创 2017-10-21 00:35:47 · 1030 阅读 · 0 评论 -
使用pickle将对象存储到文件中时出现 TypeError: write() argument must be str, not bytes
pickle默认操作二进制文件,使用文件函数的时候需要注意,否则出现 TypeError如下,open函数参数更改为 wb 可以正常运行#!/usr/bin/python3# -*- coding: utf-8 -*-# 实现用户的历史记录功能# 使用容量为 n 的队列结构from collections import dequefrom random import randintimpor原创 2017-10-02 22:33:48 · 6433 阅读 · 0 评论 -
python numpy模块
python中numpy模块可以进行精确的数值计算,在编程中经常使用其进行矩阵运算。博主使用这篇文章积累起自己使用numpy的经验,欢迎交流。import numpy as npnp.array()np.argmin() np.argmin(a, axis=None, out=None) 返回矩阵向量沿axis方向的最小值 a: 输入的array axis: 缺省的时候表示所有原创 2017-10-19 16:15:15 · 1214 阅读 · 0 评论 -
Python字符串格式化输出
在Python可以使用字符串的format函数替换掉字符串中的{}格式化描述符号从而达到C中的printf效果示例代码:#!/usr/bin/python3amount = float(input("Enter amount: "))inrate = float(input("Enter Interest rate: "))period = float(input("Enter period:原创 2017-10-10 22:53:07 · 609 阅读 · 0 评论 -
Python中获取两数相除的商和余数
方法一:可以使用//求取两数相除的商、%求取两数相除的余数。[/在Python中获取的是相除的结果,一般为浮点数]方法二:使用divmod()函数,获取商和余数组成的元祖实例代码:#!/usr/bin/python3# -*- coding: utf-8 -*- a = int(input(u"输入被除数: "))b = int(input(u"输入除数:"))div = a // b原创 2017-10-10 23:06:43 · 85861 阅读 · 6 评论 -
k近邻算法实现手写数字的识别和图片的分类
最近邻分类器近邻算法的目的是使用一系列的已知类别的训练集合tr_set来推测未知类别的测试数据te_data的类别,方法是计算te_data和训练集合tr_set中的所有数据的距离,找到训练数据中与测试数据最近的一个数据,由于训练数据的类别已经知道了,我们可以大胆推测测试数据类别就是这个距离最近的训练数据的类别。但是推测并不一定准确,近邻算法基于统计学,有一定的错误概率。最近邻分类器的改进版-k近邻原创 2017-10-19 21:05:56 · 1085 阅读 · 0 评论 -
python 列表、字典、集合解析
列表解析可以很方便地生成一个有规律的列表,区别于常规的列表定义,其内部可以嵌入一个或者多个for或if子句。根据for、if的计算结果返回一个列表。示例代码:In [1]: a = [i * i for i in range(1, 10, 2)]In [2]: aOut[2]: [1, 9, 25, 49, 81]In [3]: points = [(x, y) for x in [1, 2, 3原创 2017-10-11 15:15:09 · 681 阅读 · 0 评论 -
为tuple中的元素命名,提高程序的可读性
定义类似于枚举常量的数据充当索引值使用collection.nametuple代替传统的内置tuple示例代码# 使用索引进行访问,大大降低了程序的可读性stu = ("Jim", 16, "male", "huizhang0110@foxmail.com")print("name = {}, age = {}, gender = {}, email = {}".format(stu[0],原创 2017-10-20 23:14:34 · 333 阅读 · 0 评论 -
python 使用Counter统计列表中元素的频度
from collections import Counterimport re# 统计列表中次数出现最高的单词的频次a = [12, 5, 6, 4, 6, 5, 5, 7]print(Counter(a).most_common())# 拥挤英文文章中单词的频度with open("LICENSE") as f: contend = f.read()# 将文本转换为单词列表原创 2017-10-20 23:35:38 · 1164 阅读 · 0 评论 -
python os 模块
查找目录下存在的文件os.listdir(dirpath)返回一个list容器,包含目录下文件名称(包括目录文件)判断一个文件是目录目录还是普通文件os.path.isfile(filepath)os.path.isdir(filepath)返回布尔值原创 2017-10-19 12:56:22 · 222 阅读 · 0 评论