2018-07-15

一、git基本使用

git是linux发明者linus开发的一款新时代的版本控制系统,那什么是版本控制系统?熟悉编程的知道,我们在软件开发中源代码其实是最重要的,那么对源代码的管理就变得异常重要:比如为了防止代码的丢失,肯定本地机器与远程服务器都要存放一份,而且还需要有一套机制让本地可以跟远程同步;又比如我们经常是好几个人做同一个项目,都要做一份代码做更改,这个时候需要大家互不影响,又需要各自可以同步别人的别人的代码;又比如我们开发的时候免不了有bug,有时候刚发布的功能就出现了严重的bug,,这个时候需要紧急对代码进行还原;又比如随着我们版本迭送的功能越来越多,但是我们需要清楚的知道历史每一个版本的代码更改记录,甚至知道每个人历史提交代码的情况;等等类似以上的情况,这些都是版本控制系统能解决的问题。所以说版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统,对于软件开发领域来说版本控制是最重要的一环,而git毫无疑问是当下最流行、最好用的版本控制系统。

二、SVN与git最主要的区别?

  SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的是自己的电脑,所以首先要从中央服务器那里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式系统必须联网才能工作。

git是分布式控制系统,那么他就没有中央服务器的,每个人的电脑就是一个完整的版本库。这样工作的时候就不需要联网了,因为版本都是在自己的电脑上。

git如何安装?                                                 sudo apt install git

三、git分支

branch即分支的意思,分支的概念很重要,尤其是团队协作的时候,假设两个人都在做同一个项目,这个时候分支就是保证两人能协同合作的最大利器了。

执行git init初始化git仓库之后会默认生成一个主分支master,也是你所在的默认分支,也基本是实际开发正式环境下的分支,一般情况下master分支不会轻易直接在上面操作的,你们可以输入git branch查看下当前分支情况。

git checkout -b a(意思是新建一个a的分支,并且自动切换到a分支)

git merge(合并分支)

git branch -d/-D(删除/强制删除)

四、github是什么?

  github是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名github。

1、注册github官网「https://github.com」注册「Sign Up」个账号,注册页面如下:需要填用户名、邮箱、密码,值得一提的用户名请不要那么随便,最好取的这个名字就是你以后常用的用户名了,GitHub 有两种,一种是公开,这种是免费的,就是你创建的项目是开放的,所有人都能看得到;另一种是私有,这种是收费的,这种一般是很多企业在使用GitHub 的私有仓库在托管自己的项目,这也是 GitHub 的一种盈利模式对于个人你就直接默认选择公开的就行了。

2、一些github概念

(1)Repository

仓库的意思,即你的项目,你想在 GitHub 上开源一个项目,那就必须要新建一个 Repository ,如果你开源的项目多了,你就拥有了多个 Repositories 。

(2)Issue

问题的意思,就是你开源了一个项目,别人发现你的项目中有bug,或者哪些地方做的不够好,他就可以给你提个 Issue ,即问题,提的问题多了,也就是 Issues ,然后你看到了这些问题就可以去逐个修复,修复ok了就可以一个个的 Close 掉。

(3)star

这个好理解,就是给项目点赞,但是在 GitHub 上的点赞远比微博、知乎点赞难的多,如果你有一个项获得100个star都算很不容易了!

(4)Watch

这个也好理解就是观察,如果你 Watch 了某个项目,那么以后只要这个项目有任何更新,你都会第一时间收到关于这个项目的通知提醒。

(5)Gist

有些时候你没有项目可以开源,只是单纯的想分享一些代码片段,那这个时候 Gist 就派上用场了!

3、github提交代码

(1)SSH

  SSH是一种网络协议,用于计算机之间的加密登录。目前是每一台 Linux 电脑的标准配置。而大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,所以想要在 GitHub 提交代码的第一步就是要先添加 SSH key 配置。也就是远程连接,控制别人的电脑。

五、团队合作

1、什么是分支?

Git 相比于 SVN 最强大的一个地方就在于「分支」,Git的分支操作简直不要太方便,而实际项目开发中团队合作最依赖的莫过于分支了,关于分支前面的系列也提到过,但是本篇会详细讲述什么是分支、分支的具体操作以及实际项目开发中到底是怎么依赖分支来进行团队合作的。

2、分支基本常用操作

新建一个叫develop的分l支:git branch develop

切换develop分支:git checkout -d develop

把develop分支推送到远程仓库:git push origin develop

查看本地分支:git branch 

查看远程分支:git branch -r

删除远程分支:git push origin :develop

3、git  Flow

    我们都知道, 在 git 的分支功能相对 svn 确实方便许多,而且也非常推荐使用分支来做开发. 我的做法是每个项目都有2个分支, master和 develop. master 分支是主分支, 保证程序有一个 稳定版本, develop 则是开发用的分支, 几乎所有的功能开发,bug 修复都在这个分支上, 完成后 再合并回 master.但是情况并不是这么简单. 有时当我们正在开发一个功能, 但程序突然出现 bug 需要及时去修复的时候, 这时要切回 master 分支,并基于它创建一个 hotfix 分支. 有时我们在开发一个功能时, 需要停下来去开发另一个功能. 而且所有这些问题都出现 的时候,发布也会成为比较棘手问题.也就是说, git branch 功能很强大,但是没有一套模型告诉我们应该怎样在开发的时候善用 这些分支。

第二章  pycharm的初始设置

一、恢复pycharm的初始设置

1、PyCharm的配置信息是保存在用户家目录下的.PyCharmxxxx.x目录下的,xxxx.x表示当前使用的PyCharm的版本号

如果要恢复PyCharm的初始设置,可以按照以下步骤进行:

(1)关闭正在运行的PyCharm

(2)在终端中执行以下终端命令,删除PyCharm的配置信息目录:$ rm -r ~/.PyCharm2016.3

(3)重新启动PyCharm

2、第一次启动pycharm

(一)导入配置信息

  (1)在第一次启动PyCharm时,会首先提示用户是否导入之前的配置信息

  (2)如果是第一次使用,直接点击OK按钮

(二)选择许可协议

   (1)PyCharm 是一个付费软件,购买费用为199$ / 年或者19.90$ / 月

   (2)不过 PyCharm 提供了对学生和教师免费使用的版本

下载地址是:https://www.jetbrains.com/pycharm-edu/download/#section=linux

   (3)商业版本会提示输入注册信息,或者选择免费评估

(三)配置初始界面

     在初始配置界面,可以通过Editor colors and fonts选择编辑器的配色方案

(四)欢迎界面

     所有基础配置工作结束之后,就可以看到PyCharm的欢迎界面了,通过欢迎界面就可以开始开发 Python 项目了。

3、新建/打开一个python项目

3.1项目简介

3.1.1开发项目就是开发一个专门解决一个复杂业务功能的软件

3.1.2通常每一个项目就具有一个独立专属的目录,用于保存所有和项目相关的文件

3.1.3一个项目通常会包含很多源文件

3.2打开python项目

3.2.1直接点击Open按钮,然后浏览到之前保存Python 文件的目录,既可以打开项目

3.2.2打开之后,会在目录下新建一个.idea的目录,用于保存项目相关的信息,例如:解释器版本项目包含的文件等等

3.2.3第一次打开项目,需要耐心等待PyCharm对项目进行初始设置

3.3新建项目

1) 命名规则

以后项目名前面都以数字编号随着知识点递增,编号递增

  例如:01_Python 基础02_分支03_循环...

每个项目下的文件名都以hm_xx_知识点方式来命名

  其中xx是演练文件的序号

注意

  命名文件名时建议只使用小写字母数字下划线

  文件名不能以数字开始

通过欢迎界面或者菜单File/New Project可以新建项目

2) 演练步骤

  新建01_Python基础项目,使用Python 3.x 解释器

  在项目下新建hm_01_hello.pyPython 文件

  编写print("Hello Python")代码

第三章  多文件的演练

一、多文件项目的演练

1、开发项目就是开发一个专门解决一个复杂业务功能的软件

2、通常每一个项目就具有一个独立专属的目录,用于保存所有和项目相关的文件

3、一个项目通常会包含很多源文件

二、目标

在项目中添加多个文件,并且设置文件的执行

第四章  认识python

一、python的起源

  1989 年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为 ABC 语言的一种继承ABC 是由吉多参加设计的一种教学语言,就吉多本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是 ABC 语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在 Python 中避免这一错误,并获取了非常好的效果之所以选中 Python(蟒蛇) 作为程序的名字,是因为他是 BBC 电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者

1991 年,第一个 Python解释器诞生,它是用 C 语言实现的,并能够调用 C 语言的库文件。

二、解释器

  计算机不能直接理解任何机器语言以外的语言,将其他语言翻译成机器语言的工具,被称为编译器。编译器分两种:一个是编译,另一个是解释。两种方式之间的区别在于翻译时间点的不同。当编译器以解释方式运行的时候,也称之为解释器。

  编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如 C、C++

  解释型语言:解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句一句直接运行。在发布程序时,看起来省了道编译工序,但是在运行程序的时候,必须先解释再运行。

编译型语言和解释型语言对比

  速度—— 编译型语言比解释型语言执行速度快

  跨平台性—— 解释型语言比编译型语言跨平台性好

三、设计目标

一门简单直观的语言并与主要竞争者一样强大

开源,以便任何人都可以为它做贡献

代码像纯英语那样容易理解

适用于短期开发的日常任务

四、设计哲学

1、优雅 2、明确 3、简单

Python 开发者的哲学是:用一种方法,最好是只有一种方法来做一件事。

如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。

五、特点

Python 是完全面向对象的语言

函数、模块、数字、字符串都是对象,在 Python 中一切皆对象

完全支持继承、重载、多重继承

支持重载运算符,也支持泛型设计

Python拥有一个强大的标准库,Python 语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由 Python 标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML 处理等额外的功能

Python 社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖科学计算、人工智能、机器学习、Web 开发、数据库接口、图形系统多个领域。

六、优缺点

6.1优点

1)简单易学

2)免费开源

3)面向对象

4)丰富的库

5)可扩展性

6.2缺点

1)运行速度

2)国内市场较小

3)中文资料匮乏

第五章  注释

一、注释的作用

使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性。

二、单行注释(行注释)

1、以#开头,#右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用。

2、在代码后面增加的单行注释

在程序开发时,同样可以使用#在代码的后面(旁边)增加说明性的文字

但是,需要注意的是,为了保证代码的可读性,注释和代码之间至少要有两个空格

三、多行注释(块注释)

如果希望编写的注释信息很多,一行无法显示,就可以使用多行注释

四、什么时候需要使用注释?

1、注释不是越多越好,对于一目了然的代码,不需要添加注释

2、对于复杂的操作,应该在操作开始前写上若干行注释

3、对于不是一目了然的代码,应在其行尾添加注释(为了提高可读性,注释应该至少离开代码 2 个空格)

4、绝不要描述代码,假设阅读代码的人比你更懂 Python,他只是不知道你的代码要做什

第六章  算数运算符

一、计算机,顾名思义就是负责进行数学计算并且存储计算结果的电子设备。

二、算数运算符

算数运算符是运算符的一种

是完成基本的算术运算使用的符号,用来处理四则运算要在 Python 程序中使用多行注释,可以用一对 连续的 三个 引号(单引号和双引号都可以)

三、算数运算符的优先级

  和数学中的运算符的优先级一致,在 Python 中进行数学计算时,同样也是:

先乘除后加减

同级运算符是从左至右计算

可以使用()调整计算的优先级

以下表格的算数优先级由高到最低顺序排列

**/幂、*/%//(乘、除、取余数、取整数)、+/-(加、减)

第七章  程序执行原理

一、计算机三大件:CPU、硬盘、内存

二、程序执行原理

1、程序运行之前,程序是保存在硬盘中的

2、当要运行一个程序时

(1)操作系统会首先让CPU把程序复制到内存中

(2)CPU执行内存中的程序代码

2、python程序执行原理

1、操作系统会首先让CPU把Python 解释器的程序复制到内存中

2、Python 解释器根据语法规则,从上向下让CPU翻译Python 程序中的代码

3、CPU负责执行翻译完成的代码

三、程序的作用

程序就是用来处理数据的!

1、新闻软件提供的新闻内容、评论……是数据

2、电商软件提供的商品信息、配送信息……是数据

3、运动类软件提供的运动数据……是数据

4、地图类软件提供的地图信息、定位信息、车辆信息……是数据

5、即时通讯软件提供的聊天信息、好友信息……是数据

第八章  变量

一、变量的基本使用

(一)变量的定义

1、在 Python 中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建

2、等号(=)用来给变量赋值

  =左边是一个变量名

  =右边是存储在变量中的值

(二)变量的类型

在内存中创建一个变量,会包括:

变量的名称

变量保存的数据

变量存储数据的类型

变量的地址

(三)变量的输入

1、所谓输入,就是用代码获取用户通过键盘输入的信息

2、例如:去银行取钱,在 ATM 上输入密码

3、在 Python 中,如果要获取用户在键盘上的输入信息,需要使用到input函数

(四)变量的格式化输出

1、在 Python 中可以使用print函数将信息输出到控制台

2、如果希望输出文字信息的同时,一起输出数据,就需要使用到格式化操作符

3、%被称为格式化操作符,专门用于处理字符串中的格式

   包含%的字符串,被称为格式化字符串

   %和不同的字符连用,不同类型的数据需要使用不同的格式化字符

格式化字符    含义

  %s     字符串

  %d   有符号十进制整数

  %f  浮点数,%.2f,显示小数点后两位

  %%      输出%

第九章  变量的命名

一、标识符和关键字

(一)标识符

  标示符就是程序员定义的变量名、函数名、名字需要有见名知义的效果

1、标示符可以由字母、下划线和数字组成

2、不能以数字开头

3、不能与关键字重名

(二)关键字

1、关键字就是在Python内部已经使用的标识符

2、关键字具有特殊的功能和含义

3、开发者不允许定义和关键字相同的名字的标示符

可以通过命令查看:

  In [1]:importkeyword

  In [2]: print(keyword.kwlist)

二、变量的命名规则

  命名规则可以被视为一种惯例,并无绝对与强制 目的是为了增加代码的识别和可读性。

1、在定义变量时,为了保证代码格式,=的左右应该各保留一个空格

2、在Python中,如果变量名需要由二个或多个单词组成时,可以按照以下方式命名

(1)每个单词都使用小写字母

(2)单词与单词之间使用_下划线连接

   例如:first_name、last_name、qq_number、qq_password

(一)驼峰命名法

  当变量名是由二个或多个单词组成时,还可以利用驼峰命名法来命名

(一)小驼峰式命名法

  第一个单词以小写字母开始,后续单词的首字母大写

例如:firstName、lastName

(二)大驼峰式命名法

  每一个单词的首字母都采用大写字母

例如:FirstName、LastName、CamelCase

第十章  判断语句

一、开发中的应用场景

  生活中处处充满了选择:如果周末不下雨我就约朋友取爬山,否则就去教学楼大厅里面打太极;去菜市场买菜的时候比较一下,哪家的菜便宜就买哪家诸如此类;生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?

二、逻辑运算

1、在程序开发中,通常在判断条件时,会需要同时判断多个条件

2、只有多个条件都满足,才能够执行后续代码,这个时候需要使用到逻辑运算符

3、逻辑运算符可以把多个条件按照逻辑进行连接,变成更复杂的条件

4、Python 中的逻辑运算符包括:与 and/或 or/非 not三种

三、if语句进阶

3、1 elif

1、在开发中,使用if可以判断条件

2、使用else可以处理条件不成立的情况

3、但是,如果希望再增加一些条件,条件不同,需要执行的代码也不同时,就可以使用elif

第十一章  运算符

一、算数运算符

  是完成基本的算术运算使用的符号,用来处理四则运算

运算符   描 述

    +                 加

 -     减

     *                  乘

     /                 除

   //                  取整除

 %     取余除

     **                 幂

  在 Python 中*运算符还可以用于字符串,计算结果就是字符串重复指定次数的结果

In [1]:"-"*50Out[1]:'----------------------------------------'

二、比较(关系)运算符

五、运算符优先级

运算符             描述

==           检查两个操作数的值是否相           等,如果是,则条件成                                      立,  返回 True

!=          检查两个操作数的值是否不           相等,如果是,则条件成            立,返回 True

>          检查左操作数的值是否大于          右操作数的值,如果是,则条          件成立,返回 True

<          检查左操作数的值是否小于           右操作数的值,如果是,则           条件成立,返回 True

>=         检查左操作数的值是否大于           或等于右操作数的值,如果          是,则条件成立,返回 True

<=         检查左操作数的值是否小于          或等于右操作数的值,如果                                 是,则条件成立,返回 True

三、运算符的优先级

运算符    描述

**    幂 (最高优先级)

* / % // 乘、除、取余数、取整除

+ -      加法、减法

<= < > >=   比较运算符

== !=     等于运算符

= %= /= //= -= += *= **= 赋值运算符

not or and    逻辑运算符

第十二章   循环

一、程序的三大流程

在程序开发中,一共有三种流程方式:

顺序——从上向下,顺序执行代码

分支—— 根据条件判断,决定执行代码的分支

循环—— 让特定代码 重复执行

二、while循环基本使用

1、循环的作用就是让指定的代码重复的执行

2、while循环最常用的应用场景就是让执行的代码按照指定的次数重复执行

3、需求 —— 打印 5 遍Hello Python

4、思考 —— 如果要求打印 100 遍怎么办?

三、Python 中的计数方法

常见的计数方法有两种,可以分别称为:

自然计数法(从1开始)—— 更符合人类的习惯

程序计数法(从0开始)—— 几乎所有的程序语言都选择从 0 开始计数

因此,大家在编写程序时,应该尽量养成习惯:除非需求的特殊要求,否则 循环 的计数都从 0 开始

四、break 和 continue

break和continue是专门在循环中使用的关键字

break某一条件满足时,退出循环,不再执行后续重复的代码

continue某一条件满足时,不执行后续重复的代码

break和continue只针对当前所在循环有效

五、字符串中的转义字符

\t在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐

\n在控制台输出一个换行符

制表符的功能是在不使用表格的情况下在垂直方向按列对齐文本

转义字符         描述

\\           反斜杠符号

\'            单引号

\"            双引号

\n            换行

\t           横向制表符

\r             回车

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 张星星周末总结 一、 修改文件权限 | 序号 | 命令 | 作用 || 01 | chown | 修改拥有者 ||...
    幸而0407阅读 214评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,457评论 25 707
  • 在客车的旁边发现了一个被抛弃的装豆奶的纸杯。客车上载满了出去春游的孩子们。他们是学习跆拳道的。不知是哪个孩子,喝完...
    行者无疆颂阅读 135评论 0 0