def

python3数字、日期和时间

隐身守侯 提交于 2021-02-09 09:01:17
1、对数值进行取整 # 使用内建的round(value,ndigits)函数来取整,ndigits指定保留的位数,在取整时会取值在偶数上,如1.25取一位会取整1.2,1.26会取整1.3 In [1]: round(1.23,1 ) Out[ 1]: 1.2 In [ 2]: round(1.25,1 ) Out[ 2]: 1.2 In [ 3]: round(1.26,1 ) Out[ 3]: 1.3 In [ 4]: round(1.2645,3 ) Out[ 4]: 1.264 # 如果参数ndigits为负数的话会相应的取整到十位、白位和千位 In [1]: a = 1234567 In [ 2]: round(a,-1 ) Out[ 2]: 1234570 In [ 3]: round(a,-3 ) Out[ 3]: 1235000 # 通过格式化操作取小数精度 In [4]: x = 1.23456 In [ 5]: format(x, ' 0.2f ' ) Out[ 5]: ' 1.23 ' In [ 6]: ' value is {:0.3f} ' .format(x) Out[ 6]: ' value is 1.235 ' 2、执行精确的小数计算 # 在数学计算中由于CPU的浮点运算单元特性导致会引入微小的误差 In [11]: a = 4.2 In [ 12

scrapy-Redis 分布式爬虫

扶醉桌前 提交于 2021-02-09 00:10:48
案例1 :(增量式爬取)京东全部图书,自己可以扩展 爬取每一本电子书的评论 1.spider: # -*- coding: utf-8 -*- import scrapy from copy import deepcopy import json import urllib class JdSpider(scrapy.Spider): name = ' jd ' allowed_domains = [ ' jd.com ' , ' p.3.cn ' ] start_urls = [ ' https://book.jd.com/booksort.html ' ] def parse(self, response): dt_list = response.xpath( " //div[@class='mc']/dl/dt " ) # 大分类列表 for dt in dt_list: item = {} item[ " b_cate " ] = dt.xpath( " ./a/text() " ).extract_first() em_list = dt.xpath( " ./following-sibling::dd[1]/em " ) # 小分类列表 for em in em_list: item[ " s_href " ] = em.xpath( " ./a/@href " )

django Rest Framework----GenericAPIView 通用视图 GenericAPIView源码分析

吃可爱长大的小学妹 提交于 2021-02-08 14:49:54
一、GenericAPIView GenericAPIView扩展了APIView,为标准列表和详细视图添加了常见的行为。 提供的每个具体通用视图都是 一个 GenericAPIView 或多个mixin类 组合在一起而构建的。 例如: BookView视图类继承自: ListModelMixin:用于显示所有图书 CreateModelMixin:添加一本书 GenricAPIView:继承自APIView,提供as_view()等,获取当前视图类中queryset和serializer_class ,用于给ListModelMixin和CreateModelMixin使用。 class BookView( mixins.ListModelMixin, mixins.CreateModelMixin, generics.GenericAPIView ): queryset = models.Book.objects.all() serializer_class = BookModelSerializer def get(self,request, *args, ** kwargs): return self.list(request, *args, ** kwargs) def post(self,request,*args,** kwargs): return self

Python 基础

大憨熊 提交于 2021-02-08 13:26:33
零基础学Python,本文是我个人的随心笔记,希望对你有益! 注释 : 单行:#……   多行:单引号(’’’) 双引号(”””) 基本数据类型 : 整数:int;浮点数:float(只有这两种);str:字符串;bool:布尔类型;complete:复数;list:列表;tuple:元组;set:集合;dict:字典 1 >>> type(2 ) 2 < class ' int ' > 3 >>> type(1.1 ) 4 < class ' float ' > 5 >>> type(1+1.1 ) 6 < class ' float ' > 7 >>> type(2/2 ) 8 < class ' float ' > 9 >>> type(2//2 ) 10 < class ' float ' > 11 >>> 2//2 12 1 13 >>> 2/2 14 1.0 15 >>> 2*2 16 4 基本类型 type()用来获取该表达式的数据类型 //: 除并取整 / :除之后商有一位小数 1 print ( " I " , end= " " ) 2 print ( " love " , end= '' ) 3 print ( " you ! " ) # I love you !(没有换行) 进制转换 1 >>> 0b10 # 二进制 2 2 3 >>> 0o10 # 八进制

排球比赛规则

允我心安 提交于 2021-02-08 13:24:22
题目:赛制规定: 前四局比赛采用25分制,每个队只有赢得至少25分,并同时超过对方3分时,才胜一局。 正式比赛采用5局3胜制,决胜局的比赛采用15分制,一队先得8分后,两队交换场区,按原位置顺序比赛到结束。 在决胜局(第五局)之比赛,先获15分并领先对方2分为胜。 该问题的IPO描述如下: 输入:两个球员(球员A和球员B)的能力概率,模拟比赛的场次 处理:模拟比赛过程 输出:球员A和B分别赢得球赛的概率 程序如下: # -*- encoding:utf-8 -*- ''' 模拟排球竞技 @author: bpf ''' # 比赛规则: # 1. 采用5局3胜制 # 2. 前四局采用25分制,每个队只有在赢得至少25分,且同时超过对方2分时才胜一局 # 3. 决胜局(第五局)采用15分制,先获得15分,且同时超过对方2分为胜 from random import random def printInfo(): ''' 打印程序的功能信息 ''' print("\t\t这个程序模拟2个队伍A和B的排球竞技比赛!") print("\t 程序运行需要队伍A和B的能力值(0到1之间的小数表示)") def getInputs(): ''' 获得用户输入的参数 ''' a = eval(input("请输入队伍A的能力值(0~1):")) b = eval(input("请输入队伍B的能力值

django类视图简单使用和源码解析

天涯浪子 提交于 2021-02-08 12:29:32
django的类视图,CBV :   我们在开始接触django的时候,习惯于使用函数编写视图,即FBV。使用FBV时,我们只需要在路由匹配时,对应的路由下找到这个函数就可以了,这样做看似很和谐,但是有的时候,譬如说,当我们需要根据同一个url请求方法的不同而去执行不同的操作时,如果使用FBV去编写视图,那么我们就需要在视图函数中不断地去执行if request.method=='请求方法' 去判断要去执行什么内容,此时的代码就显得不是很优雅。但是此时如果我们使用CBV的方式来编写视图,同样的需求,代码就会显得优雅很多,下面就让我来介绍一下CBV的具体实现: 在django中使用CBV编写视图:   1、首先我们自定义的视图类需要继承django.views.View类   2、在视图类中定义以'请求方法名称小'写为名称的方法,这样在执行不同的请求方法的时候就回去自动执行对应的函数   3、在路由映射的时候,要执行这个试图类的as_view()方法,注意这个方法继承自django.views.View 示例代码如下: 'views.py'文件 :   from django.views import View   from django.http import HttpResponse   class UserInfoView(View):     def get(self,

爬虫

一个人想着一个人 提交于 2021-02-08 06:17:12
前戏 os.environ()简介 os.environ()可以获取到当前进程的环境变量,注意,是当前进程。 如果我们在一个程序中设置了环境变量,另一个程序是无法获取设置的那个变量的。 环境变量是以一个字典的形式存在的,可以用字典的方法来取值或者设置值。 os.environ() key字段详解 windows: 1 os.environ[ ' HOMEPATH ' ]:当前用户主目录。 2 os.environ[ ' TEMP ' ]:临时目录路径。 3 os.environ[PATHEXT ' ]:可执行文件。 4 os.environ[ ' SYSTEMROOT ' ]:系统主目录。 5 os.environ[ ' LOGONSERVER ' ]:机器名。 6 os.environ[ ' PROMPT ' ]:设置提示符。 linux: 1 os.environ[ ' USER ' ]:当前使用用户。 2 os.environ[ ' LC_COLLATE ' ]:路径扩展的结果排序时的字母顺序。 3 os.environ[ ' SHELL ' ]:使用shell的类型。 4 os.environ[ ' LAN ' ]:使用的语言。 5 os.environ[ ' SSH_AUTH_SOCK ' ]:ssh的执行路径。 内置的方式 原理

图像识别之物体识别

橙三吉。 提交于 2021-02-08 04:05:33
''' 物体识别 ''' import cv2 as cv import os import warnings import numpy as np import hmmlearn.hmm as hl warnings.filterwarnings( ' ignore ' , category= DeprecationWarning) np.seterr(all = ' ignore ' ) def search_objects(directory): directory = os.path.normpath(directory) if not os.path.isdir(directory): raise IOError( ' the directory ' + directory + ' doesnt exist! ' ) objects = {} for curdir, subdirs, files in os.walk(directory): for jpeg in (file for file in files if file.endswith( ' .jpg ' )): path = os.path.join(curdir, jpeg) label = path.split(os.path.sep)[-2 ] if label not in objects:

架构师训练营

◇◆丶佛笑我妖孽 提交于 2021-02-08 02:29:15
download: 架构师训练营 哪些人适合报名架构师训练营? 想跳槽到一线大厂做架构师 想要提高自己的系统架构能力 缺乏大项目架构认知 想要进阶成长为架构师却无从下手 想要开阔眼界,汲取专家的经验 传统 IT 开发人员想转型互联网开发 Q:参加架构师训练营,需要具备什么基础? 需要你具备最基本的编程技能和经验,想要在训练营有所收获,你还必须要善于思考,勤于思辨,积累收获。 Q:通过培训,我可以成为什么级别的架构师? 极客大学·架构师训练营区别于市面上任何一种架构培训课程,是李智慧老师基于多年的一线互联网大厂工作经验进行设计的。课程中的大厂架构案例,不仅仅让你练习了技能,同时也培养了你进入一线互联网大厂必备的思维能力。按照老师的路径规划,用心努力学习,就可以具备成为架构师和进入一线大厂的能力。 1。四位數字字母考證码的生成實例 復製代码 1 import random 2 if __name__ =="__main__": #四位數字字母考證码的生成 3 checkcode="" #保管考證码的變量 4 for i in range(4): 5 index=random.randrange(0,4) #生成一個0~3中的數 6 if index!=i and index +1 !=i: 7 checkcode +=chr(random.randint(97,122)) # 生成a

零基础入门前端开发工程师

那年仲夏 提交于 2021-02-07 18:42:05
download: 零基础入门前端开发工程师 本微专业由来自网易云音乐、网易邮箱、严选、考拉的一线前端开发专家联手打造,聚焦HTML、css、JavaScript、DOM四大核心知识技能模块,剖析网易明星产品真实案例,助你夯实基础,成为一名合格的前端开发人员 Q: 零基础可以学习这门微专业课程吗? A: 可以,这套课程就是为零基础学员而打造的,专门设置有《前端入门》章节,帮助零基础学员快速理清课程内容体系,提前熟悉前端开发工具、调试工具,并通过直观的案例展示,形成对前端领域整体的清晰认知。 1。四位数字字母验证码的生成实例 1 import random 2 if __name__ == " __main__ " : # 四位数字字母验证码的生成 3 checkcode= "" # 保存验证码的变量 4 for i in range(4 ): 5 index=random.randrange(0,4) # 生成一个0~3中的数 6 if index!=i and index +1 != i: 7 checkcode +=chr(random.randint(97,122)) # 生成a~z中的一个小写字母 8 elif index +1== i: 9 checkcode +=chr(random.randint(65,90) ) # 生成A~Z中的一个大写字母 10 else :