• PYTHON


    1. python主要应用领域

    1. WEB开发——最⽕的Python web框架Django, ⽀持异步⾼并发的Tornado框架,短⼩精悍的flask,bottle, Django官⽅的标语把Django定义为the framework for perfectionist withdeadlines(⼤意是⼀个为完全主义者开发的⾼效率web框架)
    2. ⽹络编程——⽀持⾼并发的Twisted⽹络框架, py3引⼊的asyncio使异步编程变的⾮常简单
    3. 爬⾍——爬⾍领域,Python⼏乎是霸主地Scrapy\Request\BeautifuSoap\urllib等,想爬啥就爬啥
    4. 云计算——⽬前最⽕最知名的云计算框架就是OpenStack,Python现在的⽕,很⼤⼀部分就是因为云计算
    5. ⼈⼯智能、数据分析—— Python 是⽬前公认的⼈⼯智能和数据分析领域的必备语⾔
    6. ⾃动化运维——问问你认识的每个运维⼈员,运维⼈员必须会的语⾔是什么?10个⼈相信会给你⼀个相同的答案,它的名字叫Python。知名的运维⼯具Ansible\Saltstack都是Python写的
    7. ⾦融分析——我个⼈之前在⾦融⾏业,10年的时候,我们公司写的好多分析程序、⾼频交易软件
      就是⽤的Python,到⽬前,Python是⾦融分析、量化交易领域⾥⽤的最多的语⾔
    8. 科学运算—— 97年开始,NASA就在⼤量使⽤Python在进⾏各种复杂的科学运算,随着NumPy,SciPy, Matplotlib, Enthought librarys等众多程序库的开发,使的Python越来越适合于做科学计算、绘制⾼质量的2D和3D图像。和科学计算领域最流⾏的商业软件Matlab相⽐,Python是⼀⻔通⽤的程序设计语⾔,⽐Matlab所采⽤的脚本语⾔的应⽤范围更⼴泛
    9. 游戏开发——在⽹络游戏开发中Python也有很多应⽤。⽐如知名的游戏<⽂明>、⽹易公司的《⼤话⻄游》 就是⽤Python写的

    2. 为何要装Python环境 ?

    因为你写的代码是⼈类可读的,但计算机是靠电流驱动的,它只认010100101,我们即将安装的python环境就是Python解释器,它就像个翻译官,把⼈类代码翻译成机器能读懂的010101⼆进制代码,这样才能运⾏哈。
    在这里插入图片描述

    3.变量

    代码文件需由解释器调用执行。
    在这里插入图片描述
    在这里插入图片描述

    3.1 变量定义

    变量名、变量值、内存地址
    在这里插入图片描述
    变量,是⽤于在内存中存放程序数据的容器。
    在这里插入图片描述
    程序是从上到下依次逐⾏执⾏的,所以变量必须先定义,后调⽤, 否则会报错
    在这里插入图片描述
    变量的定义规则:

    1. 在程序全局都会⽤到的变量,尽量定义在⽂件开头
    2. 变量名只能是 字⺟、数字或下划线的任意组合,其它形式均不合法
    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’], 这些是Python语法中已经占⽤了的关键字

    定义变量不好的⽅式

    1. ⽤拼⾳、中⽂做变量名
    2. 变量名过⻓
    3. 不能让⼈通过名字就能看出来是什么意思
    4. ⾸字⺟⼤写(⼤写是⽤来定义类名的,后⾯会学)

    3.2 变量的修改

    底层原理:
    1、将180本身的货架便签height(变量)撕掉贴到185货物上;
    2、180这个货物其实还是存在的,但是因为没有变量名所以找不到;
    3、垃圾处理机制就会定期清除这些没有标签的货物。
    在这里插入图片描述
    在这里插入图片描述
    del name 删除变量
    原理:晒出了变量(货架标签)但是货物(实实在在的值)还在。

    4.基本数据类型

    整数,浮点,字符串,布尔,列表,元组,字典,集合

    4.1 数字类型:不加引号

    **int(整型):**你存的所有的整数,都是这个类型

    >>> age_alex = 26
    >>> alex_salary = 500000000
    >>> type(age_alex),type(alex_salary) (, ) # 都是int类型
    
    • 1
    • 2
    • 3

    float (浮点型),即⼩数

    >>> type(2.32) 
    >>> type(-3.141592653) 
    
    • 1
    • 2

    4.2 字符串:在Python中,加了引号的字符都被认为是字符串!“str”

    >>> name = "Alex Li" #双引号
    >>> age = "22" #只要加引号就是字符串
    >>> age2 = 22 #int
    >>>
    >>> msg = '''My name is Alex, I am 22 years old!''' #我擦,3个引号也可以
    >>>
    >>> hometown = 'ShanDong' #单引号也可以
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    那单引号、双引号、多引号有什么区别呢? 让我⼤声告诉你,单双引号⽊有任何区别,只有下⾯这种情况 你需要考虑单双的配合

    msg = "My name is Alex , I'm 22 years old!"
    
    • 1

    多引号什么作⽤呢?作⽤就是多⾏字符串必须⽤多引号

    msg = '''
    今天我想写⾸⼩诗,
    歌颂我的同桌,
    你看他那乌⿊的短发,
    好像⼀只炸⽑鸡。
    '''
    print(msg)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    数字可以进⾏加减乘除等运算,字符串呢?让我⼤声告诉你,也能?what ?是的,但只能进⾏”相 加”和”相乘”运算。

    >>> name
    'Alex Li'
    >>> age
    '22'
    >>>
    >>> name + age #相加其实就是简单拼接
    'Alex Li22'
    >>>
    >>> name * 10 #相乘其实就是复制⾃⼰多少次,再拼接在⼀起
    'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

    >>> name = "Alex Li"
    >>> age = 23
    >>>
    >>> type(name),type(age) (, )
    >>> name + age # 字符串跟数字相加报错
    Traceback (most recent call last):
     File "", line 1, in 
    TypeError: cannot concatenate 'str' and 'int' objects
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.3 布尔类型

    就两个值 ,⼀个True(真),⼀个False(假), 主要⽤作逻辑判断

    >>> a=3
    >>> b=5
    >>>
    >>> a > b #不成⽴就是False,即假
    False
    >>>
    >>> a < b #成⽴就是True, 即真
    True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.4 列表list

    如果要把全班的⼈名在内存⾥存下来,⽤上⾯的字符串类型可以做到,但取的时候不⽅便。

    names = "Alex,Jack,Rain,Rachel,Mack..."
    
    • 1

    print(names) 它打印的是所有⼈的信息,如果想取出Rain,没办法(可以⽤字符串切割⽅式,但是很麻烦)。此时,⽤列表就⽐较合适。

    >>> names = ["Alex","Jack","Rain","Rachel","Mack"]
    >>> names[2] #为何names[2]就能取出Rain?
    'Rain'
    
    • 1
    • 2
    • 3

    因为列表的是通过下标来标记元素位置的,下标也可称为索引。 下标从0开始,每添加⼀个元素,就⾃动+1

    元素添加:元素的添加有2种⽅式,插⼊、追加,插⼊指可以可以把⼀个新元素插⼊到列表的任意位置

    >>> names
    ['Alex', 'Jack', 'Rain', 'Rachel', 'Mack']
    >>> names.insert(3,"⼩明") #3代表你想插⼊的下标位置
    >>> names
    ['Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack']
    >>>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    >>> names
    ['Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack']
    >>> names.append("⼩强")
    >>> names
    ['Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack', '⼩强']
    
    • 1
    • 2
    • 3
    • 4
    • 5

    列表的修改:直接根据下标找到元素重新赋值即可

    >>> names[0] = "⾦⻆⼤王Alex"
    >>> names
    ['⾦⻆⼤王Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack', '⼩强']
    
    • 1
    • 2
    • 3

    删除元素:有2种删除⽅法,⼀个是下标删除,⼀个是元素值删除。

    >>> names
    ['⾦⻆⼤王Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack', '⼩强']
    >>> names.remove("⼩明") # 通过指定元素名删除, 会删除从左开始找到的第⼀个⼩明, 如果有
    多个⼩明,则只删除找到的第⼀个。
    >>> names
    ['⾦⻆⼤王Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '⼩强']
    
    >>> del names[3] # 通过指定下标删除
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    判断某元素是否在列表⾥

    >>> names
    ['⾦⻆⼤王Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '⼩强']
    >>>
    >>> "Mack" in names
    True
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    5.运算符

    运算按种类可分为算数运算、⽐较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,我们暂只学习算数运算、⽐较运算、逻辑运算、赋值运算、成员运算

    5.1 算术运算符

    在这里插入图片描述

    5.2 比较运算符

    在这里插入图片描述

    5.3 赋值运算符

    在这里插入图片描述

    5.4 比较运算符

    在这里插入图片描述
    or的优先级更⾼,注意,我画的红线,只要遇到or 就相当于把公式分成2半了
    括号⾥的⼦公式会先计算出来结果,再跟其它的值对⽐。 因为括号的优先级更⾼。
    在这里插入图片描述

    5.5 成员运算:

    只有in, not in 2种, ⽤来测试数据中是否包含了⼀系列的成员
    在这里插入图片描述

    >>> names
    ['⾦⻆⼤王Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '⼩强']
    >>> "Jack" in names
    True
    >>> "Jack" not in names
    False
    >>> s = "我是沙河最帅的仔"
    >>> "沙河" in s
    True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    注意,可以⽤来测试字符串、列表、元组、字典、集合,但是不能测试数字类型

    6.读取用户输入,input

    若你的程序要接收⽤户指令,可以⽤input语法:
    在这里插入图片描述
    执⾏脚本就会发现,程序会等待你输⼊姓名后再往下继续⾛。
    可以让⽤户输⼊多个信息,如下
    在这里插入图片描述
    注意,input()⽅法接收的只是字符串,即使你输⼊的是数字,它也会按字符串处理
    在这里插入图片描述

    7.格式化打印

    注意字符串开头要加上 f ,才可以在⾥⾯⽤ {} 来引⽤外部变量
    在这里插入图片描述

    name = input("Name:")
    age = input("Age:")
    job = input("Job:")
    hobbie = input("Hobbie:")
    
    info = f'''
    ------------ info of {name} -----------
    Name : {name}
    Age : {age}
    job : {job}
    Hobbie: {hobbie}
    ------------- end -----------------
    '''
    
    print(info)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述

    8.流程控制之if…else…

    8.1 单分支

    在这里插入图片描述

    8.2 双分支

    在这里插入图片描述

    8.3 缩进

    上⾯的if代码⾥,每个条件的下⼀⾏都缩进了4个空格,这是为什么呢?这就是Python的⼀⼤特⾊,强制缩进,⽬的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成⽴后,去执⾏哪些代码呢?在其它的语⾔⾥,⼤多通过 {} 来确定代码块,⽐如C,C++,Java,Javascript都是这样。

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

    1. 顶级代码必须顶⾏写,即如果⼀⾏代码本身不依赖于任何条件,那它必须不能进⾏任何缩进
    2. 同⼀级别的代码,缩进必须⼀致
    3. 官⽅建议缩进⽤4个空格,当然你也可以⽤2个,如果你想被⼈笑话的话。

    8.4 多分支

    在这里插入图片描述练习:

    age_of_oldboy = 48
    guess = int(input(">>:"))
    if guess > age_of_oldboy :
     print("猜的太⼤了,往⼩⾥试试...")
    elif guess < age_of_oldboy :
     print("猜的太⼩了,往⼤⾥试试...")
    else:
     print("恭喜你,猜对了...")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    分数:
    在这里插入图片描述

    score=int(input("score="))
    if score>=90:
        print("A")
    elif score>=80:
        print("B")
    elif score>=60:
        print("C")
    elif score>=40:
        print("D")
    else:
        print("E")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    代码是从上到下依次判断,只要满⾜⼀个,就不会再往下⾛啦,这⼀点⼀定要清楚呀!

  • 相关阅读:
    SMT贴片加工厂之红胶工艺基本知识
    渗透测试-apt攻击与防御系列-解决无Meterpreter Shell添加虚拟路由映射第一季
    Python运算符、函数与模块和程序控制结构
    11-网络篇-DNS步骤
    ubuntu 20 安装 CUDA
    javaScript 内存管理机制
    数学建模竞赛最全竞赛案例分析总结
    WPS—JS宏笔记记录
    Redis的主从复制
    MySQL索引:作用、类型、设计原则、优化策略与常见陷阱
  • 原文地址:https://blog.csdn.net/weixin_43857827/article/details/126243752