zoukankan      html  css  js  c++  java
  • python-day01

    一、为什么要学python

      已经从事运维工作五年半的时间了,如今的收入也自我感觉良好。可是,本来以为学习网络技术以及服务器技术,只做运维,不懂开发也行,然而,就在准备重新寻找工作,渴望能够找到待遇更好的工作机会时。很遗憾,缺少代码能力的我确实没办法找到更好的工作机会,即使我已经工作了五年多,即使我也有相关的证书。

      但是,在这个时代的浪潮下,想拥有质的飞越,不会代码真的不可能。所以,我选择的python语言,作为我的入门语言。初衷只有一个,就是要寻找更好的工作机会!!!接触不一样的世界,让自己提升一个层次!!!

    二、python擅长的领域

      说实话,我并不知道python的擅长领域;作为我的入门语言,相对而言,我也只是知道python相对其他计算机语言而言更加容易入门。

    三、学python的前途

      根据我所了解的前途,python可以用于web开发、自动化运维开发、网络编程、科学计算、GUI图形开发;

      而我目前想从事的方向就是python的自动化运维方向。这样既不会将我之前学习的知识丢弃掉,也能够和之后学习的python知识结合起来,至于未来会如何发展,就随缘了;

      【运维会了开发后可以干什么?可以转开发,一个理由:开发赚钱!】

      1、帮助公司开发各种各样的自动化工具,定制开发各种开源软件

      2、帮助评估和优化各种技术架构

      3、开发公司的内部办公系统、CRM、网站等

      4、做个python全栈工程师(全栈就是指什么都能做)

    四、课程内容

      1、python语言基础

        数据类型

        流程控制

        常用模块

        函数、迭代器、装饰器

        递归、迭代、反射

        面向对象的编程

        购物车程序

        ATM信用卡程序开发

        模拟人生游戏开发

      2、网络编程

        socket c/s编程;Twisted异步网络架构;网络爬虫开发;

        多线程、多进程、协程gevent、selectpollepoll

        生产者消费者模型

        审计堡垒机系统开发

        FTP服务器开发

        批量命令,文件分布工具

        rabbitMQ消息队列、SqlAlchemy ORM

        类SaltStack配置管理工具开发

        ReidsMemcacheMongoDB缓存数据库

      3、web开发基础

        html/css基础

        Dom编程

        原生JS学习

        Jquery/EasyUi/AngulaJS

        Ajax异步加载

        Highchart画图

        BootStrap

      4、算法、设计模式

        冒泡、二叉树、哈希、拆半等常见的算法学习

        工厂模式、单例模式、享元模式、代理模式等常见设计模式学习

      5、PYweb框架

        MVC架构讲解

        自行开发一个WEB框架

        Django、Tornado、Flask、Bottle、WebPY框架学习

        Session/中间件/ORM/Cookie/CSRF/FORM...

        Restful API框架

        权限管理后台开发

        开发BBS论坛

        开发WEB聊天室

      6、项目实战

        购物商城开发

        主机管理+任务编排+运维审计堡垒机开发

        分布式类Nagios/Zabbix监控产品开发

        CMDB资产管理开发

        基于用户视角的网站访问质量检测分析平台开发

        Docker自动化管理平台开发

        OpenStack二次开发

    ====================分割线==========================

    python之路

    一、python是一个什么样的语言

      1、编译型/解释型

        说白了编译型语言就是先将代码全都翻译成计算所能识别的字符,然后再来运行;

        解释型语言则是计算机读一句,就翻译依据,相对而已,编译型语言会比解释型语言快上很对;python就是一种解释型语言;

      2、静态语言/动态语言

        不用指定变量类型的语言,就是一种动态语言;

        python能够自动的识别数据类型,当数据类型与所输入的数据不符合的时候,就会报错;而C语言则必须指定数据类型后才能为变量输入对应的数据;

      3、强类型定义语言/弱类型定义语言

        强类型语言指定了数据类型后,如果不做转换,则一直为原本数据类型,不会变更;

        而弱类型语言则对数据的数据类型定义比较模糊,一个数据可以属于多个数据类型,这样会造成很多不必要的错误;

    【python是一种解释型的动态强类型语言】

    二、python的优点与缺点

      优点:简单、高效、高级语言、可移植性强、可扩展性强、可嵌入型强

      缺点:相对于C语言来说比较慢、代码不是加密的(如果你对代码要求是保密,就不要使用python来做开发)、线程不能利用CPU(Global Interpreterlock)(也就是说你开发的程序,不管系统是几核CPU的,程序都只能使用一个【这个说的好像有点问题,不知道我理解的对不对;】)

    三、python解释器

      python语言需要通过解释器来运行;

      Cpython:C语言编写的python解释器,建议使用;

      Ipython:交互解释器

      PyPy:解释速度最快的解释器

      Jpython:Java环境下的解释器

      IronPython:.net语言环境下的解释器

      【如果是需要各种语言互相调用,是不需要使用解释器的。我们一般通过网络调用来实现不同平台上的python代码之间的互通】

    四、python的发展历史

      1991年、python诞生,创始人Gui叔;

      这里就应用一个连接吧:https://www.cnblogs.com/vamei/archive/2013/02/06/2892628.html

    五、python的下载与安装

      下载地址:https://www.python.org/downloads/

      我们这里选择3.x版本,因为python平台在2020年截止,不再维护2.x的平台;其中2.6和2.7的版本就是用来过度到3.x的两个过度版本;

      windows平台下的安装:

        双击安装,选中“添加到环境变量”;这样的话python在您的windows平台上的任何一个目录下都能运行;

    六、python的第一个程序“hello world”

    print("Hello World!")
    Hello World!

     【各种语言的“hello world”】

    C++语言
    #include
    <iostream> int main(void) { std::count << "Hello World!"; }
    C语言
    #include <stdio.h> int main(void) { print(" Hello World!"); return 0; }
    Java语言
    public
    class HelloWorld { public static void main (String args[]) { System.out.println("Hello World!") ; } }
    php语言
    <?php echo "Hello World!"; ?>
    Ruby语言
    put "Hello World!"
    GO语言
    package main
    import "fmt" func mian(){ fmt printf("Hello World! God Bless You!") }

    七、开发工具的使用--pyCharm

      通过pyCharm方便代码的调试;

      首先创建自己存放代码的目录-->再去创建项目object-->view下的toolbal勾上-->工具栏有一个“齿轮”进行设置

      

      从右到左依次为:运行程序(运行后,会在下方提示对话框下进行显示结果),代码调试(通过设置断点,一条代码一条代码的运行),“齿轮”对pyCharm进行设置

      设置新创建的python程序的起始代码;

      设置python程序的字符集,建议使用utf-8

      【所有的开发代码都写在一个object下面】

    八、变量与字符编码

      1、变量variables

        用来存放一些值的容器,就叫做变量;

    name = "Burnov"
    name2 = name
    print(name,name2)
    name2 = "Burnov's firend"
    print(name2)

         以上代码name被赋值了Burnov,name的变量值被赋予了name2变量,所以第一个print打印为Burnov,Burnov;

        而第二个name2被重新赋值后,第二个pirnt则打印为Burnov's firend;

        【变量是直接指向内存,而不是指向其他变量的,这有点类似于Linux下的硬连接原理】

      2、字符编码:

        用来将二进制字符装换为我们人类能看懂的字符集合;

        ASCII 标准字符码。有256位的空间,ASCII自己只使用了128位的空间,还剩下128位留给了第三世界的国家填充其字符结构;

        CB2312 中国的第一个字符集,收录了7000多个汉字;

        GBK1.0 CB2312的升级版本,收录了20000+的汉字以及相关的图标字符等;

        GB18030 CBK1.0的升级版本,收录了27000+的汉字,其中包括藏文,蒙文,维吾尔文等少数名族的字符;但是手机等嵌入式产品可能不支持这个字符集;

        Unicode 世界公有组织提供的一种字符集,避免了各个国家的标准无法统一的问题;但是影响了ASCII码所占空间的大小;

        utf-8 活动的unicod字符集,避免了英文字符集占有空间过大;规定了ASCII字符空间大小为1个字节,而汉字所占空间为3个字节大小;目前比较通用这种字符编码结构;

    #-*- coding:utf-8 -*-  #手动指定字符编码机构,可以写在默认代码里面;

      【注释的使用方法】

      # 用来注释单行

      '''xxx'''或"""xxx""" 用来注释多行内容;同时'''也可以用来赋值,如:info = '''xxx'''这样xxx所表示的多行内容都可以给info这个变量进行赋值;

      在python代码中单引号与双引号没有具体的区别,一般在套用的时候注意下就可以了;

    九、用户输入

      1、定义解释环境

      和Linux下的shell一样,在运行代码之前需要之间解释环境,最好使用下面的第一种方式,因为我们并不清楚python安装的默认路径(/usr/local/sbin/python)与/usr/bin解释器指定的路径不太一致;

    #!/usr/bin/env python
    #!/usr/bin/python

      2、input函数导入数据

      【注意:在输入数据的时候默认数据为字符类型,但是有时候python需要我们制定数据的具体数据类型,所以需要通过参数具体指定;例如:int(input("Age:"))】

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    #输入用户功能
    
    #定义变量
    Name = input("Name:")
    Age = input("Age:")
    
    #打印输出内容
    print(Name,Age)
    

      3、字符的调用方式做格式化输出

        a、%s字符类型调用  

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    #输入用户功能,并格式化输出
    
    #定义变量
    Name = input("Name:")
    Age = int(input("Age:"))    #指定Age变量为整型
    Job = input("Job:")
    Salary = input("Salary:")
    
    #指定格式化内容
    info = '''
    --------------info of %s--------------- Name:%s Age:%d Job:%s Salary:%s '''%(Name,Name,Age,Job,Salary) #其中%d表示整形变量 %s表示字符变量

    #最后输出info即可
    print(info)

        b、format()函数调用【默认建议使用format来做格式化调用】

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    #用户输入并格式化输出
    
    #定义变量 
    Name = input("Name:")
    Age = int(input("Age:"))   #指定Age变量为整型
    Job = input("Job:")
    Salary = input("Salary:")

    #指定格式化内容
    info = '''
    --------------info of {_name}---------------
    Name:{_name}
    Age:{_age}
    Job:{_job}
    Salary:{_salary}
    '''format(_name=Name
          _age=Age
          _job=Job
          _salary=Salary)

    #最后输出info
    print(info)

       在这种写法中format()函数是指定了新的变量,同时,也可以使用“{数字}”的方式来替换其中的数据,这里就不在详细描述了;

      4、输入密码指定为隐藏

        这里需要注意一点,就是默认情况下,pyCharm无法运行getpass()函数,需要去python的默认解释器下面运行该代码,才不会报错;

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    #使用getpass()函数,使输出的密码输入无法被看见
    
    #定义变量
    Name = input("Name:")
    Password = getpass.getpass("Password:")    #通过getpass()函数使输入密码无法被看见
    
    #打印输入内容
    print(Name,Password)
    

    十、循环语句

      这时候,我们来实现一个功能:猜测用户Burnov的真实年龄大小

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    #猜测Burnov的年纪
    
    #定义默认变量正确的年纪
    Burnov_age = 28
    
    #开始循环,指定猜测的次数
    Guess_age = int(input("Guess_age:"))
    
    count = 0    #count参数为循环计算器值,默认没循环一次需要加1
    while count < 3;    #while语句开始循环,并进行判断;
        if Guess_age == Burnov_age :
            print("yes,you get it")
            break    #猜中则break退出;
        elif Guess_age > Burnov_age :
            print("you think big")
        else :
            print("you think smaller")
        conut +=1    #count值加1后再比较,是否小于3,小于再继续进行循环,否则执行下面的代码
    else:
        print("you have tried too many times")
    

      1、while循环

        以上就是一个while循环语句,需要注意的的是默认的while循环如下:

    #!/usr/bin/python
    #-*- coding:utf-8 -*-
    #基本的while循环
    
    count = 0
    while True :
        print("count=",count)
        count +=1
        if count = 1000 :   #定义退出循环的条件,否则会一直循环 
            break
    

        所以在我们些while代码的时候,第一就要指定循环体,那些代码是需要循环执行的,第二个指定循环条件,第三指定循环值count,什么时候就不要再循环了通过count值来做判断,退出循环使用break

      2、for循环

       基本的for循环语句

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    #基本的for循环语句
    
    for i in range(10) :
        print("loop",i)
    

       指定步长

    for i in range(0,10,2) :    #range中表示0到10,中以2位步长来打印数值;
        print("loop",i)
    

       使用端点来做代码命令错误排查,这样可以一行一行的运行代码,来查找代码中的错误;

      *循环嵌套,对i进行循环i=0的时候内部代码运行一次,知道j到6后比较j>5则退出当前j的循环,在执行i的循环,直到i等于10则该段代码执行结束;

    for i in range(10) :
        print("----------",i)
        for j in range(10) :
            print(j)
            if j>5 :
                break
    
  • 相关阅读:
    javascript Ajax类
    C# 使注册表修改后立即生效
    MSSQL:创建临时表并赋值
    sql语句创建[表][列]带描述
    flash调用js中的方法,让js传递变量给flash (兼容 IE & FF)
    SQL中日期转换方法大全
    MSSQL:表变量的声明和赋值
    各种编程方面的CHM参考帮助手册(ADO参考手册、JavaScript参考手册、DHTML参考手册、TransactSQL参考手册、等等)
    vim命令的使用技巧
    Linux 如何启动mail邮件服务
  • 原文地址:https://www.cnblogs.com/BurnovBlog/p/10200181.html
Copyright © 2011-2022 走看看