coding

python之路:Day01 --- Python基础1

一笑奈何 提交于 2020-01-24 06:56:23
本节内容   1.Python介绍   2.发展史   3.变量   4.用户输入   5.表达式 if...else语句   6.表达式 for 循环   7.表达式 while 循环   8.模块初识   9.数据类型初识   10.数据运算 一、Pyhon介绍   一、编译型与解释型语言   编译型语言是将源程序翻译成可执行的目标代码,翻译与执行是分开的;而解释型语言是对源程序的翻译与执行一次性完成,不生成可存储的目标代   码。这只是表象,二者背后的最大区别是:对解释型语言执行而言,程序运行时的控制权在解释器而不在用户程序;对编译型语言执行而言,运行时的  控制权在用户程序。   从字面上看,“编译”和“解释”的确都有“翻译”的意思,它们的区别则在于翻译的时机安排不大一样。打个比方: 假如你打算阅读一本外文书,而你不知  道这门外语,那么你可以找一名翻译,给他足够的时间让他从头到尾把整本书翻译好,然后把书的母语版交给你阅读;或者,你也立刻让这名翻译辅助  你阅读,让他一句一句给你翻译,如果你想往回看某个章节,他也得重新给你翻译。    两种方式,前者就相当于我们刚才所说的编译型:一次把所有的代码转换成机器语言,然后写成可执行文件;而后者就相当于我们要说的解释型。    二、静态语言与动态语言   动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说

一文带你了解 OAuth2 协议与 Spring Security OAuth2 集成!

蹲街弑〆低调 提交于 2020-01-23 09:30:50
OAuth 2.0 允许第三方应用程序访问受限的HTTP资源的授权协议,像平常大家使用 Github 、 Google 账号来登陆其他系统时使用的就是 OAuth 2.0 授权框架,下图就是使用 Github 账号登陆 Coding 系统的授权页面图: 类似使用 OAuth 2.0 授权的还有很多,本文将介绍 OAuth 2.0 相关的概念如:角色、授权类型等知识,以下是我整理一张 OAuth 2.0 授权的脑头,希望对大家了解 OAuth 2.0 授权协议有帮助。 文章将以脑图中的内容展开 OAuth 2.0 协议同时除了 OAuth 2.0 外,还会配合 Spring Security OAuth2 来搭建 OAuth2客户端 ,这也是学习 OAuth 2.0 的目的,直接应用到实际项目中,加深对 OAuth 2.0 和 Spring Security 的理解。 OAuth 2.0 角色 OAuth 2.0 中有四种类型的角色分别为: 资源Owner 、 授权服务 、 客户端 、 资源服务 ,这四个角色负责不同的工作,为了方便理解先给出一张大概的流程图,细节部分后面再分别展开: OAuth 2.0 大概授权流程 资源 Owner 资源 Owner可以理解为一个用户,如之前提到使用 Github 登陆 Coding 中的例子中,用户使用GitHub账号登陆Coding

Skr-Eric的数据分析课堂(二)--数据可视化(Matplotlib)(上)

三世轮回 提交于 2020-01-23 05:20:48
数据可视化(Matplotlib) 1.基本绘图 plot(水平坐标, 垂直坐标) 2.线型、线宽和颜色 plot(..., linestyle=线型, linewidth=线宽, color=颜色, ...) 线型:[-]/--/:/-./o/o-/... 线宽:0-oo color:dodgerblue/orangered/limegreen/red/blue/... # -*- coding: utf-8 -*- from __future__ import unicode_literals import numpy as np import matplotlib.pyplot as mp x = np.linspace(-np.pi, np.pi, 1000) cos_y = np.cos(x) / 2 sin_y = np.sin(x) mp.plot(x, cos_y, linestyle='--', linewidth=1, color='dodgerblue') mp.plot(x, sin_y, linestyle='-.', linewidth=3, color='orangered') mp.show() 3.设置坐标范围 xlim(水平坐标最小值,水平坐标最大值) ylim(垂直坐标最小值,垂直坐标最大值) 坐标范围越大,图形越小,反而反之。 # -*-

Python程序设计(第三版)约翰·策勒 编程练习课后答案(第五章)

前提是你 提交于 2020-01-23 02:00:34
5.2 某个CS教授给出了五分测验,等级为5-A, 4-B, 3-C, 2-D, 1-E, 0-F编写一个程序,接受测验分数作为输入,并打印出相应的等级。 # -*- coding: utf-8 -*- #gradeconvert.py def gradeconvert(): gradeLevel = "FEDCBA" #获取分数 grade = float(input("Enter the grade: ")) print("The converted grade level is: ", gradeLevel[grade]) gradeconvert() 5.3. 某个CS教授给出了100分的考试,等级为90-100: A、80-89: B、70-79: C、60-69: D、<60:F。编写一个程序,接受测验分数作为输入,并打印出相应的等级。 # -*- coding: utf-8 -*- #gradeconvert2.py def gradeconvert2(): gradeLevel = "FDCBA" #获取分数 grade = float(input("Enter the grade: ")) gradeLev = int(grade/10 - 5) if gradeLev < 0: print("The converted grade level is: F")

Python系列-python函数

偶尔善良 提交于 2020-01-22 20:44:36
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。 定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 函数内容以冒号起始,并且缩进。 return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。 语法 def functionname( parameters ): "函数_文档字符串" function_suite return [expression] 默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。 实例 以下为一个简单的Python函数,它将一个字符串作为传入参数,再打印到标准显示设备上。 def printme( str ): "打印传入的字符串到标准显示设备上" print str return 函数调用 定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。 这个函数的基本结构完成以后

Python GUI tkinter编程之Spinbox篇

一笑奈何 提交于 2020-01-22 18:50:13
1.第一个Spinbox #-*-coding:utf-8-*- ''' 与Entry类似,但可以指定输入范围值 第一个Spinbox ''' from tkinter import * root = Tk() Spinbox(root).pack() root.mainloop() 2.创建Spinbox时指定参数 from:最小值 to:最大值 increment:步距值 #-*-coding:utf-8-*- ''' 创建Spinbox时指定参数 from:最小值 to:最大值 increment:步距值 ''' from tkinter import * root = Tk() Spinbox(root, from_ = 0, to = 100, increment = 5 #设置增量值为5,这个与Scale的resolution意思相同 ).pack() root.mainloop() 3.设置Spinbox的值 values:指定Spinbox序列值,设置此值后,每次更新值将使用values指定的值 #-*-coding:utf-8-*- ''' 设置Spinbox的值 values:指定Spinbox序列值,设置此值后,每次更新值将使用values指定的值 ''' from tkinter import * root = Tk() sb = Spinbox(root,

Github Actions 通过 API 自动部署 Hexo

房东的猫 提交于 2020-01-22 08:27:42
本文为原创,转载请注明来源,欢迎大家关注 我的新博客 Hexo的自动部署 目前的主流方式: Travis CI:travis-ci.org 专门针对开源项目,Github 上所有的公开仓库都能够免费使用;travis-ci.com 针对私有及商业项目,新用户前 100 次构建是免费的,后面就要收费了。现在github私有库已经免费了!!! Githooks: 这个如果 vps 本地部署,配合 nginx ,还是很推荐的 Github Actions: 持续集成,自动执行软件开发工作流程 说明 前一阵玩 docker 的时候用 docker 搭建了 Hexo 环境,感觉像 Hexo 的环境搭建使用 docker 好笨重 本次使用的是 Github Actions ,就是因为其简单、无需VPS、公有仓库免费、私有仓库每个月2000分钟、还能体验这个新功能,本文采用的是 API 推送的方式,免去需要物理机申请ssh key的步骤,如果习惯了采用 SSH 方式,你可以去看看我的另外一篇文章 Github Actions 通过 SSH 自动部署 Hexo 。 静态网站部署其实哪家的Pages都可以,可以是github page、gitlab、coding、gitee、vps等等,这里以github和coding举例。 环境准备 流程:博客源码通过本地 git 备份到 blog 库,

我终于学会了使用python操作postgresql

落爺英雄遲暮 提交于 2020-01-22 03:52:38
一 前言 这篇文章不仅适合pgsql,更适合mysql,思路都是一致的,如果读者学会使用psycopg2操作pgsql,那么使用PyMySQL 操作mysql也是很简单;本篇文章涵盖内容广泛,提供的操作选择性很多,比如多种数据插入操作,防止sql注入方式,异常处理,sql语句打印处理,显示行号等操作,一篇文章真的收益匪浅;觉得知识追寻者文章不错,随手点赞谢谢。如果看了作者文章有收获,不关注都是耍流氓。 二 数据库连接 2.1 安装 psycopg2 # pip install psycopg2 2.2 连接数据库 每条完整的sql执行步骤如下,读者应谨记; 建立连接获得 connect 对象 获得游标对象,一个游标对象可以对数据库进行执行操作,非线程安全,多个应用会在同一个连接种创建多个光标; 书写sql语句 调用execute()方法执行sql 抓取数据(可选操作) 提交事物 关闭连接 # -*- coding: utf-8 -*- import psycopg2 # 获得连接 conn = psycopg2.connect(database="python", user="postgres", password="123456", host="127.0.0.1", port="5432") # 获得游标对象 cursor = conn.cursor() # sql语句 sql

python学习之day3学习笔记

拜拜、爱过 提交于 2020-01-22 01:15:48
一、集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集、差集、并集等关系 list_1=[1,2,3,3,3,34] list_1=set(list_1) print(list_1,type(list_1))#输出:{1, 2, 3, 34} <class 'set'> #求交集 list_2=set([1,3,4,4,4,4]) print(list_1.intersection(list_2))#输出:{1, 3} print(list_1&list_2)#输出:{1, 3} #并集 print(list_1.union(list_2)) print(list_1|list_2)#输出:{1, 2, 3, 34, 4} #差集 #在list_1中不在list_2中 print(list_1.difference(list_2)) print(list_1-list_2)#输出:{2, 34} #在list_2中不在list_1中 print(list_2.difference(list_1)) print(list_2-list_1)#输出:{4} #对称差集(并集减去交集) print(list_1.symmetric_difference(list_2)) print(list_1^list

\"Coding Interview Guide\" -- 仅用递归函数和栈操作逆序一个栈

安稳与你 提交于 2020-01-22 01:04:19
【 题目 】   一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能使用其它数据结构 【 分析 】   栈是一种操作受限的数据结构,只能从某一端进行插入和删除和访问元素。能进行插入删除和访问等操作的一端称为“栈顶”,相对的另一端,不能进行任何栈操作,称为栈底。栈中除了栈顶元素外,其它的栈元素都是不允许访问的。所以想要访问栈中其它元素,则只能将将栈中元素依次弹出直到该元素成为栈顶元素。   如果用一个递归函数来访问栈中元素,则可以实现从栈顶到栈底或者从栈底到栈顶的访问次序,这取决于你是在递归发生之前访问还是递归发生之后访问。一个递归函数可以以逆序的方式访问栈(即以从栈底到栈顶的次序访问栈元素),却不能实现将栈中元素逆序。此时,可以借助另外一个递归函数,试想,既然一个递归函数可以逆序访问栈,那用另外一个递归函数就可以将第一个递归得到的逆序元素序列再逆序压入栈中,例如栈中元素从栈顶到栈底元素分别为5、4、3、2、1,使用一个递归可以实现逆序访问,即1,2,3,4,5,然后用另外一个递归函数将1,2,3,4,5逆序压入栈中,注意是逆序,即第一个递归函数虽然最先访问1但是第二个递归函数却是将它最后压入栈。这样通过两个递归函数嵌套即可逆序一个栈