def

Python: 根据利润计算奖金

大憨熊 提交于 2020-11-03 13:29:35
简述:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%, 高于100万元时,超过100万元的部分按1%提成. 提问:从键盘输入当月利润I,求应发放奖金总数? def reward(profit):   reward = 0.0   if profit<=10:     return profit*0.1   elif profit<=20 and profit>10:     return (profit-10)*0.075+1   elif profit<=40 and profit>20:     return (profit-20)*0.05+10*0.1+10*0.075   elif profit<=60 and profit>40:     return (profit-40)*0.03+20*0.05+10*0.075+10*0.1   elif profit<=100 and profit>60:     return (profit-60)*0.015+20*0.03

Python-闭包详解

南楼画角 提交于 2020-11-03 07:53:41
在函数编程中经常用到闭包。闭包是什么,它是怎么产生的及用来解决什么问题呢。给出字面的定义先: 闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)(想想Erlang的外层函数传入一个参数a, 内层函数依旧传入一个参数b, 内层函数使用a和b, 最后返回内层函数) 。这个从字面上很难理解,特别对于一直使用命令式语言进行编程的程序员们。本文将结合实例代码进行解释。 函数是什么 地球人都知道:函数只是一段可执行代码,编译后就“固化”了,每个函数在内存中只有一份实例,得到函数的入口点便可以执行函数了。在函数式编程语言中,函 数是一等公民(First class value:第一类对象,我们不需要像命令式语言中那样借助函数指针,委托操作函数),函数可以作为另一个函数的参数或返回值,可以赋给一个变量。函数可 以嵌套定义,即在一个函数内部可以定义另一个函数,有了嵌套函数这种结构,便会产生闭包问题。如: >>> def ExFunc(n): sum=n def InsFunc(): return sum+1 return InsFunc >>> myFunc=ExFunc(10) >>> myFunc() 11 >>> myAnotherFunc=ExFunc(20) >>> myAnotherFunc() 21 >>> myFunc() 11 >>>

【深度学习】卷积神经网络CNN——手写一个卷积神经网络

旧城冷巷雨未停 提交于 2020-11-02 16:04:51
卷积神经网络的前向传播 1.输入层---->卷积层   输入是一个4*4 的image,经过两个2*2的卷积核进行卷积运算后,变成两个3*3的feature_map 以卷积核filter1为例(stride = 1 ): 计算第一个卷积层神经元$ o_{11} $的输入: $$ \begin{align} net_{o11} \nonumber & = conv(input, filter)\nonumber\\ & = i_{11}\times h_{11}+i_{12}\times h_{12}+i_{21}\times h_{21}+i_{22}\times h_{22}\\ & = 1\times 1+0\times (-1)+1\times 1+1\times (-1) = 1\nonumber \end{align} $$ 神经元$ o_{11} $的输出:(此处使用Relu激活函数) $$ \begin{align} out_{o11} \nonumber & = activators(net_{o11})\\ & = max(0, net_{o11})=1 \end{align} $$ 其他神经元的计算方式相同 2.卷积层---->池化层 计算池化层$ m_{11} $的输入(取窗口为 2 * 2),池化层没有激活函数 $$ \begin{align} net_{m

python多线程爬取图片二

那年仲夏 提交于 2020-11-02 15:40:24
上一篇的多线程是使用类创建的,这一次使用函数创建多线程,还是同一个网站 https://www.quanjing.com/category/1286521/1.html, 代码如下: 1 # 多线程,自动创建文件夹,每个页面单独存储一个文件夹 2 3 import requests 4 import threading 5 import re 6 import time 7 import queue 8 import os 9 from bs4 import BeautifulSoup 10 11 12 string = ' https://www.quanjing.com/category/1286521/ ' 13 url_queue = queue.Queue() 14 pipei = re.compile( ' lowsrc="(.*?)" m= ' )        # 定义正则表达式,匹配出每一张图片的链接 15 16 17 def get_url(page):          # 根据传入的页面数,创建1-page每个页面的url 18 for i in range(1, page+1 ): 19 url = string + str(i) + ' .html '      # 拼接url 20 url_queue.put(url)            #

查找表_leetcode1

痞子三分冷 提交于 2020-11-02 13:53:41
#coding=utf-8 # 解题思路:查找表 适合只有唯一解的情况 20190302 找工作期间 class Solution( object): def twoSum( self, nums, target): """ :type nums: List[int] :type target: int :rtype : List[int] """ dic = {} for i, num in enumerate(nums): if num in dic: return [dic[num], i] else: dic[target - num] = i 来源: oschina 链接: https://my.oschina.net/u/4418331/blog/3609900

LeetCode 287. 寻找重复数 | Python

泪湿孤枕 提交于 2020-11-02 07:36:23
287. 寻找重复数 题目来源:力扣(LeetCode) https://leetcode-cn.com/problems/find-the-duplicate-number 题目 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 示例 1: 输入: [1,3,4,2,2] 输出: 2 示例 2: 输入: [3,1,3,4,2] 输出: 3 说明: 不能更改原数组(假设数组是只读的)。 只能使用额外的 O(1) 的空间。 时间复杂度小于 O(n2) 。 数组中只有一个重复的数字,但它可能不止重复出现一次。 解题思路 思路:二分查找 这里需要注意,题意中 说明 ,有 4 个提示。这里会限制一些方法,例如: 对数组排序,重复数相邻,根据这个就可以找到重复数(这里违背【不能更改原数组】) 使用哈希表,(这里违背【只能使用额外的 O(1) 算法】) ... 上面的方法,在没有限制的情况下,可以使用,但是在这里,由于题目给出了限制,所以暂不考虑。 先看本题,【给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n)】,这是题目中给定的前提。 根据这个前提,这里二分法的思路是先定一个数值(这里同样定 [left, right]

几种常用编码区别

筅森魡賤 提交于 2020-11-01 20:32:02
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。 ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。 其中: 0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。 32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。 65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。 后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高

Python经典习题100例(附PDF下载地址)

青春壹個敷衍的年華 提交于 2020-11-01 20:30:48
pk哥肝了一个月,从两本书《Python基础教程(第3版)》和《流畅的Python》里把知识点进行了汇总,整理成了 100 道 Python习题, Python 100题我已经整理成了 PDF 文档,需要文档的可以关注下方公众号「Python知识圈」并回复:“ 100 ” 获取文档。 关注后回复:“ 100 ” 获取 pdf 文档 作者:pk哥 公众号:Python知识圈 Python基础习题 怎么计算2的3次方 解法1:直接用运算符 ** >>> 2**3 8 解法2:用函数 pow >>> pow(2,3) 8 怎么找出序列中的最大最小值? 用内置函数 max 和 min >>> l = (123, 888, 666) >>> max(l) 888 >>> min(l) 123 怎么将字符列表转为字符串 用 join 方法,合并序列的元素 >>> l = [ 'Python' , 'Circle' , 'is' , 'ok' ] >>> j = ' ' .join(l) >>> j 'Python Circle is ok' 怎么快速打印出包含所有 ASCII 字母(大写和小写)的字符串 用 string 模块的方法 >>> import string >>> string.ascii_letters

一篇文章教会你利用Python网络爬虫获取分类图片

北慕城南 提交于 2020-11-01 19:00:25
【一、项目背景】 博海拾贝是一支互联网从业者在线教育的团队,扎根于中国教育行业以及互联网行业的创新和眼球中,打造专业体系化的互联网人在线教育平台。精心创作许多精彩的文章,提供了很多有趣的图片。 今天来教大家如何使用Python来爬取博海拾贝的图片,分类保存,写入文档。 【二、项目目标】 创建一个文件夹, 分类保存所有文章图片。下载成功,结果显示控制台。 【三、项目分析】 1、如何找到真正访问的地址,多网页请求? 滑动鼠标,观察网站,右键F12 。鼠标滚轮滑动加载新内容。如图: 点开随机网页 , 点开Request URL ,观察网址的规律。 https://bh.sb/page/1/ https://bh.sb/page/2/ https://bh.sb/page/3/ https://bh.sb/page/4/ 观察到,每增加一页page/{}/自增加1,用{}代替变换的变量,再用for循环遍历这网址,实现多个网址请求。 2. 反爬处理 1)获取正常的 http请求头,并在requests请求时,设置这些常规的http请求头。 2)使用 fake_useragent ,产生随机的UserAgent进行访问。 【四、涉及的库和网站】 1、网址如下: https://www.doutula.com/photo/list/?page={} 2、涉及的库: requests 、 lxml

强化学习_Deep Q Learning(DQN)_代码解析

断了今生、忘了曾经 提交于 2020-11-01 18:57:54
Deep Q Learning 使用gym的CartPole作为环境,使用QDN解决离散动作空间的问题。 一、导入需要的包和定义超参数 import tensorflow as tf import numpy as np import gym import time import random from collections import deque # #################### hyper parameters #################### # Hyper Parameters for DQN GAMMA = 0.9 # discount factor for target Q INITIAL_EPSILON = 0.5 # starting value of epsilon FINAL_EPSILON = 0.01 # final value of epsilon REPLAY_SIZE = 10000 # experience replay buffer size BATCH_SIZE = 32 # size of minibatch 二、DQN构造函数 1、初始化经验重放buffer; 2、设置问题的状态空间维度,动作空间维度; 3、设置e-greedy的epsilon; 4、创建用于估计q值的Q网络,创建训练方法。 5