def

笨方法学python练习与总结

妖精的绣舞 提交于 2020-12-12 13:31:03
  这是一篇根据书本《笨方法学python3》而来的博客,希望自己能在每天抽一点时间来学习python,使自己能够前后端都能得到进步。脚踏实地,一步一步!   在开始之前,希望自己的英语能够在不断地积累与代码练习中的得到提高,以及告诫自己,无论什么事,取是能力,舍是境界。 第一个程序 练习代码: print("Hello World!") #print("Hello Again") #print("I like typing this.") #print("This is fun.") #print("Yay! Printing.") #print("i`d much rather you 'not' .") #print('I "said" do not touch this.')    练习目的:使用python的打印方法,关于print这个方法其实有很深远的说法,待补充。 问题:由于作者希望读者能够摆脱ide的依赖,使用最原始的文本编辑器去进行python练习,所以在一开始无法运行自己编写的python程序。 解决:我们需要在我们自己写的python文件目录下执行 python3.x xxx.py才能将我们的程序运行起来。比如 lpthw/ex1.py 在编者的mac系统下就需要cd lpthw才可执行命令,运行python文件。 注释与#号 练习代码: # A

django框架基础

谁都会走 提交于 2020-12-12 07:56:08
内容: 1.课前复习 2.django路由规则 3.django视图函数 4.django ORM 5.模板 django预备知识: https://www.cnblogs.com/wyb666/p/9444150.html django基础参考: http://www.cnblogs.com/wupeiqi/articles/5237704.html 一、课前复习 1.HTTP协议消息格式 1 请求(request): 2 请求方法 路径 HTTP/1.1 \r\n 3 k1:v1\r\n 4 ...\r\n 5 \r\n 6 请求体 <-- 可以有,可以没有 7 8 响应(response): 9 HTTP/1.1 状态码 状态描述符\r\n 10 k1:v1\r\n 11 Content-Type: text/html; charset= utf8\r\n 12 \r\n 13 响应正文 <-- HTML内容 2.python的web框架本质 收发socket消息 --> 按照HTTP协议消息格式去解析消息 路径和要执行的函数的对应关系 --> 主要的业务逻辑 字符串替换 --> 模板(特殊符号 --> 数据) 3.一个完整的请求过程: 启动服务端,等待客户端(用户的浏览器)来连接 在浏览器地址栏输入URL,与服务端建立连接,浏览器发送请求 服务端收到请求消息,解析请求消息

Spark累加器(Accumulator)陷阱及解决办法

匆匆过客 提交于 2020-12-12 07:37:18
累加器(accumulator)是Spark中提供的一种分布式的变量机制,其原理类似于mapreduce,即分布式的改变,然后聚合这些改变。 累加器的一个常见用途是在调试时对作业执行过程中的事件进行计数。 Spark内置的提供了Long和Double类型的累加器。下面是一个简单的使用示例,在这个例子中我们在过滤掉RDD中奇数的同时进行计数,最后计算剩下整数的和。 1 val sparkConf = new SparkConf().setAppName("Test").setMaster("local[2]" ) 2 val sc = new SparkContext(sparkConf) 3 val accum = sc.longAccumulator("longAccum") // 统计奇数的个数 4 val sum = sc.parallelize(Array(1,2,3,4,5,6,7,8,9),2).filter(n=> { 5 if (n%2!=0) accum.add(1L ) 6 n%2==0 7 }).reduce(_+ _) 8 9 println("sum: "+ sum) 10 println("accum: "+ accum.value) 11 12 sc.stop() 结果为: sum: 20 accum: 5 这是结果正常的情况

Python虚拟机之异常控制流(四)

感情迁移 提交于 2020-12-12 07:33:57
Python虚拟机中的异常控制流 先前,我们分别介绍了 Python虚拟机之if控制流(一) 、Python虚拟机之for循环控制流(二) 和 Python虚拟机之while循环控制结构(三) 。这一章,我们来了解一下异常机制在Python虚拟机中的实现 首先,我们来看下面的代码: # python2.5 >>> 1 / 0 Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: integer division or modulo by zero    1 / 0在Python中一定会抛出异常,这个异常时ZeroDivisionError。现在,我们来看一下1 / 0对应的字节码指令: # cat demo5.py 1 / 0 # python2.5 …… >>> source = open("demo5.py").read() >>> co = compile(source, "demo5.py", "exec") >>> import dis >>> dis.dis(co) 1 0 LOAD_CONST 0 (1) 3 LOAD_CONST 1 (0) 6 BINARY_DIVIDE 7 POP_TOP 8 LOAD_CONST 2 (None) 11

Django框架基础

独自空忆成欢 提交于 2020-12-12 07:28:12
Django框架简介   MVC框架(Model View Controller)   Django框架的设计模式借鉴了MVC框架的思想,不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),即MTV框架   Django框架的MTC模式:   Model(模型):负责业务对象与数据库的对象(ORM)   Template(模版):负责如何把页面展示给用户   View(视图):负责业务逻辑,并在适当的时候调用Model和Template   此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template APP   一个Django项目可以分为很多个APP,用来隔离不同功能模块的代码 # 使用命令行创建app python manage.py startapp app01   使用pycharm创建   在下方弹出的命令窗口输入 startapp app01 路由系统   URL配置就像Django所支撑网站的目录,它的本质是URL与要为该URL调用的视图函数之间的映射表 # 基本格式 from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数, 参数, 别名), ] #

爬虫学习:request+xpath爬取笔趣阁小说

故事扮演 提交于 2020-12-12 07:16:50
爬虫入坑一段时间了,准备搞点事,嘿嘿 注意:阅读本文要有一定的python基础,了解Requests和Xpath相关语法,以及正则表达式 1.关于Requests和Xpath Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库 如果你看过文章关于urllib库的使用,你会发现,其实urllib还是非常不方便的,而Requests它会比urllib更加方便,可以节约我们大量的工作。(用了requests之后,你基本都不愿意用urllib了)一句话,requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库。 Xpath XPath即为 XML 路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于 XPointer 与 XSL 间的语法模型。但是XPath很快的被开发者采用来当作小型 查询语言 。 2.代码 # 正则+request+xpath from lxml import etree import requests import re import warnings import time

[Python] Django框架入门2——深入模型

余生颓废 提交于 2020-12-12 07:16:13
说明:   本文主要深入了解模型(models.py),涉及ORM简介、模型定义、模型成员、模型查询、自连接等。需要一定基础,可以先走一走基本入门流程。   附录一使用mysql数据库,附录二Django开发流程。 目录:   一、ORM简介     ORM简介     二、模型定义     1、基本模型     2、字段类型     3、字段选项     4、关系     5、元选项   三、模型成员     1、查询     2、Django默认的管理器     3、自定义管理器   四、模型查询     1、查询集     2、字段查询     3、   五、自连接   附录一:使用mysql   附录二:Django开发流程    一、ORM简介(引用,详情请查阅相关文档)   ORM(Object Relational Mapping)即是"对象-关系-映射"的简称,是MVC框架一个重要的部分(Django也支持ORM),它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置可以轻松更换数据库。   ORM的作用:     根据对象的类型生成表结构     将对象、列表的操作,转换成sql语句     将sql查询到的结果转换为对象、列表   使用ORM主要方便开发人员,极大减轻开发人员的工作量,避免手写sql语句出现的各种问题。  

Django框架基础知识06-模型基础

岁酱吖の 提交于 2020-12-12 07:14:58
1.数据库的连接配置 django 连接mysql的配置流程: 安装 pymysql pip install pymysql 创建数据库用户 有创建数据库权限的用户 创建数据库 crm 修改配置 settins 修改项目文件夹(和settings.py文件所在的目录)下 init .py 文件 写上:     import pymysql pymysql.install_as_MySQLdb() 设置时区 TIME_ZONE = 'Asia/ShangHai' # 北京时间 2.django的ORM系统 -对象关系映射(Object Relational Mapping,简称ORM)! 简单的说就是用面向对象的方式,描述数据库,操作数据库, 达到不用编写SQL语句就能对数据库进行增删改查。 3.模型的创建与激活 创建模型 Student的模型,代表学生 总结: 1. 每一个模型都是django.db.models.Model的子类 2. 类变量 表示模型中的数据库字段 3. 每一个字段有一个字段类的实例表示如Charfield,DateTimeField 激活模型 1.在项目中注册app 2.运行数据库迁移命令(一定要在项目根目录下) python mange.py makemigrations teacher 告诉django,我们做了哪些数据库的更改 迁移 sqlmigrate

[LeetCode] 190. Reverse Bits 翻转二进制位

北战南征 提交于 2020-12-12 06:47:17
Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in binary as 00000010100101000001111010011100 ), return 964176192 (represented in binary as 00111001011110000010100101000000 ). Follow up: If this function is called many times, how would you optimize it? Related problem: Reverse Integer Credits: Special thanks to @ts for adding this problem and creating all test cases. 将输入转换成2进制字符串,再翻转并扩充到32位,再将此32位的二进制转为无符号整数 int 在内存中以二进制形式存储,占据32位。用一个 int 型整数 ans 来记录结果,采用移位操作,因为:1. 注意到移位操作比乘2、除2操作效率更高,2. 移位操作很好地绕开了整型运算的溢出以及符号问题。在每次循环中:ans 每次左移一位,当 n 的最低位为1时,ans

46. Permutations (全排列)

╄→гoц情女王★ 提交于 2020-12-12 06:45:47
Given a collection of distinct numbers, return all possible permutations. For example, [1,2,3] have the following permutations: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 运用递归。 1234为例子 for i in 1234:   1 + 234(的全排列)   2 + 134(的全排列)   3 + 124(的全排列)   4 + 123 (的全排列) 对应程序的17行 1 class Solution(object): 2 def __init__ (self): 3 self.res = [] 4 5 def permute(self, nums): 6 """ 7 :type nums: List[int] 8 :rtype: List[List[int]] 9 """ 10 self.help(nums, 0, len(nums)) 11 12 return self.res 13 14 def help(self, a, lo, hi): 15 if (lo == hi): 16 self.res.append(a[0:hi]) 17 for i in range(lo,