python
Duke的专栏
这个作者很懒,什么都没留下…
展开
-
元类
使用type创建类type可以接受一个类的描述作为参数,然后返回一个类。(要知道,根据传入参数的不同,同一个函数拥有两种完全不同的用法是一件很傻的事情,但这在Python中是为了保持向后兼容性)type可以像这样工作:type(类名, 由父类名称组成的元组(针对继承的情况,可以为空),包含属性的字典(名称和值))In [2]: class Test: #定义了一个Test类 ...原创 2018-04-03 17:38:58 · 239 阅读 · 0 评论 -
__slots__的使用
python是动态语言动态语言的定义 动态编程语言 是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用。它是一类 在运行时可以改变其结构的语言 :例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。例如JavaScript便是一个动态语言,除此之外如 PHP 、 Ruby 、 Python 等也都属于动态语言,而 C 、 ...原创 2018-04-03 17:50:57 · 513 阅读 · 0 评论 -
原码,反码,补码
原码、反码、补码##1)如何计算补码? 规则: 正数:原码 = 反码 = 补码 负数:反码 = 符号位不变,其他位取反 补码 = 反码+1 1 的原码:0000 0000 0000 0001 -1的原码:1000 0000 0000 0001 -1的反码:1111 1111 1111 1110 -1的补码:1111 1111 1111 1111 重新计算 -1+1 ...原创 2018-04-03 18:01:03 · 201 阅读 · 0 评论 -
pycharm在同目录下import,pycharm会提示错误,但是可以运行
原因是: pycharm不会将当前文件目录自动加入自己的sourse_path。 解决方案:右键make_directory as–>sources path将当前工作的文件夹加入source_path就OK了...原创 2018-06-09 09:57:33 · 1631 阅读 · 0 评论 -
修改linux下默认的python版本
linux默认的应该都是python2,但是更多的现在都是python3,就想修改默认python版本 1:删除/usr/bin目录下的python link文件 cd /usr/bin sudo rm -rf python2:删除后再建立新的链接关系: sudo ln -s /usr/bin/python3 /usr/bin/python...原创 2018-07-16 16:27:24 · 1623 阅读 · 0 评论 -
python多进程拷贝文件
#encoding:utf-8from multiprocessing import Pool, Managerimport osdef copyFileTask(name, oldFolderName, newFolderName, queue): "完成copy一个文件的功能" fr = open(oldFolderName + "/" + name) fw =...原创 2018-04-09 17:24:32 · 718 阅读 · 0 评论 -
python使用Queue进行进程间通信
进程间通信-Queue Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。Queue的使用 可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理:#coding=utf-8from multiprocessing import Queueq=Q...转载 2018-04-09 15:49:26 · 506 阅读 · 0 评论 -
python创建子进程的几种常用方式(fork, Process,进程池)
linux下使用fork()创建子进程Linux 操作系统提供了一个 fork() 函数用来创建子进程,这个函数很特殊,调用一次,返回两次,因为操作系统是将当前的进程(父进程)复制了一份(子进程),然后分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的 PID(大于0)。我们可以通过判断返回值是不是 0 来判断当前是在父进程还是子进程中执行。在 Python 中同样提供了 ...原创 2018-04-09 09:28:31 · 17620 阅读 · 0 评论 -
外星人入侵游戏(Python3)
alien_invasion.py:#encoding:utf-8#创建pygame窗口以及响应用户输入import sysimport pygamefrom pygame.sprite import Group#导入类Settingsfrom settings import Settings#导入类Shipfrom ship import Ship#导入模块game_functions原创 2017-11-12 17:08:40 · 5470 阅读 · 5 评论 -
使用python将json格式文件进行数据可视化绘制世界人口地图
#encoding:utf-8import pygalimport jsonfrom pygal_maps_world.i18n import COUNTRIESfrom pygal.style import RotateStyle #设置颜色的模块from pygal.style import LightColorizedStyle #加亮颜色主题def get_count原创 2017-11-23 19:34:51 · 2357 阅读 · 1 评论 -
使用pygal绘制世界地图时的两个报错
在使用pygal调用国别码、绘制世界地图的时候,遇到了两个问题,问题一: 使用下方语句调用国别码的时候from pygal.i18n import COUNTRIES程序报错ModuleNotFoundError: No module named 'pygal.i18n'解决: pygal.i18n 已经不存在了,现在已经更改成了 pygal_maps_world, 使用下列代码安装p原创 2017-11-23 16:48:29 · 2095 阅读 · 0 评论 -
处理CSV文件格式的数据并用matplotlib可视化
#encoding:utf-8import csvfrom matplotlib import pyplot as pltfrom datetime import datetime#从文件中获取日期和最高气温filename = 'death_valley_2014.csv' #死亡谷数据with open(filename) as f: reader = csv.reader(f原创 2017-11-22 22:06:05 · 2354 阅读 · 1 评论 -
绘制简单的条形图(使用pygal掷筛子)
#encoding:utf-8import pygalfrom random import randintclass Die(): '''表示一个筛子的类''' def __init__(self, num_size = 6): '''筛子默认为6面''' self.num_size = num_size def roll(self):原创 2017-11-21 20:32:27 · 1166 阅读 · 0 评论 -
随机漫步
#encoding:utf-8from random import choiceimport matplotlib.pyplot as pltclass RandomWalk(): '''一个生成随机漫步数据的类''' def __init__(self, num_points = 50000): '''初始化随机漫步的属性''' self.num_原创 2017-11-21 17:01:44 · 745 阅读 · 0 评论 -
python程序使用pdb调试
常用命令:break 或 b 设置断点continue 或 c 继续执行程序, 或是跳到下个断点list 或 l 查看当前行的代码段step 或 s 进入函数return 或 r 执行代码直到从当前函数返回exit 或 q 中止并退出next 或 n 执行下一行p 或! ...原创 2018-04-08 16:43:37 · 281 阅读 · 0 评论 -
python匿名函数lambda
为什么要用匿名函数? 1. 程序一次行使用,所以不需要定义函数名,节省内存中变量定义空间 2. 如果想让程序更加简洁时。#map:遍历序列,对序列中每个元素进行操作,最终获取新的序列print("列表为%s"%list(map(lambda x:x+2,[3,4,5,6]))) #列表为[5, 6, 7, 8]#filter:对于序列中的元素进行筛选,最终获取符合条件的序列pri...原创 2018-03-04 21:23:36 · 515 阅读 · 0 评论 -
闭包
#闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,# 并且外函数的返回值是内函数的引用。这样就构成了一个闭包。#如下所示,最简单的一个闭包def test(number): print("--1--") def test_in(number2): print("--2--") print(number+numb...原创 2018-03-04 21:20:30 · 219 阅读 · 0 评论 -
python中列表的基本操作
#encoding:utf-8# 访问列表元素print("\n访问列表元素")bicycles = ['terk', 'cannonddale', 'redline', 'specialized']print(bicycles)print(bicycles[0])print(bicycles[3])print(bicycles[-1]) #输出最后一个元素print(bicy原创 2017-10-29 15:51:52 · 2125 阅读 · 0 评论 -
python中if语句的运用
#encoding:utf-8#if语句的运用cars = ['audi', 'bmw', 'subaru', 'toyota']for car in cars: if car == 'bmw': print(car.upper()) else: print(car.title())#检查特定值是否在列表中temp = 'bmw'if temp原创 2017-10-29 19:34:53 · 598 阅读 · 0 评论 -
python中字典的基本用法
#encoding:utf-8#使用字典alien_0 = {'color':'green', 'position':5}print(alien_0['color'])print(alien_0['position'])print(alien_0)#添加键值对alien_0['x_position'] = 0alien_0['y_position'] = 0print(alien_0)原创 2017-11-01 15:21:39 · 607 阅读 · 0 评论 -
python中使用input函数报错
#encoding: utf-8 name =input("Please input your name:\n") print("Hello,", name)err: 使用input输入时提示变量未定义报错Please input your name:shihaoTraceback (most recent call last): File "用户输入和while循环.py", lin原创 2017-11-01 16:18:39 · 8401 阅读 · 1 评论 -
python3单行定义多个变量或赋值
#encoding:utf-8#一行内将多个值赋值给多个变量a, b = 45, 65print(a, b)#交换两个数的值a, b = b, a #元组交换'''我们是用逗号创建元组。在赋值语句的右边我们创建了一个元组,我们称这为元组封装,赋值语句的左边我们则做的是元组拆封。'''def jh(a, b): #自定义函数交换 return b, ax, y =原创 2017-11-09 20:27:40 · 4508 阅读 · 0 评论 -
python中如何实现一行输入多个值
#encoding:utf-8lst= list(map(int,input().split()))'''先使用split()方法对字符串切片,然后使用map()将每个元素依次转换为int型,然后把返回值转换为list型,返回给lstsplit()方法通过指定分隔符对字符串进行切片,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。map()是 Python 内置的高阶函数,它接收原创 2017-11-10 15:43:05 · 11644 阅读 · 0 评论 -
python3之输入输出格式
#encoding:utf-8#有多组输入数据,但组数不确定while True: try: a, b = map(int, input().split(' ')) #以空格隔开 print(a + b) #map(int, list)把每个list的元素转为int型 except EOF原创 2017-11-12 17:02:04 · 1654 阅读 · 0 评论 -
python中函数基本用法
#encoding: utf-8#定义函数def f(): print("hello")#函数的调用f()#传递实参def f(temp): print("hello " + temp)f('shihao')#返回字典 def build_person(first_name, last_name): person = {'first': first_name, '原创 2017-11-04 14:10:48 · 537 阅读 · 0 评论 -
python中类的基本用法
#encoding:utf-8#创建类class Dog(): def __init__(self, name, age): self.name = name self.age = age def sit(self): print(self.name.title() + " is now sitting.") de...原创 2017-11-04 16:10:06 · 537 阅读 · 0 评论 -
python文件和异常
#encoding:utf-8#读取文件'''关键字with在不再需要访问文件时将其关闭'''with open('pi_digits.txt') as file_object: contents = file_object.read() #read()把文件的全部内容读取成一个长长的字符串 print(contents.rstrip()) #rstrip()的作用是删原创 2017-11-05 14:54:27 · 365 阅读 · 0 评论 -
python3报错“ImportError: No module named ‘MySQLdb'”
MySQLdb只支持Python2,还不支持3可以用PyMySQL代替。安装方法:sudo pip install PyMySQL然后在需要的项目中,在 __init__.py中添加两行:import pymysqlpymysql.install_as_MySQLdb()就可以用 import MySQLdb了。其他的方法与MySQLdb一样。原创 2017-12-28 17:26:52 · 415 阅读 · 0 评论 -
python装饰器
装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动 的前提下增加额外功能,装饰器的返回值也是一个函数对象。 概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。#encoding=utf-8#使用装饰器对无参的函数进行装饰def w1(func): def inner(): print("正在验证需要验证的东西") ...原创 2018-03-06 20:38:05 · 334 阅读 · 0 评论 -
迭代器
'''我们已经知道,可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list、tuple、dict、set、str等;一类是generator,包括生成器和带yield的generator function。这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。可以使用isinstance()判断一个对象是否是Iterable对象可以被next()...原创 2018-03-09 13:44:41 · 177 阅读 · 0 评论 -
python切片,字符串的常见操作
python切片,字符串的逆序#encoding=utf-8 name = "abcdefghijklmn"age = 20print("%s的年龄为%d"%(name,age)) #abcdefghijklmn的年龄为20print("我的年龄为%d"%age) #我的年龄为20print(name[2:-2]) #输出为c...原创 2018-03-03 10:06:12 · 500 阅读 · 0 评论 -
使用matplotlib绘制简单的折线图
#encoding:utf-8#使用matplotlib绘制简单的折线图import matplotlib.pyplot as plt#绘制简单的折线图squares = [1, 4, 9, 16, 25]plt.plot(squares) #plot函数根据数字绘制出有意义的图形plt.show() #show函数打开matplotlib查看器,并显示绘制的图形#修改原创 2017-11-19 17:27:06 · 2601 阅读 · 0 评论