• Python基础


    Python的哲学: 明确,优雅,简单

    Python更强大,执行效率比shell该

    Python可以跨平台 可移植性好,标准统一,在不同的平台程序结果一样,但是shell可能不一样

    python模块丰富,应用场景更丰富

    顺应开发型运维

    Python起源

    python的创始人为Guido von Rossum(吉多·范·罗苏姆),俗称”龟叔“,荷兰人。1989年圣诞节期间,在阿姆斯
    特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中
    Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。

    ABC是由Guido参加设计的一种教学语言。是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,
    Guido 认为是其非开放(封闭,不开源)造成的。Guido决心在Python中避免这一错误。同时他还想实现在ABC 中闪现
    过但未曾实现的东西。就这样,Python在Guido手中诞生了。

    python的优缺点

    python优点:
    1. 简单,易学,易懂,开发效率高:Python容易上手,语法较简单。在linux上和写shell一样,拿着vi都可以写,直接
    就可以运行。
    2. 免费、开源:我们运维用的大部分软件都是开源啊,亲!
    3. 可移植性,跨平台:Python已经被移植在许多不同的平台上,Python程序无需修改就可以在
    Linux,Windows,mac等平台上运行。
    4. 可扩展性:如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或
    C++编写,然后在你的Python程序中使用它们(讲完编译型语言和解释型语言区别就容易理解了)。
    5. 丰富的库: 想产生个随机数? 调库啊。想操作os? 调库啊。想操作mysql? 调库啊调库君。。。。。。Python
    的库太丰富宠大了,它可以帮助你处理及应对各种场景应用。
    6. 规范的代码:Python采用强制缩进的方式使得代码具有极佳的可读性。
    
    python缺点:
    1. 执行效率慢 : 这是解释型语言(下面的解释器会讲解说明)所通有的,同时这个缺点也被计算机越来越强性能所
    弥补。有些场景慢个几微秒几毫秒,一般也感觉不到。
    2. 代码不能加密: 这也是解释型语言的通有毛病,当然也有一些方法可以混淆代码。
    

     Python应用场景

    1. 操作系统管理、服务器运维的自动化脚本
    一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。
    2. Web开发
    Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。Python定
    义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通信。一些Web框架,如
    Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂的Web程序。
    3. 服务器软件(网络软件)
    Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步
    网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软
    件。
    4. 游戏
    很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,
    Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。
    5. 科学计算
    NumPy,SciPy,Matplotlib可以让Python程序员编写科学计算程序。
    6. 其它领域
    无人驾驶,人工智能等

    解释型语言与编译型语言

    计算机只能识别机器语言(如:01010101001这种), 程序员不能直接去写01这种代码,所以要程序员所编写的程序
    语言翻译成机器语言。将其他语言翻译成机器语言的工具,称之为编译器。
    如:中国人 ---(翻译)----外国人
    编译器翻译的方式有两种,一种是编译,一种是解释。区别如下:

     正因为这样的区别,所以解释型语言开发效率高,但执行慢和无法加密代码。

    Python版本

    在centos7上默认自带的python版本为2.7.X

     python2.x 2020年终止维护
    python3.x 目前主流版本
    python官网下载地址:
    https://www.python.org/getit/

    第一个Python脚本

    1,使用vim

    #cat 1.py
    #!/usr/bin/python
    #-*- coding: utf-8 -*-
    print "hellow world"
    print ("hello world")
    print ("哈哈")
    

     执行方法一

    python 1.py
    

     执行方法二

    [root@node1 python]# chmod +x 1.py 
    [root@node1 python]# ./1.py 
    hellow world
    hello world
    哈哈
    

     2,使用python命令

    [root@node1 python]# python
    Python 2.7.5 (default, Apr  2 2020, 13:16:51) 
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> print ("hello world")
    hello world
    

     二、python相关软件安装与使用

    linux系统安装3.6.6

    下载

    wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
    

     安装

    linux系统如果gnome图形界面和开发工具都安装了,那么就还需要安装zlib-devel,openssl,openssl-devel这
    几个依赖包
    # yum install zlib-devel openssl openssl-devel
    # tar xf Python-3.6.6.tar.xz -C /usr/src/
    # cd /usr/src/Python-3.6.6/
    # ./configure --enable-optimizations
    编译第一步如果报错,十之八九是缺少依赖包
    # make --这一步时间较长(20-30分钟,视机器速度而定)
    编译第二步如果报错,有可能是系统兼容性的问题,换一个版本或编译参数试试(有人这一步可能会卡住,那么在前一步
    不加--enable-optimizations参数重试)
    # make install
    编译第三步几乎不会报错,除非你的安装路径空间不够了
    # ls /usr/local/bin/python3.6 --确认此命令
    # ls /usr/local/bin/pip3.6 --确认此命令,pip为python安装模块的命令

    嫌麻烦可以使用yum安装

    yum -y install python36
    

    windows安装

    参考

    https://www.cnblogs.com/minseo/p/8058888.html

    pycharm安装

    参考

    https://www.cnblogs.com/minseo/p/8075013.html

     

    python换行打印与不换行打印

     新建一个python脚本1.py  

    print("python")  

    python函数print默认最后输出回车

    如果要输出其他字符可以加参数end例如

    print("Hello", end="")

     python打印规则

    Python程序由多个逻辑行构成,

    一个逻辑行不一定为一个物理行(人眼看到的行)显式行连接:

    在物理行后跟反斜杠,代表此行连接下一行代码隐式行连接:

    () [] {} 在括号里换行会自动行连接字符串需要用引号引起来,单引双引都可以。

    带颜色打印  

    print("33[31;1;31mhello world33[0m")
    print("33[31;1;32mhello world33[0m")
    print("33[31;1;33mhello world33[0m")
    print("33[31;1;34mhello world33[0m")
    print("33[31;1;35mhello world33[0m")
    print("33[31;1;36mhello world33[0m")
    

     注释

    #单行注释

    ‘’‘ ’‘’

    “”“ ”“”多行注释

    Python代码规范

    Python 官方提供有一系列 PEP(Python Enhancement Proposals)
    文档其中第 8 篇文档专门针对 Python 的代码格式给出了建议,也就是俗称的 PEP 8
     文档地址:https://www.python.org/dev/peps/pep-0008


    变量(重点)

     什么是变量
    生活中,我们去超市买较多的东西时,会用到购物车。购物车的作用就是存放购买的商品,并且购买的东西是可变的。购物车在这里就是类似变量的作用。

    变量:在内存中开辟一块空间,存储规定范围内的值,值可以改变。通俗的说变量就是给数据起个名字,通过这个名字来访问和存储空间中的数据。

    变量的特点

     可以反复存储数据

    可以反复取出数据

    可以反复更改数据

    变量的命名规则

    • 变量名只能是字母、数字或下划线的任意组合
    • 变量名的第一个字符不能是数字
    • 变量名要有见名知义的效果, 如UserName,user_name
    • 变量名区分大小写
    • 以下关键字不能声明为变量名(关键字是python内部使用或有特殊含义的字符) ['False', 'None', 'True', 'and','as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if','import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

    打印上述关键字

    import keyword
    print(keyword.kwlist)
    

     变量的创建

    在python中,每一个变量在使用前都必须赋值,变量赋值以后变量就创建成功了

    变量名=值

    示例

    num=100
    num=num-10
    print(num)
    

     示例

    name1="daniel"
    print(id(name1))
    name2="daniel"
    print(id(name2)) ## id()函数用于获取对象内存地址;name1和name2得到的id相同,说明指向同一个内存空间
    

     两个变量值的交换

    其他语言需要借助第三个变量来实现两个变量值的交换

    示例

    a = 1
    b = 2
    print(a, b)
    a, b = b, a
    print(a, b)
    

     a与b变量值互换以后a=2 b=1

    变量的类型

    在程序中,为了更好的区分变量的功能和更有效的管理内存,变量也分为不同的类型。
    Python是强类型的动态解释型语言。
    强类型: 不允许不同类型相加。如整型+字符串会报错。
    动态:不用显式声明数据类型,确定一个变量的类型是在第一次给它赋值的时候,也就是说: 变量的数据类型是由值决定的。
    name = "zhangsan" # str类型
    age = 25 # 25没有加引号则为int类型加引号是str类型
    height = 1.8 # float类型
    marry = True # bool类型
    
    # 通过type()函数得知变量类型
    print(type(name))
    print(type(age))
    print(type(height))
    print(type(marry))
    

    运行输出

    <class 'str'>
    <class 'int'>
    <class 'float'>
    <class 'bool'>
    

     Python基本数据类型分类

     类型的转换

    转换函数  说明
    int(xxx) 将xxx转换为整数
    float(xxx) 将xxx转换为浮点型
    str(xxx) 将xxx转换为字符串
    list(xxx) 将xxx转换为列表
    tuple(xxx) 将xxx转换为元组
    dict(xxx) 将xxx转换为字典
    set(xxx) 将xxx转换为集合
    chr(xxx) 把整数[0-255]转换成对应的ASCII码
    ord(xxx) 把ASCII码转换成对应的整数[0-255]
  • 相关阅读:
    Exchange ProxyLogon漏洞分析
    Java安全之Dubbo反序列化漏洞分析
    c# 基础语法
    Java安全之Axis漏洞分析
    c# 反射调用
    Exchange CVE20200688代码执行漏洞分析
    Windows上使用pm2运行Net Core项目
    重新点亮shell————测试命令[六]
    重新点亮shell————sed其他命令[十一]
    重新点亮shell————awk 控制语句[十三]
  • 原文地址:https://www.cnblogs.com/minseo/p/13800822.html
Copyright © 2020-2023  润新知