前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python-day01

python-day01

作者头像
py3study
发布2020-01-19 15:59:26
5730
发布2020-01-19 15:59:26
举报
文章被收录于专栏:python3

一、为什么要学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、select\poll\epoll

    生产者消费者模型

    审计堡垒机系统开发

    FTP服务器开发

    批量命令,文件分布工具

    rabbitMQ消息队列、SqlAlchemy ORM

    类SaltStack配置管理工具开发

    Reids\Memcache\MongoDB缓存数据库

  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”

代码语言:javascript
复制
print("Hello World!")
Hello World!

 【各种语言的“hello world”】

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

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

  通过pyCharm方便代码的调试;

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

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

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

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

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

八、变量与字符编码

  1、变量variables

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

代码语言:javascript
复制
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个字节大小;目前比较通用这种字符编码结构;

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

  【注释的使用方法】

  # 用来注释单行

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

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

九、用户输入

  1、定义解释环境

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

代码语言:javascript
复制
#!/usr/bin/env python
#!/usr/bin/python

  2、input函数导入数据

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

代码语言:javascript
复制
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#输入用户功能

#定义变量
Name = input("Name:")
Age = input("Age:")

#打印输出内容
print(Name,Age)

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

    a、%s字符类型调用  

代码语言:javascript
复制
#!/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来做格式化调用】

代码语言:javascript
复制
#!/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的默认解释器下面运行该代码,才不会报错;

代码语言:javascript
复制
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#使用getpass()函数,使输出的密码输入无法被看见

#定义变量
Name = input("Name:")
Password = getpass.getpass("Password:")    #通过getpass()函数使输入密码无法被看见

#打印输入内容
print(Name,Password)

十、循环语句

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

代码语言:javascript
复制
#!/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循环如下:

代码语言:javascript
复制
#!/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循环语句

代码语言:javascript
复制
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#基本的for循环语句

for i in range(10) :
    print("loop",i)

   指定步长

代码语言:javascript
复制
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则该段代码执行结束;

代码语言:javascript
复制
for i in range(10) :
    print("----------",i)
    for j in range(10) :
        print(j)
        if j>5 :
            break
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/04/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、python擅长的领域
  • 三、学python的前途
  • 四、课程内容
    •   1、python语言基础
      •   2、网络编程
        •   3、web开发基础
          •   4、算法、设计模式
            •   5、PYweb框架
              •   6、项目实战
              • python之路
                • 一、python是一个什么样的语言
                  •   1、编译型/解释型
                  •   2、静态语言/动态语言
                  •   3、强类型定义语言/弱类型定义语言
                • 二、python的优点与缺点
                  • 三、python解释器
                    • 四、python的发展历史
                      • 五、python的下载与安装
                        • 六、python的第一个程序“hello world”
                          • 七、开发工具的使用--pyCharm
                            • 八、变量与字符编码
                              •   1、变量variables
                              •   2、字符编码:
                            • 九、用户输入
                              •   1、定义解释环境
                              •   2、input函数导入数据
                              •   3、字符的调用方式做格式化输出
                              •   4、输入密码指定为隐藏
                            • 十、循环语句
                              •   1、while循环
                              •   2、for循环
                          相关产品与服务
                          运维安全中心(堡垒机)
                          腾讯云运维安全中心(堡垒机)(Operation and Maintenance Security Center (Bastion Host))可为您的 IT 资产提供代理访问以及智能操作审计服务,为客户构建一套完善的事前预防、事中监控、事后审计安全管理体系,助力企业顺利通过等保测评。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档