python_python3 - CSDN
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] 
收起全文
  • Python入门视频精讲

    2019-12-20 11:53:16
    Python入门视频培训课程以通俗易懂的方式讲解Python核心技术,Python基础,Python入门。适合初学者的教程,让你少走弯路! 课程内容包括:1.Python简介和安装 、2.第一个Python程序、PyCharm的使用 、3.Python基础...
  • 【为什么学PythonPython 是当今非常热门的语言之一,2020年的 TIOBE 编程语言排行榜中 ,Python名列第一,并且其流行度依然处在上升势头。 在2015年的时候,在网上还经常...
  • 【为什么学爬虫?】      ...1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP...
  • 总课时80+,提供源码和相关资料
  • Python学习路线

    2020-02-19 17:29:05
    经历长达近一个月的资源筛选过程终于结束,总共1.5T的资源经过:去重、筛选、整理、归档之后一份粗略的Python学习曲线资源已经成型,虽然中间经历了很多坎坷,不过最终还是完成,猪哥也是第一时间与大家分享出来。...

    此视频资源收集于网络,如有侵权请联系删除!!!
    此视频资源仅用作个人学习,请勿用于商业获利,造成后果自负!!!

    经历长达近一个月的资源筛选过程终于结束,总共1.5T百度网盘的资源经过:去重、筛选、整理、归档之后一份粗略的Python学习曲线资源已经成型,虽然中间经历了很多坎坷,不过最终还是完成,猪哥也是第一时间与大家分享出来。
    在这里插入图片描述
    资料主要分为两部分:一、各个学习网站论坛等,二、百度云资料。网站论坛资源更新快,可以与大家互动;而百度云资源主要为视频,方便大家下载和在线观看,两种资源结合使用,学习和查找知识更方便!

    一、网站论坛学习资源

    名称 链接 说明
    实验楼 https://www.shiyanlou.com 提供免费的Linux实验环境
    Py资源中文大全 http://t.cn/Rq0C0ET 各种python包和管理工具
    PEP8 Py编码规范中文版 https://dwz.cn/30uIzs9W 代码规范与基础同样重要
    Py Code Examples https://dwz.cn/dawtruYk 精细到方法级别的代码案例
    Py Module of the Week https://pymotw.com 每篇介绍一个 Py标准库的使用
    菜鸟教程 http://t.cn/RLGeMuW 最经典的一个语言教程网站
    廖雪峰Py教程 https://dwz.cn/drygpxjk 大牛带你简单快速入门
    Py自动化测试博客 https://dwz.cn/raopItkV 一个自动化测试大佬的博客
    Py中文学习大本营 http://www.pythondoc.com 一个不错的Flask学习网站
    刘江的Django https://dwz.cn/udQayyZY 最适合入门的Django教程
    莫烦Py https://morvanzhou.github.io 机器学习方面有着不错的造诣
    吴恩达机器学习 https://dwz.cn/F8Aad3DY 网易云课堂(中/英字幕)
    几个Py练习题 https://dwz.cn/ExJnmwOJ 有几个不错的实用练习题
    CheckiO https://py.checkio.org/ 一个学习Py的有趣网站

    二、学习曲线

    这个学习曲线是我在某马论坛上看到的,觉得不错就推荐给大家,同时也感谢某马的开源免费精神,猪哥也是受益颇多!
    在这里插入图片描述
    在这里插入图片描述

    三、优质资源

    我把这些资源分为了七个不同的阶段,难度是依次递增,其实就是对应上面学习曲线图;

    本资源一共800G,永久保存,并且会持续更新,建议大家转发收藏,方便以后查找学习;
    在这里插入图片描述
    这是猪哥推荐的Python学习曲线,基本上是某马的视频教程,这个学习曲线适合零基础的同学:
    在这里插入图片描述

    四、获取方式

    1. 链接:https://pan.baidu.com/s/18gY3J5t2xZPU6zSDWP09RA 密码:j8wk
    2. 如果链接失效,微信扫描下方二维码,关注猪哥微信公众号,回复:学习曲线 即可获取新链接!
      在这里插入图片描述

    五、猪哥有话说

    昨天看到一则新闻“19岁少年培训被坑而自杀”,当时真的很愤怒!!!这也使得猪哥更加坚定的坚持免费分享的原则,如果你觉得此文章好请分享给你的每一位朋友:也许你一个不经意的善意之举,却是他人人生的一个转折点。

    在这里插入图片描述

    展开全文
  • 1.了解一下python的内存机制 a=1 b=1 id(a)=id(b) #短的字符串,数字python在内存中是一个对象 a=[] b=[] id(a)!=id(b) #字典,数组这样的对象在内存中python会创建两个不同的对象 a="new a string" b...

    不废话,直接干货

    1.了解一下python的内存机制

    a=1
    b=1
    id(a)=id(b)    #短的字符串,数字python在内存中是一个对象
             
    a=[]
    b=[]
    id(a)!=id(b)      #字典,数组这样的对象在内存中python会创建两个不同的对象
       
    a="new a string"
    b="new a string"   
    id(a)!=id(b)       #长的字符串python在内存中同样会创建两个不同的对象
    

    2.python中万物皆对象(很简单的一句话,也是最核心的一句话)

    # 不可变类型
    >>>a = 'wangjunjie'
    >>>id(a)
    4324743920
    >>>a += '0817'
    >>>id(a)
    4324744944
    >>>a = a + '0817'
    >>>id(a)
    4324750584
    # 可变类型
    >>>my_list = [1, 2, 3]
    >>>my_list
    [1, 2, 3]
    >>>id(my_list)
    4324743240
    >>>my_list += [4, 5, 6]
    >>>my_list
    [1, 2, 3, 4, 5, 6]
    >>>id(my_list)
    4324743240
    >>>my_list = my_list + [7, 8, 9]
    >>>my_list
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>>id(my_list)
    4324744136
    

    简单总结上面显示结果的几个重要结论:
    1.变量分为不可变类型和可变类型,字符串、元组、整型、浮点型等数字都是不可比那类型,字典、列表、集合是可变类型
    2.对于不可变类型,无论是执行a = a+b还是a += b,a的内存地址都会变,可以理解为生成了新的变量;
    那对于可变类型,执行my_list = my_list + new_list时,my_list的内存地址发生变化,即my_list变成了一个新的变量;但是在执行my_list += new_list的时候,my_list内存地址不会发生变化,即没有生成新的变量,这种方法效果等类似于列表的extend操作。

    **这里有一个例外的类型,小伙伴们要重视,那就是str,str是有__iadd__方法的,只不过不像列表一样地址ID不变,str的地址是会变的

    3.两种方法的python底层原理

    从方法的背后魔法方法可以清楚的解释这种现象:
    +=背后的魔法方法是__iadd__
    +背后的魔法方法是__add__
    如果一个类,没有实现__iadd__方法的话,python就会退一步调用__add__方法
    总体来说,可变类型都有__iadd__方法,而不可变类型没有__iadd__方法
    为了方便记忆,我自己是这么记的:=单独出现的作用一般是赋值操作,所以a = a + b实际上就是python帮我们算出来a + b的值之后赋值给了变量a,在python眼中,这两个a本身就是两个毫无关联的对象。

    4.举个栗子更好的理解这个问题

    >>>my_tuple = (1, 2, [3, 4])
    >>>my_tuple[2] += [5, 6]
    

    思考一下此时my_tuple的值

    >>> my_tuple = (1, 2, [3, 4])
    >>> my_tuple[2] += [5, 6]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object does not support item assignment
    >>> my_tuple
    (1, 2, [3, 4, 5, 6])
    >>> 
    

    猜对了吗?实际上,这里面有两个点,第一个是元组不可变,python确实报错了,但是my_tuple中的列表呢?第二个是实际上元组中的列表只是一个列表对象内存地址的引用而已,所以在执行my_tuple[2] += [5, 6]时候,列表的值被改变了!

    注意一下:以上这个报错用my_tuple[2].extend([5, 6])不会报错,这并不违背元组是不可变的原则,因为引用地址确实没变,只不过地址里面的值,已经发生变化了!

    5.* 和 *=

    其实,这两个和+、+= 基本一样,只不过背后的魔法方法是__imul__和__mul__而已,就这么简单~

    展开全文
  • notepad++ 下的python自动缩进插件,导入压缩包里的dll文件即可
  • 正常情况下,当有人问起++原因而不是Python中的运算符时,这一行引起了我的注意。 如果您想知道最初的原因,则必须翻阅旧的Python邮件列表,或询问那里的某个人(例如Guido)〜通过stackoverflow 这迫使我像上图一样...

    正常情况下,当有人问起++原因而不是Python中的运算符时,这一行引起了我的注意。

    如果您想知道最初的原因,则必须翻阅旧的Python邮件列表,或询问那里的某个人(例如Guido)〜通过stackoverflow

    这迫使我像上图一样思考。 真的我必须问Guido原因吗? 好的,也许但是在那之前,我应该尝试一下,这促使我写这篇文章

    在C / C ++ / Java之类的语言中,对整数变量进行自增或自减运算是标准的,可以分为前缀运算(++ i和–i)和后缀运算(i ++和i–), 每个都有细微的差异和不同的目的。

    当这些语言的用户进入Python时,他们可能会想知道为什么它不提供++或-操作。

    尽管前缀++ i可能出现在Python中,但它不是" ++"自增运算符。

    在这种情况下,它只是两个" +"(正号)的叠加,而根本不支持" ++"后缀! (SyntaxError:语法无效)。

    那么,为什么Python不支持i ++增量语法?

    首先,Python当然可以实现自我增强的效果,即以i + = 1或i = i + 1的形式编写,这在其他语言中也很常见。

    尽管Python在底部使用了不同的魔术方法(add ()和__iadd __())来完成计算,但是表面上的效果却完全相同。

    因此,我们的问题可以转换为:为什么以上两种书写风格会比i ++更好,并成为Python的最终选择?

    1. Python整数是不可变的类型

    当我们定义i = 1000时,不同的语言会区别对待它们。

    • 诸如C(写入int = 1000)的语言将适用于内存空间,并将其``绑定''到固定名称i上,同时写入变量值1000。

    这里,i的地址和类型是固定的,而值是可变的。

    • Python(写i = 1000)也将申请内存空间,但是它将"绑定"到数字1000,即该1000的地址和类型是不可变的

    因此,当我们使我"自我增加"(i = i + 1)时,两者都被区别对待。

    • 诸如C之类的语言首先找到存储在i地址中的值,然后将其加1。 操作后,新值将替换旧值
    • Python的操作过程是将i指向的数字加1,然后,将结果绑定到新应用的存储空间,然后将名称标签"粘贴"到新数字。

    打个比方:C中的i就像是一个寄生了1000的主机,而Python中的1000就像是一个寄生了i的主机。 所以我在C语言中与Python中的1000相同

    综上所述,让我们看一下i ++,不难发现:

    • 在C之类的语言中,i ++可以表示i的数值属性的增加,既不会打开新的内存空间,也不会创建新的一等公民
    • 在像Python这样的语言中,如果i ++是对其name属性的操作,则这没有任何意义。 如果将其理解为对数字本体的一种操作,那么情况将会很复杂。

    它将生成一个新的一等公民1001,因此需要为其分配一个内存地址。 如果此时占用的地址为1000,则将涉及旧对象的回收,并且与1000的原始引用关系也将受到影响。 因此只能为1001打开新的内存空间

    如果Python支持i ++,则其操作过程将比C ++复杂,并且其含义不再是"将数字增加1"(递增),而应是"创建新数字"。

    Python理论上可以实现i ++操作,但是它必须重新定义"增量运算符",这将导致具有其他语言经验的人误解。

    最好让每个人都直接写i + = 1或i = i + 1。

    2. Python具有可迭代的对象

    诸如C / C ++之类的语言已将i ++设计为主要是为了方便使用三部分的for循环结构。

    这种程序与数字本身的自增过程有关。 数字的增加与程序主体的执行有关。

    Python中没有这种结构,它提供了一种更优雅的方法:

    这里反映了不同的思维方式。

    • 它关心值范围内的迭代遍历。
    • 它不在乎或不需要人为添加数字。

    Python中的可迭代对象/迭代器/生成器提供了很好的迭代/遍历用法,并且可以完全替代i ++。

    例如,Python可以使用enumerate()与上述示例中的值同时遍历下标和特定值。

    再举一个例子,对于字典遍历,Python提供了keys(),values(),item()和其他遍历方法,这些方法非常易于使用:

    不仅在Python中很少使用i + = 1或i = i + 1,而且迭代对象的可用性使操作值范围变得容易,并且很少有人要求对其进行累加。

    因此,回到我们最初的问题,这两种"自增"方法并不比i ++好多少,仅仅是因为它们是通用操作

    这就是为什么无需引入新的运算符,Python会继续提供基础支持的原因。 真正的赢家是各种各样的可迭代对象!

    摘要

    Python不支持递增运算符,原因如下:

    • 因为它的整数是一类不变的一等公民,所以如果要支持增量运算(++),将会带来歧义

    含糊不清的原因:在本故事中

    • 主要是因为它具有更合适的实现,即迭代对象,它对遍历操作具有良好的支持。
    展开全文
  • 首先要知道的是,Python 中是没有 ++ 和 -- 的。那么要实现自增和自减的话,可以使用如下操作: a = a + 1 或 a += 1 原因分析 我们知道, python中的数字类型是不可变数据。也就是数字类型数据在 内存 中...

    前言

    更多内容,请访问我的 个人博客


    首先要知道的是,Python 中是没有 ++-- 的。那么要实现自增和自减的话,可以使用如下操作:

    a = a + 1
    或
    a += 1
    

    原因分析

    我们知道, python中的数字类型是不可变数据。也就是数字类型数据在 内存 中是不会发生改变,当变量值发生改变时,会新申请一块内存赋值为新值,然后将变量指向新的内存地址。
    实验如下:

    >>> a = 10
    >>> id(a)
    140530470127960
    >>> a += 1
    >>> id(a)
    140530470129080
    

    可以看到当 a 的值发生改变时,a 指向的内存地址也发生了改变。而在C语言中,a 指向的内存地址并不会发生改变,而是改变内存的内容。

    += 是改变变量,相当于重新生成一个变量,把操作后的结果赋予这个新生成的变量。
    ++ 是改变了对象本身,而不是变量本身,即改变数据地址所指向的内存中的内容。

    既然 Python 中的数字类型是不可变的,那何来的“自增”这么一说呢?

    另外:

    int 理论上是每次赋值都创建一个新对象的。但是由于使用频繁,为了提升性能避免浪费,所有 python 有个 整数池,默认 [-5, 256] 的数字都属于这个整数池,这些每次赋值的时候,是取得池中的整数对象。但是其他的除外,如下:

    >>> a = 5
    >>> b = 5
    >>> id(a)
    140530470128360
    >>> id(b)
    140530470128360
    >>> a is b
    True
    
    >>> c = 257
    >>> d = 257
    >>> id(c)
    140530470136432
    >>> id(d)
    140530470136408
    

    但:

    有时候在 Python 中看到存在 ++i 这种形式,这其实不是自增,只是简单的表示正负数的正号而已。正正得正,负负得正,所以 ++i--i 都是 i


    更多编程教学请关注公众号:潘高陪你学编程

    image


    展开全文
  • Python中关于++和—(自增和自减)的理解 本文链接:https://blog.csdn.net/u011236348/article/details/89311490 前言 首先要知道的是,Python中是没有++和--的。那么要实现自增和自减的话,可以使用如下操作: ...
  • Python3 * 和 ** 运算符

    2018-06-05 11:07:40
    Python 中,* 和 ** 具有语法多义性,具体来说是有三类用法。1. 算数运算* 代表乘法** 代表乘方&gt;&gt;&gt; 2 * 5 10 &gt;&gt;&gt; 2 ** 5 322. 函数参数*args 和 **kwargs 主要用于...
  • python语言介绍

    2018-11-15 21:11:02
    Python是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。 发展历程  自从20世纪90年代初Python语言诞生...
  • 本课程讲解使用Python进行音频处理和视频处理,全程讲案例。预计20课,一边录制课程一边补充目录。课程录完之前暂定39元,全部上传之后再重新定价。
  • Python中的*使用

    2018-03-04 19:05:05
    Python中的*使用  在为函数传递参数和函数定义时使用参数的时候,时常会看到有和 *和**,下面分别讲解其作用。 调用函数时使用*和 ** 假设有函数 def test(a, b, c) test(*args):* 的作用其实就是把序列 args...
  • 不要再问我python好不好学了 我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的教学下独立完成python游戏,植物大战僵尸简单版,如果要肯花时间,接下来的网络开发也不是问题,人工智能也可以学个调包...
  • 最新Python学习路线+千锋Python课程大纲+Python视频教程+Python学习资料下载地址大合集 目前Python已经成为最受欢迎的程序设计语言之一。Python的设计哲学是“优雅”、“明确”、“简单”。 Python的优点(来自...
  • Python全栈视频教程

    2019-10-30 14:39:55
    Python全栈视频培训教程,帮助开发者从零到一入门python:1.深入理解python语法机制与底层原理,2.深入实战python各种案例 , 3.语音识别,图形界面,多线程爬虫,语音合成,游戏控制等等精彩案例。
  • Python数据分析与机器学习实战教程,该课程精心挑选真实的数据集为案例,通过python数据科学库numpy,pandas,matplot结合机器学习库scikit-learn完成一些列的机器学习案例。课程以实战为基础,所有课时都结合代码...
  • Python爬虫技术视频教程,该课程每堂课都有一个作业,包含的项目案例有家长帮142600条数据爬取与分析,全球天气数据抓取与分析,淘宝商品信息数据众数分析,12306余票查询,python软件打包exe与发布。学完此课程能让...
  • 之前编写Python更多的是使用pycharm作为编译器进行开发,但是个人感觉用起来比较笨重,而且还收费的,需要进行破解才能使用。后来发现vscode这个软件,觉得很轻便,而且和之前使用的vs2018风格一样。 在这里对...
1 2 3 4 5 ... 20
收藏数 3,122,467
精华内容 1,248,986
关键字:

python