zoukankan      html  css  js  c++  java
  • 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]
  • 相关阅读:
    web前端的发展态势
    AngularJs 简单入门
    css代码优化篇
    git提交报错:Please make sure you have the correct access rights and the repository exists.
    Activiti工作流框架学习
    遍历map集合的4种方法
    js设置日期、月份增加减少
    Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    webservice_rest接口_学习笔记
    相互匹配两个list集合+动态匹配${}参数
  • 原文地址:https://www.cnblogs.com/minseo/p/13800822.html
Copyright © 2011-2022 走看看