<人生苦短,python是岸>

<人生苦短,python是岸>

作者:冯琳

起笔于:2019.08.01


python介绍

1.python的诞生与应用

1989年,Guido van Rossum在参加设计ABC(一种教学语言)后,萌生了想要开发一种新语言的想法。ABC是为非专业程序员设计的非常强大的计算机语言,也许是由于它并不开放,又也许是由于当时的信息传播并没有如今这么快,总之ABC没有被推广成功。

Guido van Rossum综合了ABC语言的优点,并且结合了Unix shell和C的习惯,创造除了一种新的语言——Python。

Python的命名也来自于Guido van Rossum最喜欢的一部英国喜剧:《蒙提·派森的飞行马戏团》(Monty Python and the Flying Circus)。由Python的命名就可以看出Guido van Rossum对它的珍爱,自从1989年Python诞生,这位耿直的工程师倾尽了30年的心血不断完善它,这才有了如今的Python。

目前python主要应用领域

  • 云计算: 云计算最火的语言, 典型应用OpenStack

  • WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django

  • 科学运算、人工智能: 典型库NumPy , SciPy, Matplotlib, Enthought librarys,pandas

  • 系统运维: 运维人员必备语言

  • 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测

  • 图形GUI: PyQT, WxPython,TkInter

2.python及相关软件的下载安装

python的安装

  1. 官网下载

  2. 自动添加环境变量

    1. 更改完成

      1. 点击安装即可

pycharm的下载安装

  1. 首先去Pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/download/#section=windows,下载PyCharm安装包,根据自己电脑的操作系统进行选择,对于windows系统选择下图的框框所包含的安装包。0

    1. 双击下载的安装包,进行安装,然后会弹出界面:

      1. 选择安装目录,Pycharm需要的内存较多,建议将其安装在D盘或者E盘,不建议放在系统盘C盘:

  1. 点击Next,进入下图的界面:

    Create Desktop Shortcut创建桌面快捷方式,一个32位,一个64位,小编的电脑是64位系统,所以选择64位。

    勾选Create Associations是否关联文件,选择以后打开.py文件就会用PyCharm打开。

  2. 点击Next,进入下图(默认安装即可):

    1. 耐心的等待两分钟左右,如下图:

  1. 之后就会得到下面的安装完成的界面:

    1. 选择Accept,进入下一步:

  1. 进入激活界面,选择第二个License server,如下图所示:

    之后在License server address中随意输入下面两个注册码中的任意一个即可,Pycharm新注册码1:http://idea.liyang.io或pycharm新注册码2:http://xidea.online,之后点击OK,便可以激活Pycharm了。

  2. 之后进入界面:

    11. 创建py文件:

    1. 最终书写代码并运行:

3.Git的基本概念/常用命令及实例

git命令

什么是仓库

在 Git 的概念中,仓库,就是你存在.git目录的那个文件夹内的所有文件,包括隐藏的文件,Git程序会再当前目录以及上级目录查找是否存在.git文件,如果存在,则会将.git目录存在的文件夹开始下的所有文件当成你需要管理的文件,所以,我们如果想将某个文件夹当做一个Git仓库,你可以在那个文件夹下通过终端(Window为Cmd或者PoewrShell或者Bash)来执行

git init

这样,你所期望的那个文件夹就成为了一个Git管理的仓库了

什么是版本

严格来讲,Git并不存在版本的概念,但人们也硬是发展出了这么个玩意,在Git中,计数基础是提交,即我们常说的Commit,我们每做一点更改便可以产生一次提交,当提交累计起来,可以作为产品定型时,就在当前的Commit上打上一个标记,将这个标记我们称之为版本多少多少,那么就算完成了一个版本,标记本身被称之为Tag,请注意,在Git中,版本仅仅只是某一个提交的标签,并没有其他意义,Git本身也仅有打标签的功能,并没有版本功能,版本功能是根据Tag来扩展的,Git本身并没有

什么是分支

这是Git中最重要的也是最常用的概念和功能之一,分支功能解决了正在开发的版本与上线版本稳定性冲突的问题在Git使用过程中,我们的默认分支一般是Master,当然,这是可以修改的,我们在Master完成一次开发,生成了一个稳定版本,那么当我们需要添加新功能或者做修改时,只需要新建一个分支,然后在该分支上开发,完成后合并到主分支即可

什么是提交

提交在Git中同样是非常重要的概念,Git对于版本的管理其实是对于提交的管理,在整个Git仓库中,代码存在的形式并不是一分一分的代码,而是一个一个的提交,Git使用四十个字节长度的16进制字符串来标识每一个提交,这基本保证了每一个提交的标识是唯一的,然后通过组织一个按照时间排序的提交列表,就组成了我们所说的分支,请注意,分支在本质上只是一个索引,所以,我们可以任意回退,修正,即使因为某些原因丢失了,也可以重建另外,关于Git的储存方式:Git是仅仅只储存有修改的部分,并不会储存整个文件,所以,请不要删除文件夹整个文件夹的内容,除非你确定你不再需要他,否则请勿删除

什么是同步

同步,也可以称之为拉取,在Git中是非常频繁的操作,和SVN不同,Git的所有仓库之间是平等的,所以,为了保证代码一致性,尽可能的在每次操作前进行一次同步操作,具体的为在工作目录下执行如下命令:

git pull origin master

其中origin代表的是你远程的仓库,可以通过命令 git remote -v 查看,master是分支名,如果你本地是其他分支,请换成其他分支的名字,另,因为远程仓库与你本地仓库可能存在冲突,故当存在冲突时,请参考进阶篇的如何处理冲突

什么是推送

和拉取一样,也是一个非常频繁的操作,当你代码有更新时,你需要更新到远程仓库,这个动作被称之为推送,执行的命令与拉取一样,只是将其中的pull这个单词改成push,同样,如果远程仓库存在你本地仓库没有的更新,则在推送前你需要先进行一次同步,如果你确定你不需要远程的更新,则在推送时加上 -f 选项,则可以强制推送,注:在协同开发中,我并不建议这么做,因为这样很可能覆盖别人的代码

推送代码示例:

git push origin master

强制推送代码示例:

git push origin master -f

什么是冲突

在使用Git开发时,如果只是一个人使用,那么基本不会产生冲突,但是在多人合作开发的情况下,产生冲突是很正常的一件事情,关于如何处理冲突,请参考进阶篇的如何处理代码冲突 这一小节

什么是合并

合并这个命令通常情况下是用于两个分支的合并,一般用于本地分支,远程分支多用Pull命令,该命令的功能是将待合并分支与目标分支合并在一起,注意,这个命令只会合并当前版本之前的差异,两个分支的提交历史会根据提交时间重新组织索引,故只可能会产生一次冲突但是会生成一个提交,如果你不想生成这次提交,加上 --base参数即可

什么是暂存

这个既是一个概念也是一个命令,其含义就是字面上的,作用就是可以将你当前正在进行的工作暂时存起来,然后在此基础上干别的事情,等你别的事情干完后,再转回来继续,注意,暂存只是针对你最后一次改动而言,即针对当前所在的版本的所有改动都算具体执行命令为:

  • 将当前改动暂存起来:

git stash
  • 恢复最后一次暂存的改动

git stash pop
  • 查看有多少暂存

git stash list

什么是撤销

撤销命令使用是非常频繁的,因为某些原因,我们不再需要我们的改动或者新的改动有点问题,我们需要回退到某个版本,这时就需要用到撤销命令,或者说这个应该翻译成重置更加恰当。具体命令如下: #####撤销当前的修改:

git reset --hard

请注意:以上命令会完全重置你的修改,如果你想保留某些文件,请使用checkout +文件路径 命令来逐一撤销修改

  • 如果你想重置到某一版本,可以将 --hard 改为具体的Commit的id如:

git reset 1d7f5d89346

请注意,这时你的修改仍然存在,只是你的最近一次提交的版本号变成了你要重置的版本,如果说你想完全丢弃修改,只需要加上 --hard参数就可以

python基础一

1.python是什么编程语言

编译型:一次性将所有程序编译成二进制文件。 缺点:开发效率低,不能跨平台。 优点:运行速度快。 :C,C++等等。

解释型:当程序执行时,一行一行的解释。 优点:开发效率高,可以跨平台。 缺点:运行速度慢。 :python ,php,等等。

python是一门动态解释性的强类型定义语言。

2.python2与python3区别

宏观上:python2 与 python3 区别: python2 源码不标准,混乱,重复代码太多, python3 统一 标准,去除重复代码。

3.注释

当行注释:# 被注释内容

多行注释:'''被注释内容''',或者"""被注释内容"""

4.变量

变量定义的规则:

  • 变量名只能是 字母、数字或下划线的任意组合

  • 变量名的第一个字符不能是数字

  • 以下关键字不能声明为变量名 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

  • 变量的定义要具有可描述性

5.常量

常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量

6.基础数据类型

  1. 字符串--str
    • 在python中,加了引号的字符都被认为是字符串!

    • 多引号什么作用呢?作用就是多行字符串必须用多引号

    • 字符串的拼接

      • 注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接

    • 字符串相乘,只能和数字类型相乘

  2. 整型--int

    主要用于运算,比较

  3. 布尔值--bool
    • 布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断

7.程序交互

  • 等待输入

  • 将你输入的内容赋值给了前面的变量

  • input出来的数据类型全部是str

8.流程控制(条件语句)

  • 单分支

    if 条件:
    	结果
    
  • 双分支

    if 条件:
    	结果
    else:
    	结果
    
  • 多选一或者不选

    if 条件:
        结果
    elif:
        结果
    elif:
        结果
    elif:
        结果
    elif:
        结果
    
  • 多选一

    if 条件:
        结果
    elif:
        结果
    elif:
        结果
    else:
        结果
    
  • 多if结构

    if 条件:
        结果
    if 条件:
        结果
    if 条件:
        结果
    
  • if的嵌套

    if 条件:
        if 条件:
            结果
        else:
            结果
    else:
        结果
    

9.缩进

Python的缩进有以下几个原则:

  • 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进

  • 同一级别的代码,缩进必须一致

  • 官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。

python基础二

1.while循环

while 条件:

循环体

如何终止循环

  • break -- 终止当前循环,并且break下方代码不会执行

  • continue --结束本次循环,下方代码不会执行,继续下一次循环(伪装成循环体最后一行代码)

while...else...语句

  • while循环通过改变条件和break能够终止循环

2.格式化输出

%s--- 占字符串的位置(数字,字符串,都能够进行填充)

%d-- 占数字的位置

%%---转义的作用,单纯的在格式化输出打出%

 

python3.6版本及以上才能使用

print(f"{},{},{}")
msg = f"""123
姓名:{input("name")}
年龄:{input("age")}
234"""
print(msg)

3.运算符

1.算术运算符

以下假设变量:a=10,b=20

2.比较运算符

以下假设变量:a=10,b=20

3.赋值运算符

4.逻辑运算

针对逻辑运算的进一步研究:

  1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

2 , x or y , x为真,值就是x,x为假,值是y;

x and y, x为真,值是y,x为假,值是x。

5.成员运算符

in 在

not in 不再

a = "alex"
if "b" not in a:
	print("不在")
else:
	print("在")

4.编码初识

win - 编码gbk

linux - 编码utf-8

mac - 编码utf-8

 

ascii码:

ASCII码(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统ASCII码中只包含英文字母,数字以及特殊字符与二进制的对应关系,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节)

  • 不支持中文

  • 1个字节

gbk(国标)

经实际测试和查阅文档,GBK是采用单双字节变长编码,英文使用单字节编码,完全兼容ASCII字符编码,中文部分采用双字节编码。

  • 英文一个字节

  • 中文两个字节

unicode(万国码)

  • 英文4个字节

  • 中文4个字节

utf-8

  • 英文1个字节

  • 欧洲2个字节

  • 亚洲3个字节

单位转换
8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024TB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
常⽤到TB就够了
posted @ 2019-08-03 12:33  冯琳  阅读(331)  评论(0编辑  收藏  举报