python 订阅
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。 展开全文
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
信息
缩    写
py
作    者
Guido van Rossum
最新版本
稳定:3x:3.8.3 2x:2.7.18;测试:3.9.0a6 2.x:2.7.18rc1 [1]
最近更新时间
2020年04月28日
别    名
胶水语言
发行时间
1991年
中文名
蟒蛇
经典教材
Head First Python; Automate the Boring Stuff with Python
语言类型
高级语言
荣    誉
2017年度编程语言
外文名
Python
PythonPython简介及应用领域
Python是一种解释型脚本语言,可以应用于以下领域: [2] 
收起全文
精华内容
下载资源
问答
  • 爬虫微课5小时 Python学习路线

    万人学习 2018-07-10 13:28:05
    Python爬虫技术视频教程,该课程每堂课都有一个作业,包含的项目案例有家长帮142600条数据爬取与分析,全球天气数据抓取与分析,淘宝商品信息数据众数分析,12306余票查询,python软件打包exe与发布。学完此课程能让...
  • Python 基础(一):入门必备知识

    万次阅读 多人点赞 2019-10-29 19:39:54
    Python 入门必备知识,你都掌握了吗?

    1 标识符

    标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。

    以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 导入;双下划线开头的标识符,如:__xx,表示私有成员;双下划线开头和结尾的标识符,如:__xx__,表示 Python 中内置标识,如:__init__() 表示类的构造函数。

    2 关键字

    andexecnotassertfinallyor
    breakforpassclassfromprint
    continueglobalraisedefifreturn
    delimporttryelifinwhile
    elseiswithexceptlambdayield

    上面表中是 Python 中的关键字(保留字),我们在自定义标识符时不能使用关键字。

    3 引号

    Python 可以使用引号(')、双引号(")、三引号('''""")来表示字符串,引号的开始与结束须类型相同,三引号可以由多行组成。如下所示:

    id = '001'
    
    name = "张三"
    
    skill = '''
    唱歌
    跳舞'''
    
    skill = """
    唱歌
    跳舞"""
    

    4 编码

    Python2 中默认编码为 ASCII,假如内容为汉字,不指定编码便不能正确的输出及读取,比如我们想要指定编码为 UTF-8,Python 中通过在开头加入 # -*- coding: UTF-8 -*- 进行指定。

    Python3 中默认编码为 UTF-8,因此在使用 Python3 时,我们通常不需指定编码。

    5 输入输出

    Python 输出使用 print(),内容加在括号中即可。如下所示:

    print('Hello Python')
    

    Python 提供了一个 input(),可以让用户输入字符串,并存放到一个变量里。如下所示:

    name = input()
    print('Hi',name)
    

    6 缩进

    Python 不使用 {} 来控制类、函数、逻辑判断等,而是使用缩进,缩进的空格可变。如下所示:

    if True:
        print(True)
    else:
        print(False)
    

    7 多行

    Python 中一般以新行作为语句的结束标识,可以使用 \ 将一行语句分为多行显示。如下所示:

    a = 128
    b = 1024
    c = 512
    d = a + \
        b - \
        c
    

    如果包含在 []{}() 括号中,则不需要使用 \。如下所示:

    arr = {
        a,
        b,
        c
    }
    

    8 注释

    Python 中单行注释使用 #,多行注释使用三个单引号(''')或三个双引号(""")。如下所示:

    # 我是单行注释
    
    '''
    我是多行注释
    我是多行注释
    '''
    
    """
    我是多行注释
    我是多行注释
    """
    

    9 数据类型

    • 整数:可以为任意大小、包含负数

    • 浮点数:就是小数

    • 字符串:以单引号 '、双引号"、三引号 '''"""括起来的文本

    • 布尔:只有 TrueFalse 两种值

    • 空值:用 None 表示

    • 变量:是可变的

    • 常量:不可变

    10 运算符

    10.1 常用运算符

    运算符描述示例
    +相加a + b
    -相减a - b
    *相乘a * b
    /相除a / b
    %取模a % b
    **a**b 表示 a 的 b 次幂
    //取整除9 // 4 结果为 2
    ==是否相等a == b
    !=是否不等于a != b
    >是否大于a > b
    >=是否大于等于a >= b
    <=是否小于等于a <= b
    =简单的赋值运算符a = b + c
    +=加法赋值运算符a += b 等效于 a = a + b
    -=减法赋值运算符a -= b 等效于 a = a - b
    *=乘法赋值运算符a *= b 等效于 a = a * b
    /=除法赋值运算符a /= b 等效于 a = a / b
    %=取模赋值运算符a %= b 等效于 a = a % b
    **=幂赋值运算符a **= b 等效于 a = a ** b
    //=取整除赋值运算符a //= b 等效于 a = a // b
    &a & b
    |a | b
    ^异或a ^ b
    ~取反~a
    <<左移动a << 3
    >>右移动a >> 3
    and布尔类型与a and b
    or布尔类型或a or b
    not布尔类型非not a
    is判断两个标识符是否引用同一个对象a is b
    is not判断两个标识符是否引用不同对象a is not b

    10.2 运算符优先级

    运算符描述(由上至下对应优先级由高到低)
    **幂运算
    ~ + -取反、正号、负号
    * / % //乘、除、取模、取整除
    + -加法、减法
    >> <<右移、左移
    &
    ^ |异或、或
    <= < > >=比较运算符
    == !=是否等于、是否不等于
    = %= /= //= -= += *= **=赋值运算符
    is is not身份运算符
    in not in成员运算符
    not and or逻辑运算符

    基础

    Python 基础(二):基本语句
    Python 基础(三):我是一个数字
    Python 基础(四):字符串
    Python 基础(五):序列
    Python 基础(六):列表与元组
    Python 基础(七):字典与集合
    Python 基础(八):与时间相关的模块
    Python 基础(九):函数
    Python 基础(十):模块与包
    Python 基础(十一):面向对象
    Python 基础(十二):文件基本操作
    Python 基础(十三):os 模块
    Python 基础(十四):错误和异常
    Python 基础(十五):枚举
    Python 基础(十六):迭代器与生成器
    Python 基础(十七):装饰器
    Python 基础(十八):命名空间 & 作用域
    Python 基础(十九):数学相关模块
    Python 基础(二十):sys 模块
    Python 基础(二十一):argparse 模块
    Python 基础(二十二):正则表达式

    进阶

    Python 进阶(一):多线程
    Python 进阶(二):多进程
    Python 进阶(三):邮件的发送与收取
    Python 进阶(四):数据库操作之 MySQL
    Python 进阶(五):数据库操作之 SQLite
    Python 进阶(六): Excel 基本操作
    Python 进阶(七): Word 基本操作
    Python 进阶(八):XML 基本操作
    Python 进阶(九):JSON 基本操作
    Python 进阶(十):网络编程

    爬虫

    Python 爬虫(一):爬虫伪装
    Python 爬虫(二):Requests库
    Python 爬虫(三):BeautifulSoup库
    Python 爬虫(四):Selenium 框架
    Python 爬虫(五):PyQuery 框架
    Python 爬虫(六):Scrapy 爬取景区信息
    Python 爬虫(七):pyspider 使用
    Python 爬取知乎问答
    Python 爬取公众号文章
    Python 爬取 B 站《后浪》弹幕
    Python 爬取爱奇艺《民国奇探》弹幕
    用Python爬取英雄联盟(lol)全部皮肤
    Python 爬取豆瓣《南方车站的聚会》评论
    用Python爬取了三大相亲软件评论区,结果…
    爬取林丹和赵雅淇的微博评论,看看网友都说了些什么

    自动化

    Word 批量转 PDF
    Python 批量合并 Excel
    自动化神器!Python 批量读取身份证信息写入 Excel
    Python + Appium 自动化操作微信入门看这一篇就够了
    我用 Python 找出了删除我微信的所有人并将他们自动化删除了
    用Python实现定时自动化收取蚂蚁森林能量,再也不用担心忘记收取了
    用Python实现微信自动化抢红包,再也不用担心抢不到红包了

    数据分析

    Python 数据分析(一):NumPy 基础知识
    Python 数据分析(二):Matplotlib 绘图
    Python 数据分析(三):初识 Pandas
    Python 数据分析(四):Pandas 进阶
    Python 分析《龙岭迷窟》
    Python 绘制各种疫情图
    用 Python 分析电影《我和我的家乡》

    小游戏

    俄罗斯方块
    贪吃蛇
    坦克大战
    飞机大战
    开心消消乐

    趣味 Python

    当 Python 遇到微信
    我用 Python 把老板辞退了
    用 Python 写个七夕表白神器
    用 Python 实现微信自动回复
    骚操作 | 用 Python 实现 GIF 倒放
    用 Python 实现朋友圈中的九宫格图片
    用 Python 送上特殊的母亲节祝福
    Python 实现黑客帝国代码雨效果
    用 Python 下载抖音无水印视频
    用 Python 制作炫酷二维码及解析
    用Python画一棵带音乐的雪夜圣诞树
    我用 Python 画了一盘粽子送给大家
    用 Python 制作一个艺术签名小工具
    备战 618,用 Python 领取京东优惠券
    用 Python 写一个颜值测试小工具
    用 Python 画一个奸笑(滑稽)表情
    用 Python 实现一场环保无污染的烟花秀
    不到 20 行 Python 代码即可制作精美证件照
    不到 100 行 Python 代码即可实现换脸功能
    用 Python 将 QQ 好友头像生成「 五一快乐」
    一行命令给猎狐 F4 带口罩 & 检测是否带口罩
    用 Python 了解一下最炫国漫《雾山五行》
    用 Python 给自己的头像加一个小国旗(小月饼)
    还在为 520 发愁吗?教你用 Python 写个表白神器!

    Python 自学路线

    怎么自学python,大概要多久?(知乎高赞)


    展开全文
  • 吐血总结!50道Python面试题集锦(附答案)

    万次阅读 多人点赞 2019-07-05 20:56:12
    Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的50个问题。每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作。这些面试题涉及Python基础知识、...

    Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的50个问题。每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作。这些面试题涉及Python基础知识、Python编程、数据分析以及Python函数库等多个方面。

    Q1、Python中的列表和元组有什么区别?

    Q2、Python的主要功能是什么?

    Python是一种解释型语言。与C语言等语言不同,Python不需要在运行之前进行编译。

    Python是动态语言,当您声明变量或类似变量时,您不需要声明变量的类型。

    Python适合面向对象的编程,因为它允许类的定义以及组合和继承。Python没有访问说明(如C ++的public,private)。

    在Python中,函数是第一类对象。它们可以分配给变量。类也是第一类对象

    编写Python代码很快,但运行比较慢。Python允许基于C的扩展,例如numpy函数库。

    Python可用于许多领域。Web应用程序开发,自动化,数学建模,大数据应用程序等等。它也经常被用作“胶水”代码。

    Q3、Python是通用编程语言吗?

    Python能够编写脚本,但从一般意义上讲,它被认为是一种通用编程语言。

    Q4、Python是如何解释语言的?

    Python在运行之前不需要对程序进行解释。因此,Python是一种解释型语言。

    Q5、什么是pep?

    PEP代表Python Enhancement Proposal。它是一组规则,指定如何格式化Python代码以获得最大可读性。

    Q6、如何在Python中管理内存?

    python中的内存管理由Python私有堆空间管理。所有Python对象和数据结构都位于私有堆中。程序员无权访问此私有堆。python解释器负责处理这个问题。

    Python对象的堆空间分配由Python的内存管理器完成。核心API提供了一些程序员编写代码的工具。

    Python还有一个内置的垃圾收集器,它可以回收所有未使用的内存,并使其可用于堆空间。

    Q7、Python中的命名空间是什么?

    命名空间是一个命名系统,用于确保名称是唯一性,以避免命名冲突。

    Q8、什么是PYTHONPATH?

    它是导入模块时使用的环境变量。每当导入模块时,也会查找PYTHONPATH以检查各个目录中是否存在导入的模块。解释器使用它来确定要加载的模块。

    Q9、什么是python模块?Python中有哪些常用的内置模块?

    Python模块是包含Python代码的.py文件。此代码可以是函数类或变量。一些常用的内置模块包括:sys、math、random、data time、JSON。

    Q10、Python中的局部变量和全局变量是什么?

    全局变量:在函数外或全局空间中声明的变量称为全局变量。这些变量可以由程序中的任何函数访问。

    局部变量:在函数内声明的任何变量都称为局部变量。此变量存在于局部空间中,而不是全局空间中。

    Q11、python是否区分大小写?

    是。Python是一种区分大小写的语言。

    Q12、什么是Python中的类型转换?

    类型转换是指将一种数据类型转换为另一种数据类型。

    int()  - 将任何数据类型转换为整数类型

    float()  - 将任何数据类型转换为float类型

    ord()  - 将字符转换为整数

    hex() - 将整数转换为十六进制

    oct()  - 将整数转换为八进制

    tuple() - 此函数用于转换为元组。

    set() - 此函数在转换为set后返回类型。

    list() - 此函数用于将任何数据类型转换为列表类型。

    dict() - 此函数用于将顺序元组(键,值)转换为字典。

    str() - 用于将整数转换为字符串。

    complex(real,imag)  - 此函数将实数转换为复数(实数,图像)数。

    Q13、如何在Windows上安装Python并设置路径变量?

    要在Windows上安装Python,请按照以下步骤操作:

    从以下链接安装python:https://http://www.python.org/downloads/

    下载之后,将其安装在您的PC上。在命令提示符下使用以下命令查找PC上安装PYTHON的位置:cmd python。

    然后转到高级系统设置并添加新变量并将其命名为PYTHON_NAME并粘贴复制的路径。

    查找路径变量,选择其值并选择“编辑”。

    如果值不存在,请在值的末尾添加分号,然后键入%PYTHON_HOME%

    Q14、python中是否需要缩进?

    缩进是Python必需的。它指定了一个代码块。循环,类,函数等中的所有代码都在缩进块中指定。通常使用四个空格字符来完成。如果您的代码没有必要缩进,它将无法准确执行并且也会抛出错误。

    Q15、Python数组和列表有什么区别?

    Python中的数组和列表具有相同的存储数据方式。但是,数组只能包含单个数据类型元素,而列表可以包含任何数据类型元素。

    Q16、Python中的函数是什么?

    函数是一个代码块,只有在被调用时才会执行。要在Python中定义函数,需要使用def关键字。

    Q17、什么是__init__?

    __init__是Python中的方法或者结构。在创建类的新对象/实例时,将自动调用此方法来分配内存。所有类都有__init__方法。

    Q18、什么是lambda函数?

    lambda函数也叫匿名函数,该函数可以包含任意数量的参数,但只能有一个执行操作的语句。

    Q19、Python中的self是什么?

    self是类的实例或对象。在Python中,self包含在第一个参数中。但是,Java中的情况并非如此,它是可选的。它有助于区分具有局部变量的类的方法和属性。init方法中的self变量引用新创建的对象,而在其他方法中,它引用其方法被调用的对象。

    Q20、区分break,continue和pass?

    Q21、[:: - 1}表示什么?

    [:: - 1]用于反转数组或序列的顺序。

    Q22、如何在Python中随机化列表中的元素?

    可以使用shuffle函数进行随机列表元素。举例如下:

    代码输出为:

    Q23、什么是python迭代器?

    迭代器是可以遍历或迭代的对象。

    Q24、如何在Python中生成随机数?

    random模块是用于生成随机数的标准模块。该方法定义为:

    random.random()方法返回[0,1]范围内的浮点数。该函数生成随机浮点数。随机类使用的方法是隐藏实例的绑定方法。可以使用Random的实例来显示创建不同线程实例的多线程程序。其中使用的其他随机生成器是:

    randrange(a,b):它选择一个整数并定义[a,b]之间的范围。它通过从指定范围中随机选择元素来返回元素。它不构建范围对象。

    uniform(a,b):它选择一个在[a,b)范围内定义的浮点数

    normalvariate(mean,sdev):它用于正态分布,其中mean是平均值,sdev是用于标准偏差的sigma。

    使用和实例化的Random类创建一个独立的多个随机数生成器。

    Q25、range&xrange有什么区别?

    在大多数情况下,xrange和range在功能方面完全相同。它们都提供了一种生成整数列表的方法,唯一的区别是range返回一个Python列表对象,x range返回一个xrange对象。这就表示xrange实际上在运行时并不是生成静态列表。它使用称为yielding的特殊技术根据需要创建值。该技术与一种称为生成器的对象一起使用。因此如果你有一个非常巨大的列表,那么就要考虑xrange。

    Q26、如何在python中写注释?

    Python中的注释以#字符开头。也可以使用doc-strings(三重引号中包含的字符串)进行注释。

    Q27、什么是pickling和unpickling?

    Pickle模块接受任何Python对象并将其转换为字符串表示形式,并使用dump函数将其转储到文件中,此过程称为pickling。从存储的字符串中检索原始Python对象的过程称为unpickling。

    Q28、python中的生成器是什么?

    返回可迭代项集的函数称为生成器。

    Q29、你如何把字符串的第一个字母大写?

    在Python中,capitalize()函数可以将字符串的第一个字母大写。如果字符串在开头已经包含大写字母,那么它将返回原始字符串。

    Q30、如何将字符串转换为全小写?

    要将字符串转换为小写,可以使用lower()函数。

    Q31、如何在python中注释多行?

    注释多行代码时。所有要注释的行都要在开头前加#。还可以使用快捷方式来注释多行,就是按住Ctrl键并在每个想要包含#字符的地方左键单击并键入一次#。

    Q32、什么是Python中的文档Docstrings?

    Docstrings实际上不是注释,它们是文档字符串。这些文档字符串在三引号内。它们没有分配给任何变量,因此有时也用于注释。

    Q33、operators中的is、not和in各有什么功能?

    Operators是特殊函数,它们比较一个或多个值并产生相应的结果。其中is:当2个操作数为true时返回true(例如:“a”是'a')

    not:返回布尔值的倒数

    in:检查某个元素是否存在于某个序列中

    Q34、Python中help()和dir()函数的用法是什么?

    Help()和dir()这两个函数都可以从Python解释器直接访问,并用于查看内置函数的合并转储。

    help()函数:help()函数用于显示文档字符串,还可以查看与模块,关键字,属性等相关的使用信息。

    dir()函数:dir()函数用于显示定义的符号。

    Q35、当Python退出时,为什么不清除所有分配的内存?

    当Python退出时,尤其是那些对其他对象具有循环引用的Python模块或者从全局名称空间引用的对象并没有被解除分配或释放。

    无法解除分配C库保留的那些内存部分。

    退出时,由于拥有自己的高效清理机制,Python会尝试取消分配/销毁其他所有对象。

    Q36、Python中的字典是什么?

    Python中的内置数据类型称为字典。它定义了键和值之间的一对一关系。字典包含一对键及其对应的值。字典由键索引。

    Q37、如何在python中使用三元运算符?

    三元运算符是用于显示条件语句的运算符。这包含true或false值,并且必须为其评估语句。其基本语法为:

    三元运算符是用于显示条件语句的运算符。这包含true或false值,并且必须为其评估语句。其基本语法为:

    [on_true] if [expression] else [on_false] x,y = 25,50big = x if x <y else y

    Q38、为什么使用* args,** kwargs?

    当我们不确定将多少个参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数时,我们使用* args。**当我们不知道将多少关键字参数传递给函数时使用kwargs,或者它可以用于将字典的值作为关键字参数传递。标识符args和kwargs是一个约定,你也可以使用* bob和** billy。

    Q39、len()函数有什么作用?

    len()函数可用于确定字符串,列表,数组等的长度。

    Q40、在Python中split(),sub(),subn()功能。

    如果要修改字符串,Python的“re”模块提供了3种方法。他们是:

    split() - 使用正则表达式模式将给定字符串“拆分”到列表中。

    sub() - 查找正则表达式模式匹配的所有子字符串,然后用不同的字符串替换它们

    subn() - 它类似于sub(),并且还返回新字符串。

    Q41、什么是负指数,功能是什么?

    Python中的序列是索引的,它由正数和负数组成。积极的数字使用'0'作为第一个索引,'1'作为第二个索引,进程继续使用。

    负数的索引从'-1'开始,表示序列中的最后一个索引,' - 2'作为倒数第二个索引,序列像正数一样前进。

    负索引用于从字符串中删除任何换行符,并允许该字符串除了作为S [: - 1]给出的最后一个字符。负索引还用于显示索引以正确的顺序表示字符串。

    Q42、什么是Python包?

    Python包是包含多个模块的命名空间。

    Q43、如何在Python中删除文件?

    要在Python中删除文件,您需要导入OS模块。之后,您需要使用os.remove()函数。

    Q44、什么是python的内置类型?

    Python中的内置类型如下:整型、浮点型、复数、字符串、布尔等。

    Q45、NumPy中有哪些操作Python列表的函数?

    Python的列表是高效的通用容器。它们支持(相当)有效的插入,删除,追加和连接,Python的列表推导使它们易于构造和操作。

    它们有一定的局限性:它们不支持像素化加法和乘法等“向量化”操作,并且它们可以包含不同类型的对象这一事实意味着Python必须存储每个元素的类型信息,并且必须执行类型调度代码在对每个元素进行操作时。

    NumPy不仅效率更高; 它也更方便。你可以免费获得大量的向量和矩阵运算,这有时可以避免不必要的工作。它们也得到有效实施。

    NumPy数组更快,你可以使用NumPy,FFT,卷积,快速搜索,基本统计,线性代数,直方图等内置。

    Q46、如何将值添加到python数组?

    可以使用append(),extend()和insert(i,x)函数将元素添加到数组中。

    Q47、如何删除python数组的值?

    可以使用pop()或remove()方法删除数组元素。这两个函数之间的区别在于前者返回已删除的值,而后者则不返回。

    Q48、Python有OOps概念吗?

    Python是一种面向对象的编程语言。这意味着可以通过创建对象模型在python中解决任何程序。同时Python可以被视为程序语言和结构语言。

    Q49、深拷贝和浅拷贝有什么区别?

    在创建新实例类型时使用浅拷贝,并保留在新实例中复制的值。浅拷贝用于复制引用指针,就像复制值一样。这些引用指向原始对象,并且在类的任何成员中所做的更改也将影响它的原始副本。浅拷贝允许更快地执行程序,它取决于所使用的数据的大小。

    深拷贝用于存储已复制的值。深拷贝不会将引用指针复制到对象。它引用一个对象,并存储一些其他对象指向的新对象。原始副本中所做的更改不会影响使用该对象的任何其他副本。由于为每个被调用的对象创建了某些副本,因此深拷贝会使程序的执行速度变慢。

    Q50、如何在Python中实现多线程?

    Python有一个多线程库,但是用多线程来加速代码的效果并不是那么的好,

    Python有一个名为Global Interpreter Lock(GIL)的结构。GIL确保每次只能执行一个“线程”。一个线程获取GIL执行相关操作,然后将GIL传递到下一个线程。

    虽然看起来程序被多线程并行执行,但它们实际上只是轮流使用相同的CPU核心。

    所有这些GIL传递都增加了执行的开销。这意味着多线程并不能让程序运行的更快。

    结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!

    Python基础入门教程推荐:更多Python视频教程-关注B站:Python学习者
     

    【Python教程】全网最容易听懂的1000集python系统学习教程(答疑在最后四期,满满干货)

    Python爬虫案例教程推荐:更多Python视频教程-关注B站:Python学习者
     

    2021年Python最新最全100个爬虫完整案例教程,数据分析,数据可视化,记得收藏哦

    展开全文
  • 关于Python爬虫的超详细讲解,用例子来给大家一步步分析爬虫的代码原理,由浅入深,老年人来了,我也给你整明白。
     
    

    先看后赞,养成习惯。
    点赞收藏,人生辉煌。

    在这里插入图片描述

    讲解我们的爬虫之前,先概述关于爬虫的简单概念(毕竟是零基础教程)

    爬虫

    网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。
    原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。

    为什么我们要使用爬虫

    互联网大数据时代,给予我们的是生活的便利以及海量数据爆炸式的出现在网络中。
    过去,我们通过书籍、报纸、电视、广播或许信息,这些信息数量有限,且是经过一定的筛选,信息相对而言比较有效,但是缺点则是信息面太过于狭窄了。不对称的信息传导,以致于我们视野受限,无法了解到更多的信息和知识。
    互联网大数据时代,我们突然间,信息获取自由了,我们得到了海量的信息,但是大多数都是无效的垃圾信息。
    例如新浪微博,一天产生数亿条的状态更新,而在百度搜索引擎中,随意搜一条——减肥100,000,000条信息。
    在如此海量的信息碎片中,我们如何获取对自己有用的信息呢?
    答案是筛选!
    通过某项技术将相关的内容收集起来,在分析删选才能得到我们真正需要的信息。
    这个信息收集分析整合的工作,可应用的范畴非常的广泛,无论是生活服务、出行旅行、金融投资、各类制造业的产品市场需求等等……都能够借助这个技术获取更精准有效的信息加以利用。
    网络爬虫技术,虽说有个诡异的名字,让能第一反应是那种软软的蠕动的生物,但它却是一个可以在虚拟世界里,无往不前的利器。

    爬虫准备工作

    我们平时都说Python爬虫,其实这里可能有个误解,爬虫并不是Python独有的,可以做爬虫的语言有很多例如:PHP,JAVA,C#,C++,Python,选择Python做爬虫是因为Python相对来说比较简单,而且功能比较齐全。
    首先我们需要下载python,我下载的是官方最新的版本 3.8.3
    其次我们需要一个运行Python的环境,我用的是pychram
    在这里插入图片描述
    也可以从官方下载,
    我们还需要一些库来支持爬虫的运行(有些库Python可能自带了)
    在这里插入图片描述
    差不多就是这几个库了,良心的我已经在后面写好注释了
    在这里插入图片描述
    (爬虫运行过程中,不一定就只需要上面几个库,看你爬虫的一个具体写法了,反正需要库的话我们可以直接在setting里面安装)

    爬虫项目讲解

    我做的是爬取豆瓣评分电影Top250的爬虫代码
    我们要爬取的就是这个网站:https://movie.douban.com/top250

    这边我已经爬取完毕,给大家看下效果图,我是将爬取到的内容存到xls
    在这里插入图片描述

    我们的爬取的内容是:电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,相关信息。

    代码分析

    先把代码发放上来,然后我根据代码逐步解析

    # -*- codeing = utf-8 -*-
    from bs4 import BeautifulSoup  # 网页解析,获取数据
    import re  # 正则表达式,进行文字匹配`
    import urllib.request, urllib.error  # 制定URL,获取网页数据
    import xlwt  # 进行excel操作
    #import sqlite3  # 进行SQLite数据库操作
    
    findLink = re.compile(r'<a href="(.*?)">')  # 创建正则表达式对象,标售规则   影片详情链接的规则
    findImgSrc = re.compile(r'<img.*src="(.*?)"', re.S)
    findTitle = re.compile(r'<span class="title">(.*)</span>')
    findRating = re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')
    findJudge = re.compile(r'<span>(\d*)人评价</span>')
    findInq = re.compile(r'<span class="inq">(.*)</span>')
    findBd = re.compile(r'<p class="">(.*?)</p>', re.S)
    
    
    
    
    def main():
        baseurl = "https://movie.douban.com/top250?start="  #要爬取的网页链接
        # 1.爬取网页
        datalist = getData(baseurl)
        savepath = "豆瓣电影Top250.xls"    #当前目录新建XLS,存储进去
        # dbpath = "movie.db"              #当前目录新建数据库,存储进去
        # 3.保存数据
        saveData(datalist,savepath)      #2种存储方式可以只选择一种
        # saveData2DB(datalist,dbpath)
    
    
    
    # 爬取网页
    def getData(baseurl):
        datalist = []  #用来存储爬取的网页信息
        for i in range(0, 10):  # 调用获取页面信息的函数,10次
            url = baseurl + str(i * 25)
            html = askURL(url)  # 保存获取到的网页源码
            # 2.逐一解析数据
            soup = BeautifulSoup(html, "html.parser")
            for item in soup.find_all('div', class_="item"):  # 查找符合要求的字符串
                data = []  # 保存一部电影所有信息
                item = str(item)
                link = re.findall(findLink, item)[0]  # 通过正则表达式查找
                data.append(link)
                imgSrc = re.findall(findImgSrc, item)[0]
                data.append(imgSrc)
                titles = re.findall(findTitle, item)
                if (len(titles) == 2):
                    ctitle = titles[0]
                    data.append(ctitle)
                    otitle = titles[1].replace("/", "")  #消除转义字符
                    data.append(otitle)
                else:
                    data.append(titles[0])
                    data.append(' ')
                rating = re.findall(findRating, item)[0]
                data.append(rating)
                judgeNum = re.findall(findJudge, item)[0]
                data.append(judgeNum)
                inq = re.findall(findInq, item)
                if len(inq) != 0:
                    inq = inq[0].replace("。", "")
                    data.append(inq)
                else:
                    data.append(" ")
                bd = re.findall(findBd, item)[0]
                bd = re.sub('<br(\s+)?/>(\s+)?', "", bd)
                bd = re.sub('/', "", bd)
                data.append(bd.strip())
                datalist.append(data)
    
        return datalist
    
    
    # 得到指定一个URL的网页内容
    def askURL(url):
        head = {  # 模拟浏览器头部信息,向豆瓣服务器发送消息
            "User-Agent": "Mozilla / 5.0(Windows NT 10.0; Win64; x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 80.0.3987.122  Safari / 537.36"
        }
        # 用户代理,表示告诉豆瓣服务器,我们是什么类型的机器、浏览器(本质上是告诉浏览器,我们可以接收什么水平的文件内容)
    
        request = urllib.request.Request(url, headers=head)
        html = ""
        try:
            response = urllib.request.urlopen(request)
            html = response.read().decode("utf-8")
        except urllib.error.URLError as e:
            if hasattr(e, "code"):
                print(e.code)
            if hasattr(e, "reason"):
                print(e.reason)
        return html
    
    
    # 保存数据到表格
    def saveData(datalist,savepath):
        print("save.......")
        book = xlwt.Workbook(encoding="utf-8",style_compression=0) #创建workbook对象
        sheet = book.add_sheet('豆瓣电影Top250', cell_overwrite_ok=True) #创建工作表
        col = ("电影详情链接","图片链接","影片中文名","影片外国名","评分","评价数","概况","相关信息")
        for i in range(0,8):
            sheet.write(0,i,col[i])  #列名
        for i in range(0,250):
            # print("第%d条" %(i+1))       #输出语句,用来测试
            data = datalist[i]
            for j in range(0,8):
                sheet.write(i+1,j,data[j])  #数据
        book.save(savepath) #保存
    
    # def saveData2DB(datalist,dbpath):
    #     init_db(dbpath)
    #     conn = sqlite3.connect(dbpath)
    #     cur = conn.cursor()
    #     for data in datalist:
    #             for index in range(len(data)):
    #                 if index == 4 or index == 5:
    #                     continue
    #                 data[index] = '"'+data[index]+'"'
    #             sql = '''
    #                     insert into movie250(
    #                     info_link,pic_link,cname,ename,score,rated,instroduction,info)
    #                     values (%s)'''%",".join(data)
    #             # print(sql)     #输出查询语句,用来测试
    #             cur.execute(sql)
    #             conn.commit()
    #     cur.close
    #     conn.close()
    
    
    # def init_db(dbpath):
    #     sql = '''
    #         create table movie250(
    #         id integer  primary  key autoincrement,
    #         info_link text,
    #         pic_link text,
    #         cname varchar,
    #         ename varchar ,
    #         score numeric,
    #         rated numeric,
    #         instroduction text,
    #         info text
    #         )
    #
    #
    #     '''  #创建数据表
    #     conn = sqlite3.connect(dbpath)
    #     cursor = conn.cursor()
    #     cursor.execute(sql)
    #     conn.commit()
    #     conn.close()
    
    # 保存数据到数据库
    
    
    
    
    
    
    
    if __name__ == "__main__":  # 当程序执行时
        # 调用函数
         main()
        # init_db("movietest.db")
         print("爬取完毕!")
    
    

    下面我根据代码,从下到下给大家讲解分析一遍
    在这里插入图片描述

    -- codeing = utf-8 --,开头的这个是设置编码为utf-8 ,写在开头,防止乱码。
    然后下面 import就是导入一些库,做做准备工作,(sqlite3这库我并没有用到所以我注释起来了)。
    下面一些find开头的是正则表达式,是用来我们筛选信息的。
    (正则表达式用到 re 库,也可以不用正则表达式,不是必须的。)
    大体流程分三步走:

    1. 爬取网页
    2.逐一解析数据
    3. 保存网页

    先分析流程1,爬取网页,baseurl 就是我们要爬虫的网页网址,往下走,调用了 getData(baseurl) ,
    我们来看 getData方法

      for i in range(0, 10):  # 调用获取页面信息的函数,10次
            url = baseurl + str(i * 25)
    

    这段大家可能看不懂,其实是这样的:
    因为电影评分Top250,每个页面只显示25个,所以我们需要访问页面10次,25*10=250。

    baseurl = "https://movie.douban.com/top250?start="
    

    我们只要在baseurl后面加上数字就会跳到相应页面,比如i=1时

    https://movie.douban.com/top250?start=25

    我放上超链接,大家可以点击看看会跳到哪个页面,毕竟实践出真知。
    在这里插入图片描述

    然后又调用了askURL来请求网页,这个方法是请求网页的主体方法,
    怕大家翻页麻烦,我再把代码复制一遍,让大家有个直观感受

    def askURL(url):
        head = {  # 模拟浏览器头部信息,向豆瓣服务器发送消息
            "User-Agent": "Mozilla / 5.0(Windows NT 10.0; Win64; x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 80.0.3987.122  Safari / 537.36"
        }
        # 用户代理,表示告诉豆瓣服务器,我们是什么类型的机器、浏览器(本质上是告诉浏览器,我们可以接收什么水平的文件内容)
    
        request = urllib.request.Request(url, headers=head)
        html = ""
        try:
            response = urllib.request.urlopen(request)
            html = response.read().decode("utf-8")
        except urllib.error.URLError as e:
            if hasattr(e, "code"):
                print(e.code)
            if hasattr(e, "reason"):
                print(e.reason)
        return html
    

    这个askURL就是用来向网页发送请求用的,那么这里就有老铁问了,为什么这里要写个head呢?
    在这里插入图片描述

    这是因为我们要是不写的话,访问某些网站的时候会被认出来爬虫,显示错误,错误代码

    418

    这是一个梗大家可以百度下,

    418 I’m a teapot

    The HTTP 418 I’m a teapot client error response code indicates that
    the server refuses to brew coffee because it is a teapot. This error
    is a reference to Hyper Text Coffee Pot Control Protocol which was an
    April Fools’ joke in 1998.

    我是一个茶壶

    在这里插入图片描述

    所以我们需要 “装” ,装成我们就是一个浏览器,这样就不会被认出来,
    伪装一个身份。
    在这里插入图片描述

    来,我们继续往下走,

      html = response.read().decode("utf-8")
    

    这段就是我们读取网页的内容,设置编码为utf-8,目的就是为了防止乱码。
    访问成功后,来到了第二个流程:

    2.逐一解析数据

    解析数据这里我们用到了 BeautifulSoup(靓汤) 这个库,这个库是几乎是做爬虫必备的库,无论你是什么写法。

    下面就开始查找符合我们要求的数据,用BeautifulSoup的方法以及 re 库的
    正则表达式去匹配,

    findLink = re.compile(r'<a href="(.*?)">')  # 创建正则表达式对象,标售规则   影片详情链接的规则
    findImgSrc = re.compile(r'<img.*src="(.*?)"', re.S)
    findTitle = re.compile(r'<span class="title">(.*)</span>')
    findRating = re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')
    findJudge = re.compile(r'<span>(\d*)人评价</span>')
    findInq = re.compile(r'<span class="inq">(.*)</span>')
    findBd = re.compile(r'<p class="">(.*?)</p>', re.S)
    

    匹配到符合我们要求的数据,然后存进 dataList , 所以 dataList 里就存放着我们需要的数据了。

    最后一个流程:

    3.保存数据

        # 3.保存数据
        saveData(datalist,savepath)      #2种存储方式可以只选择一种
        # saveData2DB(datalist,dbpath)
    

    保存数据可以选择保存到 xls 表, 需要(xlwt库支持)
    也可以选择保存数据到 sqlite数据库, 需要(sqlite3库支持)

    这里我选择保存到 xls 表 ,这也是为什么我注释了一大堆代码,注释的部分就是保存到 sqlite 数据库的代码,二者选一就行

    保存到 xls 的主体方法是 saveData (下面的saveData2DB方法是保存到sqlite数据库)

    def saveData(datalist,savepath):
        print("save.......")
        book = xlwt.Workbook(encoding="utf-8",style_compression=0) #创建workbook对象
        sheet = book.add_sheet('豆瓣电影Top250', cell_overwrite_ok=True) #创建工作表
        col = ("电影详情链接","图片链接","影片中文名","影片外国名","评分","评价数","概况","相关信息")
        for i in range(0,8):
            sheet.write(0,i,col[i])  #列名
        for i in range(0,250):
            # print("第%d条" %(i+1))       #输出语句,用来测试
            data = datalist[i]
            for j in range(0,8):
                sheet.write(i+1,j,data[j])  #数据
        book.save(savepath) #保存
    

    创建工作表,创列(会在当前目录下创建),

       sheet = book.add_sheet('豆瓣电影Top250', cell_overwrite_ok=True) #创建工作表
        col = ("电影详情链接","图片链接","影片中文名","影片外国名","评分","评价数","概况","相关信息")
    

    然后把 dataList里的数据一条条存进去就行。

    最后运作成功后,会在左侧生成这么一个文件
    在这里插入图片描述

    打开之后看看是不是我们想要的结果
    在这里插入图片描述

    成了,成了!

    在这里插入图片描述

    如果我们需要以数据库方式存储,可以先生成 xls 文件,再把 xls 文件导入数据库中,就可以啦

    本篇文章讲解到这里啦,我感觉我讲的还算细致吧,爬虫我也是最近才可以学,对这个比较有兴趣,我肯定有讲的不好的地方,欢迎各位大佬来指正我 。

    我也在不断的学习中,学到新东西第一时间会跟大家分享
    大家可以动动小手,点波关注不迷路。

    如果关于本篇文章有不懂的地方,欢迎大家下面留言,我知道的都会给大家一 一解答。

    最后给大家放波福利,博主最近在搞阿里云推广,

    活动折扣价:全网最低价87元/年,261元/3年,比学生9.9每月还便宜(只阿里云新用户可用)
    新用户可以入手试试,有一台属于自己的服务器,前期用来部署和学习都很方便

    阿里云 【点击购买
    在这里插入图片描述


    白嫖不好,创作不易。各位的点赞就是我创作的最大动力,如果我有哪里写的不对,欢迎评论区留言进行指正。
    老铁,如果有收获,请点个免费的赞鼓励一下博主呗

    在这里插入图片描述

    展开全文
  • 目录欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中...#一、安装python 欢迎...

    一、安装python(python3.7.4)

    1、下载

    这里直接去python官网就可以了,网址是:https://www.python.org
    打开后可以见到如图1
    在这里插入图片描述

    图1

    这里有两处都可以下载,还是有区别的,不想看的话,32位系统请选下载1,64位请选下载2

    (1)下载1(32位)

    点第一处下载出现如图2

    在这里插入图片描述

    图2
    这里下载的文件名叫`python-3.7.4.exe`。

    (2)下载2(64位)

    如果点击图1中的第二处下载,可见到如图3所示:

    在这里插入图片描述

    图3
    往下翻到达 图4

    在这里插入图片描述

    图4
    这里看自己的系统,我是window10*64,选了图中的包,下载的文件名是`python-3.7.4-amd64.exe`。

    到这里大家可以看到下载了两个包,分别是python-3.7.4.exepython-3.7.4-amd64.exe图5

    *区别在与其中多了amd64,这里科普一下:64位现在分为amd64和em64t,我们常说的64位指的是AMD公司出的64位CPU,而EM64T是在32位基础上扩展来的,应该是一种伪64,是过渡期的一种解决方案。说白了AMD的64位CPU是64位兼容32位运算,而INTEL的EM64T是32位兼容64位运算。
    *em64t和x86-64是两个不一样的集合,操作cpu的指令是不一样的,比如我想让cpu调用鼠标,em64t的指令就是ee,x86-64的指令就是ff。但大多数软件直接通过操作系统层来调用各种东西,所以这一类软件只要是64位的系统都可以用,不用担心。但我们的python就需要涉及到了,所以要区分。
    *图4(图片里)中提到我下载的包既适合64位又适合32位,这里解释一下,我在那只是说for AMD64/EM64T/×64这代表的是这个意思,但下载后文件名如图5是python-3.7.4-amd64.exe,没有em64T,我也不知道什么情况。

    在这里插入图片描述

    图5

    这里两处恰好对应图1中两处不同的下载,下载1对应python-3.7.4.exe下载2对应python-3.7.4-amd64.exe

    2、安装

    对俩安装包点击,分别出现图6
    在这里插入图片描述

    图6

    图7
    在这里插入图片描述

    图7

    这俩图图6图7分别对应下载1下载2,分别是32位和64位。之后的安装过程是一样的,所以只演示我自己电脑64位的。
    图7中把框都选上,如图8
    在这里插入图片描述

    图8

    点击自定义安装后出现图9
    在这里插入图片描述

    图9

    在图9中请将我画的打上勾,之后自定义安装位置,我安装在D盘的python37文件夹里了。之后点击安装Install,出现图10
    在这里插入图片描述

    图10

    安静等一会,不会太长。然后变成图11
    在这里插入图片描述

    图11

    到这里就完成了,需要注意图9是自定义安装位置路径别太长,不然配置环境变量你就有我不知道的问题了。
    好了,如果你按我所说在图8图9中都勾选了我所选的(重点是勾选了Add Python 3.7 to PATHAdd Python to environment variables),那你就可以跳过配置环境变量,直接点击去进行检验了,如果你没有选的话,接着看。

    3、配置python环境变量

    先打开文件夹,如图12
    在这里插入图片描述

    图12

    此时右键图中此电脑出现图13
    在这里插入图片描述

    图13

    点击我标注的属性,此时出现图14
    在这里插入图片描述

    图14

    然后点击高级系统设置,对了,此处可以看到自己电脑的一些信息,点击之后出现图15
    在这里插入图片描述

    图15

    在图15中点击环境变量,然后弹出图16
    在这里插入图片描述

    图16
    在图16中找到path,记住别从用户变量中找,从系统变量,然后编辑path,如 图17

    在这里插入图片描述

    图17

    前面在图8图9中都勾选了我所选的,也就是已经在安装时自动配置了环境变量的人,他的图17和我一样,是自动就有框中这两样的D:\Python37\Scripts\D:\Python37\,没选到的,这里没这两项,需要自己写进去,点击新建,然后写入的这两项

    D:\Python37\是你的安装目录,我在D盘建立的文件夹叫python37,所以是这个,这是我们在图9中自己选的安装目录,D:\Python37\Scripts\是你python安装目录下有一个叫Scripts的文件夹的路径自己可以在你的python安装目录下找。

    我的python安装目录如图18
    在这里插入图片描述

    图18

    在往图17里写路径时,尽量从图18中复制,不然易错。完成后如图19
    在这里插入图片描述

    图19

    到此完成,可以开始检验了。

    完成后建议保留安装包,细情请看点击此处

    4、检验python

    先找到运行这个应用程序,可以直接按Windows+R键,也可以像图20
    在这里插入图片描述

    图20
    点击打开”运行“,出现 图21

    在这里插入图片描述

    图21
    在”运行“框中输入cmd,点击确认,然后弹出 图22

    在这里插入图片描述

    图22

    在图22中输入python并回车,会出现python的版本信息,如图23
    在这里插入图片描述

    图23

    版本是python3.7.4,此时输入行前面出现>>>,已经进入python环境,输入quit()可以退出python,再输入exit,退出黑框。

    二、安装anaconda(anaconda3)

    1、下载

    anaconda官网是外国网站,速度非常慢,建议去清华大学开源软件镜像站下载,
    网址是:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,点击即可进入。
    进入后如图24
    在这里插入图片描述

    图24

    根据网站信息选择适合的,我选的就是最新版那个,直接点击下载,不需要几分钟。

    2、安装

    下载完成后打开下载的安装程序,如图25
    在这里插入图片描述

    图25

    这是个欢迎界面,直接下一步:图26
    在这里插入图片描述

    图26

    这里不同意人家协议就不让你用,自己看着办,我先同意了,在下面图27等你!
    在这里插入图片描述

    图27

    这里就如同python安装里的图9Install for all users一样,按图27所示选择,然后点Next,进入图28
    在这里插入图片描述

    图28

    如图可以看到又弹出一个框,可以自定义安装位置,没什么要求,就是路径里不要有汉字。然后点击下一步,进入图29
    在这里插入图片描述

    图29

    这里是你选了下面那个选项后弹出的一个提醒,就像是你修改系统默认应用一样弹出个确认框。直接点击确认就行。

    这里说一下,其实之前下载的python3.7.4和这里下载的anaconda都是一种编译环境,而且都是python语言的编译环境,进入这个环境编译的python才能运行,所以将anaconda修改为系统默认python环境时,会有提示,是否将原来的python3.7.4这个python环境修改为anaconda。

    确认后出现图30
    在这里插入图片描述

    图30

    点击Install,继续出现图31
    在这里插入图片描述

    图31

    这个安装完成很快的,进度条完成后好像不会自己关闭安装界面,如上面图31,进度满了就点击Next,没满时按钮是灰的,点不了,不用担心,之后显示图32
    在这里插入图片描述

    图32

    这是推广软件,不管,下一步图33
    在这里插入图片描述

    图33

    这里其实无所谓了,选上那俩框就是关闭安装程序后打开俩学习python的网站,没啥用,还得关。点击finish就安装完成了,会关闭掉安装程序。

    3、配置环境变量

    环境变量的配置前期先参考图12图17打开到如图34所示:
    在这里插入图片描述

    图34

    因为前面配置了python37的环境变量,而python37和anaconda都是python环境,所以要删掉python37的环境变量,改为anaconda的,如图35
    在这里插入图片描述

    图35

    此时已经没有D:\Python37\Scripts\D:\Python37\这俩python37的变量了变为了D:\Anaconda3\Library\binD:\Anaconda3\Scripts\D:\Anaconda3\这三个变量,大家可以通过看上面有关D:\Python37\Scripts\D:\Python37\注释(点击”注释“)和图18来理解该如何写自己的anaconda变量
    完成以后可以按照图19来确认。完成后就该检验了。

    4、检验anaconda

    先是参考python检验中的图20图22,来打开到图22的状态,然后输入conda --version来查看conda的信息。如图36中1所示:

    在这里插入图片描述

    图36

    其实显出1中所示就已经结束了,可以确认安装好了。也可以输入python试试,如图中2所示,显现出了anaconda所带的python解释器的版本3.7.3。其实对照我们之前安装的python37的版本就可以看出,此时输入命令python后出现的python3.7.3是anaconda自带的,我们之前装的python3.7.4在图35中删掉python37的环境变量后就不能再通过系统直接访问了,除非再将环境变量改回来。现在来讲讲如何将原来的python3.7.4加进anaconda中。

    三、扩展——将先前的python加入后来的anaconda

    1、了解anaconda

    首先了解一些前提,anaconda只有在完成环境变量的配置后才能使用conda命令,
    有一组命令必须了解,即:
    conda env list
    conda info --e
    conda info --envs
    这三个都是查询conda里python环境的信息。试着查询一下,如图37
    在这里插入图片描述

    图37

    可以看到什么也没做的情况下conda里只有base一个默认环境,位置就在anaconda里。但我们看图38
    在这里插入图片描述

    图38

    在Anaconda3的文件里并没有base,所以应该是内部默认的一个环境,然后我们再看图36中最下面输入python时有一个提醒Warning,里面是说python3.7.3这个解释器是在一个python环境里,而这个环境没激活,激活化境的语句时activate 环境名;再看图37,conda里只有base一个环境,所以尝试激活,输入activate base,如图39
    在这里插入图片描述

    图39

    可以看到激活环境后命令行开头多了个(base),关闭环境的语句不用加环境名。然后我们尝试激活base环境的情况下使用python命令,运行python3.7.3,如图40
    在这里插入图片描述

    图40

    通过图40可以看到python3.7.3解释器是在base环境中。

    2、添加python

    要想将我们原来安装的python3.7.4装到anaconda中,先是创建一个环境。
    创建一个名称为python37的虚拟环境并指定python版本为3.7.x(这里conda会自动找3.7中最新的版本下载)语句是
    conda create -n python37 python=3.7或者
    conda create --name python37 python=3.7

    python37只是我要建的文件的名,你可以自己定,这个指令其实就是在anaconda中的envs文件夹里创建一个叫python37的文件夹。

    执行语句前我们通过图37,可以知道anaconda中只有一个base,而anaconda中envs文件中如图41所示没有任何东西。
    在这里插入图片描述

    图41

    然后输入conda create --name python37 python=3.7,出现图42
    在这里插入图片描述

    图42

    y后回车,第一次需要等会,成功后出现图43
    在这里插入图片描述

    图43

    此时再看anaconda里的环境,如图44
    在这里插入图片描述

    图44

    出现了python37,并显示位置在anaconda3里的envs文件夹里,打开文件夹可以看到图45
    在这里插入图片描述

    图45

    就是在envs里创建了一个python37,并且里面是有python解释器的,

    解释一下,图45中还新出现一个test文件,估计是类似于日志一类的,别动它,之后就算删除了python37它也还会存在。

    可以通过语句activate python37来激活python37这个环境,然后运行python来查看python37里的解释器信息,如图46
    在这里插入图片描述

    图46

    通过图46可以知道建立的环境里是有python解释器的,并且版本是2019年9月发布的python3.7.4对比我们在python安装里的安装的python版本,图23所示,我们自己安装的python3.7.4是2019年8月发布的,所以此时的python是anaconda自己下载的,还不是我们之前装到那个,做这些只是为了给我们自己的python3.7.4先在anaconda里搭好一个适合python3.7.x的环境(也就是python37这个文件)。
    环境搭好了,也就该移过来python37了,还记得你自己装的python3.7.4(8月版)的位置吗?也就是在图9中自定义的安装位置,找到它,并将你安装它的文件夹复制,我的是python37。

    这时就体现出前面将python(8月版)的安装文件夹命名为python37的好处了,python(8月版)的文件夹必须要与anaconda里envs下你建的python37(9月版)文件同名才行。这两处名可以不叫python37,但必须同名,不含汉字。

    把你复制的python37(8月版)(也就是自己安装的python(8月版)文件)粘贴到anaconda的envs文件夹里去,出现图47

    如果俩文件夹不同命又真的不想动命名的话,也可以了,就是复制到时候不能复制安装python3.7.4(8月版)的文件夹,而是复制文件夹里的东西,全选上,复制后也不是粘贴到envs里了,粘贴到你在envs里建都那个python37(9月版)环境里,像我的就是envs里的python37(9月版)文件夹里

    在这里插入图片描述

    图47
    之后因为同名关系,出现 图48

    在这里插入图片描述

    图48

    选择替换掉,这时候应该理解了吧,完成后就把我们的python3.7.4(8月版)加进anaconda里了。

    说白了就是鸠占鹊巢,我们的python3.7.4(8月版)想弄进anaconda里,受anaconda调用,必须在anaconda里有可调用的接口,而我们用命令conda create --name python37 python=3.7让anaconda自己下载了一个属于它自己的python,还是3.7版本的最新版,他自己的东西肯定就有接口了,但是它里面还带了一个python3.7.4(9月版),这时候我们只需要粘贴过来用我们自己的python3.7.4(8月版)覆盖掉anaconda里python37中带的python3.7.4(9月版)就好了。

    加进去后不放心可以检验一下,输入命令activate python37激活python37环境,在输入python查看并进入python解释器,如图49
    在这里插入图片描述

    图49

    这时python3.7.4已经是8月版的,就是我们开始自己下载的。

    另外创建python的环境命令时
    conda create --name python37 python=3.7而对应的删除命令是
    conda remove --name python37 --all执行删除命令后使用查看指令就看不到了,在envs文件里也删掉了。

    3、命令归纳

    查看环境:
    conda env list
    conda info -e
    conda info --envs
    创建环境:
    conda create -n python37 python=3.7
    conda create --name python37 python=3.7
    删除环境:
    conda remove --name python37 --all
    激活环境:
    activate python37
    关闭环境:
    deactivate
    打开python解释器:
    python

    4、error_创建环境以大写命名

    这是在我创建环境时用大写命名时弹出错误,创建不成功,出现乱码,应该是不支持大写,如图50
    在这里插入图片描述

    图50

    我输入的是conda create --name Python37 python=3.7,这里文件我以大写P开头,而图中显示无法创建,并且大写P以乱码形式出现。后改为小写成功创建。

    四、记录一种python卸载方法

    这里说的python是指自己下载的,如1、下载处这样下载,而非在anaconda里用语句下载的,下载完后建议保留安装程序,如图5所示,在安装完成后再次运行安装程序,会出现图51
    在这里插入图片描述

    图51

    这是点击第三项,可以很方便的卸载掉,所以建议保留,还可以用来修复呢。我已放入python安装文件里保留。

    展开全文
  • python

    千次阅读 多人点赞 2017-05-23 15:29:12
    python 关键字 容器 Python容器简介 Python 容器API Python 生成器generator Python迭代器 Python 编码规范 字符 Python 字符编码 字节(bytes) 二进制序列类型 Python 基本字符 ...
  • Python爬虫100例教程导航帖(已完结)

    万次阅读 多人点赞 2019-01-08 23:40:01
    Python爬虫入门教程导航,目标100篇。 本系列博客争取把爬虫入门阶段的所有内容都包含住,需要你有较好的Python基础知识,当然你完全零基础也可以观看本系列博客。 Python爬虫入门教程,加油!
  • 最新Python学习路线+千锋Python课程大纲+Python视频教程+Python学习资料下载地址大合集 目前Python已经成为最受欢迎的程序设计语言之一。Python的设计哲学是“优雅”、“明确”、“简单”。 Python的优点(来自...
  • python十个实战项目

    万次阅读 多人点赞 2012-02-12 14:43:07
    python项目练习一:即时标记 python项目练习二:画幅好画 python项目练习三:万能的XML python项目练习四:新闻聚合 python项目练习五:虚拟茶话会 python项目练习六:使用CGI进行远程编辑 python项目练习七:自定义...
  • python基础教程 python基础系列教程——Python的安装与测试:python解释器、PyDev编辑器、pycharm编译器 python基础系列教程——Python库的安装与卸载 python基础系列教程——Python3.x标准模块库目录 ...
  • Anaconda 查看、创建、管理和使用python环境

    万次阅读 多人点赞 2018-04-24 17:12:33
    由于不同的项目需要用不同的python版本,于是使用Anaconda来进行版本管理,现记录一下经验:在官网下载并安装好Anaconda以后(非常简单,此处不赘述):1. 查看Python环境conda info --env可以看到所有python环境,...
  • 快速查找Python安装路径方法

    万次阅读 多人点赞 2018-02-28 15:22:42
    我相信一定有很多的人跟我一样,经常忘记Python安装的路径,每当用到的时候,最笨的办法就是在全局电脑里,直接查找Python,这样是肯定能查到的,但是如果你的电脑文件超级多,这将是一个工厂量很大的事情,你要等...
  • Python学习目录

    万次阅读 多人点赞 2019-05-19 10:32:13
    1.1 Python MOOC练习3 1.2 Python MOOC练习4 1.3 python中的随机函数random的用法示例 1.4 Python文本词频统计的编码问题-MOOC嵩天 1.5 Python中的复数和误区 1.6 Python计算圆周率的两种方法 1.7 Python实现...
  • Python全栈视频教程

    万人学习 2017-07-17 20:42:19
    Python全栈视频培训教程,帮助开发者从零到一入门python:1.深入理解python语法机制与底层原理,2.深入实战python各种案例 , 3.语音识别,图形界面,多线程爬虫,语音合成,游戏控制等等精彩案例。
  • python列表相加的方法:两个list [] 加法

    万次阅读 多人点赞 2018-06-08 21:57:22
    简明扼要:Python list 相加的方法
  • python多线程详解(超详细)

    万次阅读 多人点赞 2019-09-28 08:33:31
    python中的多线程是一个非常重要的知识点,今天为大家对多线程进行详细的说明,代码中的注释有多线程的知识点还有测试用的实例。 import threading from threading import Lock,Thread import time,os ''' python...
  • 图解Python 玩转Python 秒懂python

    万次阅读 多人点赞 2019-07-06 21:30:04
    0 Python 解释器: Python数据结构: 2.变量与运算符 3 Python 流程控制 4 Python 文件处理 5 python 输入输出 6 Python 异常 7 Python 函数和模块 8 Python 面相对象: 9 python 多线程 10 Python 标准库...
  • Python解答蓝桥杯省赛真题之从入门到真题

    万次阅读 多人点赞 2019-12-21 10:07:37
    搜了很多历年蓝桥杯真题解答,大多都是Java,C++,C这些语言编写的代码解析。...而当下Python又这么火热,蓝桥杯也出了Python组,所以打算写一个Python解答蓝桥杯真题的博客,供大家参考,也在这过程中和大家一起交流。
  • 官网python-3.8.3安装包(.exe),windows安装软件,各位请自行下载; 链接:https://pan.baidu.com/s/1UnCPlvNCuzCIY36R3gtC0g 提取码:4daq
  • Python2和Python3的区别,以及为什么选Python3的原因

    万次阅读 多人点赞 2018-06-29 12:28:13
    对这些部分简单带过不要花太多时间 使用Python 2,不要使用Python 2.7以前的版本 使用Python 3,不要使用Python 3.4以前的版本 多了解Python 2的__future__库 对同一份代码,不要为Python 2和Python 3分别维护分支,...
  • anaconda python 版本对应关系

    万次阅读 多人点赞 2018-07-14 15:09:48
    在表格中用括号备注了包含的python版本号 Release date conda python2.7 python3.4 python3.5 python3.6 python3.7 python3.8 2015-02-25 3.4.3 ...
  • Python 二次开发 AutoCAD 简介

    万次阅读 多人点赞 2018-12-13 18:20:21
    python是 Active X 是 pyautocad模块由俄罗斯工程师开发,因参考实例较少,工程需要,现将模块中一些基本的用法,做出简要说明,叙述力求简洁明了, 因个人水平有限,文中难免有所疏漏,还请各位大神不吝批评指正...
  • 排名前三的python 开源 IDE

    万次阅读 2017-06-16 14:17:03
    Python无处不在 ,似乎它支持从主要网站到桌面实用程序到企业软件的所有功能。 Python已经被用来编写流行的软件项目,如dnf / yum,OpenStack,OpenShot,Blender,Calibre,甚至是原始的BitTorrent客户端。 它也...
  • ubuntu安装python3.7,并更新python默认指向为python3.7

    万次阅读 多人点赞 2018-12-24 17:57:44
    ubuntu默认带着的python版本不是最新版,因此需要手动安装最新版。 查看python的指向。 ls -l /usr/bin | grep python 可以看到,此时python指向的是python3.4。 第一部分:安装python3.7 1.直接使用apt-get...
  • python 用pip安装cv2(超简单的一句话)

    万次阅读 多人点赞 2019-04-24 18:45:20
    如果你已经装好了pip,那就直接 pip install opencv-python 就可以了 打个小广告~~
  • Linux、Windows后台运行Python脚本

    万次阅读 2019-12-07 13:12:37
    Linux:python或nohup命令 python命令: python test.py & python -u test.py >> test.log & 参数u,时时输出内容到文件。 nohup命令: 基本用法: 1.nohup python3 test.py & 后台...
  • Python最佳学习路线

    万次阅读 多人点赞 2019-01-17 16:46:45
    如何学习Python 最近开始整理python的资料,会陆续放到博客中存档。找了几个qq群,其中有一个群78486745。后面就没怎么加群了,还是需要看官方文档为主 python语言基础:(带你熟悉python语言的特性,学会使用...
  • Python安装教程(新手)

    万次阅读 多人点赞 2020-11-06 16:20:28
    第一次接触Python,可能是爬虫或者是信息AI开发的小朋友,都说Python 语言简单,那么多学一些总是有好处的,下面从一个完全不懂的Python 的小白来安装Python 等一系列工作的记录,并且遇到的问题也会写出,让完全不...
  • Python 中的Sympy详细介绍

    万次阅读 多人点赞 2019-07-13 17:06:06
    Python 中的Sympy详细使用 遇到复杂计算找python绝对不让你失望,sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算...
  • Python初级入门精讲

    万人学习 2017-11-22 12:19:29
    本课程为Python全栈开发初级入门篇-语言基础章节,学习完本篇章可对python语言有初步的掌握与理解,本课程侧重于初级学员,课程内容详细有针对性,务求各种类型的学员都可以掌握python开发。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,953,715
精华内容 2,781,486
关键字:

python