0基础python语言教程_python语言基础教程 - CSDN
  • 第1章 Python编程基础 1.编程语言是什么 2.编译型语言和解释型语言 3.Python是什么 4.Python具有哪些特点(优点和缺点) 5.学Python,不需要有编程基础! 6.学Python能干什么 7.Python 2.x和Python 3.x,初学...

    第1章 Python编程基础

    1.编程语言是什么

    2.编译型语言和解释型语言

    3.Python是什么

    4.Python具有哪些特点(优点和缺点)

    5.学Python,不需要有编程基础!

    6.学Python能干什么

    7.Python 2.x和Python 3.x,初学者应如何选择?

    8.Python 3和Python 2的区别

    9.Python 2to3:自动将Python 2.x代码转换成Python3.x代码

    10.Windows安装Python

    11.Linux安装Python

    12.Mac安装Python环境

    13.python不是内部或外部命令的解决方法

    14.编写第一个Python程序

    15.Python交互式解释器

    16.Python注释

    第2章 变量类型和运算符

    1.Python变量及其使用

    2.Python变量命名规则

    3.Python数值类型(整形、浮点型和复数)

    4.Python字符串

    5.Python bytes

    6.Python转义字符

    7.Python格式化字符串

    8.Python截取字符串

    9.Python字符串大小写转换

    10.Python去除字符串中空格

    11.Python字符串操作(查找,替换,分割和连接)

    12.Python赋值运算符

    13.Python算术运算符

    14.Python位运算符

    15.Python bool类型和比较运算符

    16.Python逻辑运算符

    17.Python三目运算符

    18.Python运算符优先级

    第3章 列表、元组和字典

    1.Python序列(列表和元组)

    2.Python list()和tuple()

    3.Python list列表添加元素

    4.Python list列表删除元素

    5.Python list列表修改元素

    6.Python list常用方法

    7.Python字典

    第4章 Python流程控制

    1.Python if else条件语句

    2.Python pass

    3.Python assert断言

    4.Python while循环

    5.Python for循环

    6.Python循环结构中else用法

    7.Python循环嵌套

    8.Python列表推导式

    9.Python zip函数

    10.Python reversed函数

    11.Python sorted函数

    12.Python break

    13.Python continue

    14.Python项目实战之数字转人民币读法

    15.Python项目实战之绕圈圈面试题

    第5章 函数和lambda表达式

    1.Python函数

    2.Python函数返回多个值

    3.Python函数递归

    4.Python关键字参数

    5.Python默认参数

    6.Python可变参数

    7.Python函数参数传递机制

    8.Python变量作用域

    9.Python局部函数

    10.Python函数高级用法

    11.Python lambda表达式

    第6章 Python类和对象

    1.Python类的定义

    2.Python类对象的创建和使用

    3.python self

    4.Python类调用实例方法

    5.Python静态方法和类方法

    6.Python @函数装饰器

    7.Python类命名空间

    8.Python类变量和实例变量

    9.Python property函数

    10.Python封装

    11.Python继承机制

    12.Python父类方法重写

    13.Python super

    14.Python __slots__

    15.Python type

    16.Python metaclass

    17.Python多态

    18.Python issubclass和isinstance

    19.Python枚举类

    第7章 Python异常处理机制

    1.Python异常处理机制

    2.Python try except else

    3.Python finally

    4.Python raise

    5.Python traceback

    6.正确使用Python异常处理机制

    第8章 类特殊成员(属性和方法)

    1.Python __repr__

    2.Python __del__

    3.Python __dir__

    4.Python __dict__

    5.Python setattr、getattr、hasattr

    6.Python __call__

    7.Python 序列相关操作

    8.Python __iter__和__reversed__

    9.Python生成器

    第9章 Python模块和包

    1.Python import导入模块

    2.Python自定义模块

    3.Python加载模块

    4.Python __all__变量

    5.Python包

    6.Python查看模块方法

    7.Python __doc__

    8.Python __file__

    第10章 Python常见模块

    1.Python sys

    2.Python os

    3.Python random

    4.Python time

    5.Python json

    6.Python re

    7.Python set和frozenset

    8.Python queue

    9.Python heapq

    10.Python ChainMap

    11.Python Counter

    12.Python defaultdict

    13.Python namedtuple

    14.Python OrderedDict

    15.Python itertools

    16.Python functools

    第11章 Tkinter

    1.Python GUI库

    2.Python Tkinter

    3.Python Tkinter Pack

    4.Python Tkinter Grid

    5.Python Tkinter Place

    6.Python Tkinter command和bind

    7.Python Tkinter ttk

    8.Python Tkinter Variable

    9.Python Tkinter compound

    10.Python Tkinter Entry和Text

    11.Python Tkinter Radiobutton和Checkbutton

    12.Python Tkinter Listbox和Combobox

    13.Python Tkinter Spinbox

    14.Python Tkinter Scale和LabeledScale

    15.Python Tkinter LabelFrame

    16.Python Tkinter Panedwindow

    17.Python Tkinter OptionMenu

    18.Python Tkinter对话框

    19.Python Tkinter自定义对话框

    20.Python Tkinter输入对话框

    21.Python Tkinter文件对话框

    22.Python Tkinter askcolor

    23.Python Tkinter消息框

    24.Python Tkinter Menu菜单

    25.Python tkinter Canvas

    26.tkinter Canvas tag_bind

    27.Python tkinter Canvas绘制动画

    第12章 Python文件操作(I/O)

    1.Python pathlib

    2.Python os.path

    3.Python fnmatch

    4.Python open

    5.Python read

    6.Python readline和readlines

    7.Python fileinput

    8.Python for循环读取文件

    9.Python with

    10.Python linecache

    11.Python写入文件(write和writelines)

    12.Python os

    13.Python tempfile

    第13章 Python数据库编程

    1.Python数据库API

    2.Python SQLite创建数据表

    3.SQLite Expert安装和使用

    4.Python execute和executemany

    5.Python fetchone、fetchmany和fetchall

    6.Python executescript

    7.Python SQLite create_function

    8.Python SQLite create_aggregate

    9.Python SQLite create_collation

    10.MySQL数据库下载和安装

    11.Python pip

    12.Python MySQL数据库执行DDL语句

    13.Python MySQL数据库执行DML语句

    14.Python MySQL数据库执行查询语句

    15.Python MySQL callproc

    第14章 Python并发编程

    1.什么是线程(多线程)

    2.Python创建线程

    3.Python线程的生命周期

    4.Python Thread join

    5.Python守护线程

    6.Python sleep

    7.Python线程安全(同步锁Lock)

    8.Python线程死锁

    9.Python condition实现线程通信

    10.Python Queue队列实现线程通信

    11.Python Event实现线程通信

    12.Python线程池

    13.Python threading Local

    14.Python Timer定时器

    15.Python schedule

    16.Python fork

    17.Python Process

    18.Python设置进程启动的2种方式

    19.Python使用进程池管理进程

    20.Python进程间通信的方法

    第15章 Python网络编程

    1.什么是计算机网络,TCP/IP协议和端口号

    2.Python网络编程模块

    3.Python urllib.parse

    4.Python urllib.request

    5.Python http.cookiejar

    6.什么是TCP协议

    7.Python socket建立TCP连接

    8.Python多线程实现socket通信

    9.Python socket shutdown

    10.Python selectors

    11.UDP协议是什么

    12.socket发送和接受数据(基于UDP协议)

    13.UDP多点广播

    14.Python smtplib

    15.Python poplib

    第16章 Python文档和测试

    1.Python pydoc

    2.Python doctest

    3.Python unittest(PyUnit)

    4.Python TestSuite

    5.Python setUp和tearDown

    6.Python unittest跳过测试用例

    第17章 Python打包和发布

    1.Python zipapp打包

    2.Python PyInstaller

    第18章 Python数据可视化

    1.Python Matplotlib安装

    2.Python Matplotlib plot

    3.Python Matplotlib legend

    4.Python Matplotlib time、xlabel、ylabel、xticks、yticks

    5.Python Matplotlib subplot

    6.Python Matplotlib pie

    7.Python Matplotlib绘制柱状图(bar和barh函数)

    8.Python Matplotlib scatter

    9.Python Matplotlib contour和contourf

    10.Python plot_surface

    11.Python Pygal

    12.Python Pygal常见数据图

    13.Python读取csv文件

    14.Python读取JSON文件

    15.Python读取网络数据

    第19章 Python Scrapy网络爬虫

    1.网络爬虫是什么

    2.Python Scrapy安装

    3.Python Scrapy项目创建

    4.Python Scrapy shell

    5.Python Scrapy爬虫项目开发过程

    6.Python scrapy爬虫数据保存到MySQL数据库

    7.Python Scrapy突破反爬虫机制

    8.Python Scrapy反爬虫解决方案

    9.Python Scrapy整合Selenium

    展开全文
  • 微信搜索公众号:学习python的正确姿势,id:...给大家说一下,我要开始学习 Python 了, Python 最近很火嘛(小样,别太膨胀),不过还好我是个程序员,只不过之前玩的不是 Python 语言,所以接下来我要 pic...

    版权声明:转载请注明出处:https://fxxkpython.com

    微信搜索公众号:学习python的正确姿势,id:fxxkpython,加入pythonner的聚集地!

     

    pick up Python

    给大家说一下,我要开始学习 Python 了, Python 最近很火嘛(小样,别太膨胀),不过还好我是个程序员,只不过之前玩的不是 Python 语言,所以接下来我要 pick up Python了。是的,没错,pick up,以后你告诉别人说你要学 python,你可以很装逼的告诉他:“老子要pick up Python了!”

    人生苦短,我特么要pick up Python~~~

    人生苦短,我特么要pick up Python~~~

    而这里呢,和其它的学习 Python 的号不一样,不会乱七八糟,我会形成一个体系,也就是 Python 从0到1的整个体系,而且我也不想严肃,我要让我的这个教程呢,看起来好笑,好笑之中又能真正的学到Python的精髓,所以我会下功夫去学习,去消化,然后再转化成风趣幽默的文章,让大家看起来像看小黄文一样轻松,这是我想做的事情。

    听到小黄文,想想还有点鸡动呢 (你可别乱来啊!)

    听到小黄文,想想还有点鸡动呢 (你可别乱来啊!)

    为什么要学 Python

    对了,还没告诉你为什么要学 Python 呢,我来说说这几点就已经足够:

    Python

    Python

    1. 现在 Python 已经成为世界上最流行的编程语言之一了,而且大部分的Linux系统,MacOS系统都直接内置了 Python ,就问你牛逼不?
    1. 现在连小学生都开始学习 Python 了,Python 已经纳入了某地区小学的教材了。Pyhon 已然成为了编程界的 “网红”,现在程序员们可能不知道Cobol,Basic,Pascal,Perl,Ruby,但没有一个程序员不知道Python的。
    1. 上手简单,现在很多从来没接触过编程的人都着手开始学习Python 了,我有一朋友,之前没有任何编程基础,学了半年多找到了份工作,工资12k妥妥的,不过不要去羡慕别人的数字,人家背后的努力你没看到而已,如果你现在也是没有任何基础或者想要从0学习 Python ,那么你来对地方了!因为人生苦短,我们一起搞 Python。
    1. web开发,科学计算,3D建模,人工智能,嵌入式开发,云计算,大数据等等都特么能看到Python的身影,不知道你知不知道NASA(美国宇航局)使用Python来开发用于系统集成和卫星,火箭的测试自动化么?还有网易,腾讯,搜狐,金山,豆瓣,YouTube ,google,雅虎(太多,举例不完)都在用Python。所以这么牛逼,何不 pick up python 呢?
    1. 用 Python 可以做很多事情,可以爬取你想要的数据,可以做外挂,之前的微信跳一跳,12306抢票等都可以用Python实现,还有很多数据分析,项目系统,聊天系统,游戏等等多了去了。所以这么牛逼,何不 pick up Python 呢?

    是不是真的啊?又想骗我学习~

    是不是真的啊?又想骗我学习~

    不妨再来看下Python官网的介绍,他说这些是使用Python的人宁愿不使用其他任何东西的一些原因

    python

    python

    1. Pyhon很牛逼…而且很快;

    2. 可以和别人一起P;

    3. 在哪都可以搞;

    4. 非常友好&学习简单;

    5. 开放。

    好棒!我要pick up Python了,接下来将是学习python的正确势!

    好棒!我要pick up Python了,接下来将是学习python的正确势!

    别怕,Python 不是蟒蛇

    PS:虽然 Python 的中文意思是「蟒蛇」,但是 Python 语言的创造者 Guido van Rossum 是因为超喜欢英国广播公司的节目「蟒蛇飞行马戏」而命名这个语言的,所以你可别以为Python 创造者是个喜欢蟒蛇的怪叔叔。

    python 创始人

    python 创始人

    Python : Hello World !

    不管学什么编程语言,在一开始入门的时候,都会从「Hello Wrold」开始,这已经成为编程界的不成文规定。

    在1972年的时候,有个叫科比 布莱恩的人使用B语言撰写了第一个使用参数的 Hello World 相关程序。说明一下:此科比非彼科比,这哥们当然不是我的那位打NBA的偶像啊!

    如果科比不打NBA而去编程,会是怎么样呢?

    如果科比不打NBA而去编程,会是怎么样呢?

    科比:你们给我悠着点!!

    科比:你们给我悠着点!!

    看下图!这就是由 科比 布莱恩 撰写的「Hello Wrold」程序:

    Hello Wrold

    Hello Wrold

    自此,Hello World 成为了计算机程序员学习新的编程语言的传统美德!

    当然说到传统美德,尊老爱幼也是必须的。其实我现在发现大多数年轻人素质都比较高,反而是那些年长的老人,倚老卖老,所以以后问路尽量找年轻人。

    当然说到传统美德,尊老爱幼也是必须的。其实我现在发现大多数年轻人素质都比较高,反而是那些年长的老人,倚老卖老,所以以后问路尽量找年轻人。

    那么,我们学习 Python 也从「Hello World」开始吧!

    安装 Python

    如果你用的 Mac 或者 Linux 的话,那么你就不需要安装了,因为系统已经内置 Python 了,如果是 Windows 系统的话,安装也很简单,比安装 LOL 英雄联盟还简单。所以我相信不用我说,你也知道怎么安装,如果你连软件都不会安装,那么可以不用关注我了。

    说的好屌啊,不知道是不是真的?

    说的好屌啊,不知道是不是真的?

    你可以直接访问 Python 的官网 下载最新的版本。

    下载 python

    下载 python

    在这里告诉一下完全没经验的朋友们,千万不要去百度搜索 python 下载,然后去到类似这样的地方下载:

    别在这里下载 python

    别在这里下载 python

    因为这样做很容易被人骂傻逼的

    听说现在骂百度是一种正确的价值观!

    听说现在骂百度是一种正确的价值观!

    开始玩耍

    已经安装好Python之后呢,你可以在命令行里面输入「python」,然后你就会看到这样的东东:

    python 版本

    python 版本

    有没有看到三道杠杠 「 >>>」。是不是突然想到小学的时候,那些受老师爱戴,学生中的好榜样的队长袖口上的三道杠!

    三道杠,怕不怕

    三道杠,怕不怕

    大队长和大队委,牛逼牛逼,社会社会。

    大队长和大队委,牛逼牛逼,社会社会。

    不过在 Python 这里呢, >>> 是一个提示符来的,也就是在它后面可以输入一些内容,更确切的说,这是交互式Pyhon解释器接收内容的符号

    比如我们要 Python 给我们打印 Hello World 的字样,那么你就可以这样子:在 “三道杠” 后面输入 print (“Hello World”) , 然后用力按一下回车键,你就可以看到 Python 解释器打印出 Hello World 这样的字符串了:

    Hello World

    Hello World

    当然仅仅是打印 Hello World 你可能觉得没什么牛逼的,但是这不是才入门么,想要做更多有趣的事情么?跟着我一步一步来!

    Pythoner :挑选一个Python编辑器

    各位 Pythoner 好啊!在这个烦躁的时代,相聚就是缘分,很高兴各位 Pythoner 能相聚于此,希望接下来的路,我们一起走下去,使用 Python 来做一些有趣的事情,有意义的事情。

    我们在玩游戏的时候,我们通过层层努力的打怪升级,为的是什么?是女人么?是金钱么? 当然不是,我们有那么肤浅么?我们为了能够拥有更牛逼的装备。

    老话说的好:工欲善其事必先利其器!你的武器越牛逼,你的女人就越能够对你服服帖帖的。

    老话说的好:工欲善其事必先利其器!你的武器越牛逼,你的女人就越能够对你服服帖帖的。

    所以,我们在使用 Python 来编程的时候,我们也需要一个牛逼的武器,来编写我们的代码 —— 编辑器!

    在这里跟大家说一下现在市面上比较主流的 Python 编辑器供你参考,要知道,适合自己的才是好的。如果你的丁丁很小,使用再大 size 的套套也是白搭!

    Sublime Text

    Sublime Text

    Sublime Text

    Sublime Text 比较适合 Python 新手使用,Sublime Text支持跨平台,而且可以使用其丰富的插件和主题。各种语法高亮和代码补全,整体看起来挺舒服的,而且主题配置起来也不难。

    IDLE

    IDLE

    IDLE

    如果你是 Windows 系统可以使用 IDLE, 它是 Pyhton 自带的一款编辑器,所以刚开始也可以使用它来玩玩,IDLE具备语法高亮功能,还允许你在IDLE中运行你的程序。许多事情它会自动帮你处理。比如debug什么的。

    VIM

    VIM

    VIM

    Vim是一款强大的编辑器,如果你熟练使用 Vim 的话,那么你完全可以脱离鼠标,双手在键盘上像弹钢琴那般酸爽,不过 Vim 需要一定的学习成本,需要花点时间去研究一下各种快捷命令和插件的使用,但是从长远来看,这都是大有所益的。

    PyCharm

    PyCharm

    PyCharm

    我个人比较中意这个,如果你使用过 IntelliJ IDEA 的话,你应该会对其爱不释手,而这款 PyCharm 也是出自同一家公司,用起来会很顺手,现在很多公司,如Twitter,Groupon,Spotify,eBay和Telefonica等都在用 PyCharm 。不过你使用它的专业版需要花钱购买。

    Emacs

    Emacs

    Emacs

    Emacs 在 python 开发界也很受欢迎,它是一款开源的编辑器,支持插件扩展,可以配置一个 python 集成开发环境, Emacs 不仅仅是一个编辑器,他是一个整合环境,可以说是一个集成开发环境。

    ok,就推荐这几个市面上比较流行的编辑器,当然还有其他的编辑器,最适合自己的才是最好的,用起来顺手不尴尬才爽嘛~

    在这里给点建议就是新手可以先上手使用 IDLE 和 Sublime Text ,Vim是一款强大的编辑器,没事花点时间研究下,相信我,真的会受益匪浅的。

    自己写一个 Say Hello 的 python 程序

    是不是觉得我特么才安装了 Python 软件,这么快我就可以写出 python 程序了?

    先别怀疑着先,一开始我就说了,Python语言简单,上手快,所以你跟着我呢,一步一步来,准没错的。

    又他妈的不要脸了!

    又他妈的不要脸了!

    通过 Pythoner :挑选一个Python编辑器相信你已经知道使用什么样的编辑器了,因为这里力求从0到1,做一个完整 python 的体系,所以现在就先用 IDLE 这个编辑器,到时候你越来越牛逼了,咱们再换编辑器,没毛病。

    好了,别废话了,快点带我写程序啊!

    好了,别废话了,快点带我写程序啊!

    这个Python程序可以干嘛

    首先我们来想一下我们这个 Python 程序可以干嘛?

    1. 可以让我们输入名字;
    2. 可以跟我们输入的这个名字say Hello!

    ok,我们要达到以上的功能,咱们说干就干!

    开始编写第一个python小程序

    打开我们的编辑器:

    IDLE编辑器

    IDLE编辑器

    现在的它是处于交互式解释器的状态,如果我们现在在这个交互解释器编写代码,那等下关掉所有的代码就不见了,我们当然是想要能够写出一个自己和别人都能够运行的程序,怎么能说代码丢掉就丢掉呢?

    我的小九九都被你发现了,是不是我的pp一抬,你就知道我是要拉尿还是拉shit。

    我的小九九都被你发现了,是不是我的pp一抬,你就知道我是要拉尿还是拉shit。

    那么我们就使用快捷键「Ctrl + N」来新建一个编辑窗口,可以看到这里没有「三道杠」提示符了吧,我们在这里写的代码待会可以保存,爱在哪里运行就哪里运行。

    IDLE编辑器

    IDLE编辑器

    我们刚刚说了,想要这个程序可以让我们输入名字,那么我们可以用一个叫做 name 的变量来接收别人输入名字,可能你现在不知道变量是什么鬼,但是没关系,你现在把它理解为是一个桶,这个桶可以来存放用户输入的名字就好了,往后我会告诉你变量的使用,别急,咱们慢慢来。

    ok,那么我们就可以写我们的第一行代码了:

    1
    
    name = input ("你他妈叫什么玩意儿?")
    

    解释一下这行代码的意思,input 是输入的意思,而「你他妈叫什么玩意儿?」就是显示给用户看的提示语。

    我们已经完成了第一点,也就是这个程序可以让我们输入名字,那么我们继续完成第二点,可以跟我们输入的这个名字say Hello!

    那么很简单,我们只要再写一行代码即可:

    1
    
    print("Hello" + name)
    

    解释一下这行代码的意思, print 就是打印的意思,你可以理解为信息的输出,我们已经知道 name 这个 “桶” 已经装了用户输入的名字,所以 “Hello” + name 就是会输出 Hello xxx!

    IDLE编辑器

    IDLE编辑器

    ok,我们已经写完代码了,我们「Ctrl + S」保存一下文件到桌面,你可以把它命名为「Hello.py」。

    接着我们就可以来运行我们的程序了,在我们的 IDLE 中用力的按一下 F5 开始运行程序:

    IDLE编辑器

    IDLE编辑器

    可以可以~

    可以可以~

    看到木有,我们的程序完成了。是不是挺好玩的!慢慢来,我们到时就可以写游戏,写网站,写爬虫了,是不是想想还有点小激动呢?

    什么是常量,什么是变量?

    这两个概念很简单理解,以后我们在使用 Python 编程的时候也会经常用到。

    常量

    我们知道,世界杯踢球每队会派出 11 名队员出场比赛,这里的 11 是固定不变的。我们高中的时候学的物理有个叫做重力加速度的概念,它是 9.8 m/s²,这里的 9.8 也是一样是固定不变的,对于这些固定不变的,具备字面上的意义的量我们就称为「常量」,它就像一座高高的大山,不会被轻而易举的改变,愚公移山?不存在的。

    愚公移山

    愚公移山

    愚公不畏艰难,坚持不懈,挖山不止,最终感动天帝而将山挪走的故事。通过愚公的坚持不懈与智叟的胆小怯懦,以及“愚”与“智”的对比告诉人们,无论遇到什么困难,只要有恒心、有毅力地做下去,就有可能成功。

    愚公不畏艰难,坚持不懈,挖山不止,最终感动天帝而将山挪走的故事。通过愚公的坚持不懈与智叟的胆小怯懦,以及“愚”与“智”的对比告诉人们,无论遇到什么困难,只要有恒心、有毅力地做下去,就有可能成功。

    这特么跟常量有毛关系?

    这特么跟常量有毛关系?

    变量

    自己动手写一个会跟你 Say Hello 的 python 程序中我们就谈到了变量这个玩意,我说变量可以把它理解为一个「桶」,你可以通过它来存储一些变化的值。

    其实说白了变量只是你的计算机中存储信息的一部分内存,它可以存储所有可以变化的值。

    比如说你想要用「 i 」 来表示一个变量,对python来说是一件很简单的事,你只要用 「i = 变化的值」就可以了。

    举个例子:

    python 变量

    python 变量

    这里使用 i 来表示一个变化的值 5,也就是说我们将 5 赋值给变量 i 。那么现在这个 i 指向的值就是 5 。

    所以这里的 i+6 就是 5+6。

    假如我们现在想让 i 来表示的值变成 2,这完全没问题,只要这样即可:

    python 变量

    python 变量

    男人能屈能伸,可长可短,算不算变量?

    男人能屈能伸,可长可短,算不算变量?

    注意了,Python中的变量名称只能由字母、数字、下划线构成,而且不可以数字打头,像「xiaoshuaib_520」这样的是合法的,但是如果是「520_xiaoshuaib」那是不可以的。

    不信你瞧:

    python 变量

    python 变量

    Python基本数据类型之「数」

    相信通过什么是常量,什么是变量?你已经知道了变量是个什么玩意了,变量可以来处理变化的值,而这些变化的值呢,是可以对其分门别类的,也就是说每个变化的值它是有专属的类型的,你可以理解为这个值打一个标签。

    在这里补充一点:Python 中的变量是不需要声明。每个变量在使用前都必须赋值,变量赋值以后这个变量才会被创建。

    比如说 i = 5 ,在这里并不需要去定义这个 i 的类型,例如「整数类型 i = 5」,我们只要直接把 5 赋值给 i 就可以了,赋值后这个变量 i 就被创建了。这时候我们就可以说变量 i 现在所指的是一个为「整数类型的值5」。

    Python除了基本数据类型「数」之外,还别的基本类型例如字符串,我们也可以自己定义数据类型,这个往后讲。

    Python除了基本数据类型「数」之外,还别的基本类型例如字符串,我们也可以自己定义数据类型,这个往后讲。

    接下来就来说说 Python 中基础数据类型中的「数」。

    在 Python 中的数有四种,分别是整数(int)、长整数(long)、浮点数(float)、复数(complex)。

    整数

    像 6 这样的数字就是整数,不带小数点的,而长整数只不过代表的是比较大一点的整数,现在 python3 中的整数(int)已经不限制数的大小限制了,所以整数类型也包括长整数。

    我们可以通过 Python 交互式解释器来运算整数:

    python运算整数

    python运算整数

    这里的 「6+6」没什么好说的吧,而 「6//2」就是6整除2的意思了,「1%2」的意思是说1除以2的余数,「%」有个专业名词叫做取余或者取模。而「2**3」就是2的三次方的意思。

    怎么样?简单吧!

    浮点数

    但是如果你试试 「1/2」,这时候你会发现结果有小数点:

    python运算浮点数

    python运算浮点数

    在这里的 「/」是除的意思,但是不会整除,你可以看到每次的结果都会有小数点。而这些像 「0.5」,「1.0」带有小数点的数我们就叫做浮点数。

    复数

    Python中的复数由实数部分和虚数部分组成。虚部的后缀为「j」。

    例如:4+5j 就是一个复数,实数部分为 4.0,虚数部分为 5.0。

    你可以把复数理解成为一个平面的一个点,例如上面这个例子你可以把它理解为平面上的点(4,5)。

    Python连复数都支持,你说它能不强大么?

    二进制八进制十六进制的快速转化

    二进制

    我们都知道,在计算机中,存储的数据都是像这样「010101010110010101…」的东东,这一串数字就是二进制。

    想想你家里的灯,是不是只有两种状态,一种是开灯,一种是关灯。

    开关灯

    开关灯

    而我们的计算机在表示数据的时候也是按照这样的状态来表示的。也就是一开一关两个状态。

    我们把 0 当做关,把 1 当做开!

    0有点像把锁,1有点像把钥匙!emmmm..

    0有点像把锁,1有点像把钥匙!emmmm..

    但是现在想想啊,我们那么多数据,比如说一个 mp3 音乐,一部苍老师的教程视频,如果只让计算机仅仅以 0 和 1 这两种状态来表达这些数据,那是心有余而力不足的。

    那么怎么办呢?这时候国际标准化组织就决定了,不够用是吧,那么用 8 个这样的状态来表达一个数据!

    也就是:

    一个数据 = 01010101 (8个状态)

    那么这样的由8个状态组成的数据就叫做字节

    不信的话你可以随便点开的桌面的文件,右键打开属性看看,是不是都会给你显示这个文件的大小都会用字节来表示:

    文件的大小

    文件的大小

    你这小黄图能否图片分享一下?

    你这小黄图能否图片分享一下?

    所以知道以下的东东代表的是什么了吧:

    1byte(字节)= 8bit(位,状态)
    
    1kb = 1024byte
    1mb = 1024kb
    1g = 1024mb
    1tb = 1024g
    

    二进制怎么转化成八进制?

    我们已经知道了一个字节需要8个二进制位来表示,有点长了,那么用八进制来表示的话就会短一点,比如说有怎么一个字节:

    0101101

    如果我们想把它变成 八进制 的话,那就从右到左,每三位当做一个,最左边的不够就补0。也就是说上面这个可以这样:

    000101101

    把每三位的整体转化成十进制的数,就变成八进制了。至于怎么转换,下面会说到。这时候用八进制就只用3个数就可以表示了。

    二进制怎么转化成十六进制?

    同理,十六进制可以用更少的位数来表示,如果我们想把0101101变成 十六进制 的话,那就从右到左,每四位当做一个,最左边的不够就补0。也就是说上面这个可以这样:

    00101101

    把每四位的整体转化成十进制的数,就变成十六进制了。至于这么转换,下面也会说到。这时候用十六进制就只用2个数就可以表示了。

    不同的进制表达方式

    二进制是由 「0,1」 组成,通常以 0b 开头。

    八进制是由 「0,1,2,3,4,5,6,7」 组成,以 0 开头。

    十进制是由 「0,1,2,3,4,5,6,7,8,9,0」 组成。

    十六进制是由 「0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f」 组成,以0x开头的。

    进制之间的相互转化

    在这里告诉大家一个进制之间快速转化的方法,当然,不是使用计算器啊 - -

    首先你只要记住以下对应关系即可:

    1
    2
    3
    
    1    1    1    1    1    1    1    1
    
    128 64  32  16   8    4    2    1
    

    二进制转化为十进制

    那么如果告诉你一个二进制 如 0b11111111,转化成十进制,怎么做呢?把对应的数加起来就可以了。

    0b11111111 = 128+64+32+16+8+4+2+1 = 255

    看到 255 有没有一种熟悉的感觉?

    所以这时候再给你出道题,把 0b010110 转化成十进制你应该会了吧?

    0b010110 = 16 + 4 + 2 = 22

    十进制转化为二进制

    同样的:

    1
    2
    3
    
    1    1    1    1    1    1    1    1
    
    128 64  32  16   8    4    2    1
    

    我们要把十进制如22,转为二进制就是:

    22之内16有没有? 那么在16对应的地方就有1。

    22-16=6,那么8对应的就不存在了。

    6之内有4对吧,那么4对应的就有1,6-4=2,那么2也有,2-2=0,所以1就没了。

    所以最后的答案就是 22 = 0b10110。

    二进制转化为八进制

    我们已经知道了在二进制中每三位的十进制代表一个八进制位:

    000101101

    那么这时候只要把这个二进制拆成三份,每一份转化成十进制,再组合起来就是八进制了。

    000 = 0;

    101 = 4+1 = 5;

    101 = 4+1 = 5;

    所以二进制 0b000101101 = 八进制0055。

    二进制转化为十六进制

    我们已经知道了在二进制中每四位的十进制代表一个十六进制位:

    00101101

    那么这时候只要把这个二进制拆成两份,每一份转化成十进制,再组合起来就是十六进制了。

    0010 = 2;

    1101 = 8+4+1 = D;

    所以二进制 0b00101101 = 十六进制0x2D。

    ok,以上,其实说实话,如果不懂这个也不影响后面使用 Python 来编程,但是懂的多一些总归没有什么坏处。

    各种符号的意义及用法

    我们小时候,老师都教过我们 1+1=2 ,这个 「1+1」 就是表达式, 「+」 就是运算符。

    咱们接下来就来了解一下,在 python 中,那些运算符是什么意思,怎么用? 相信看完,你就能够明白了。

    加减乘除(+-/*)

    对于 +-*/ 我们都知道它们是什么含义了吧,就算你的数学是体育老师教的,你也会懂加减乘除吧。

    不过有两个小细节值得你去注意,就是字符串之间的相加和相乘:

    python运算浮点数

    看懂是啥意思了么?

    字符串之间的相加会被”拼接”起来,而字符串和数字相乘就会重复多次相同的字符串。

    其它的大于、小于、大于等于、小于等于就不说了,因为我们小学老师都跟我们说过了。接下来说几个比较少见的符号。

    幂(**)

    幂就是以前我们学数学的时候老师讲的什么什么几次方,别一看到幂就想到杨幂。

    杨幂

    杨幂

    用符号 ** 表示, 比如 2**3 = 8

    整除(//)

    我们知道 / 是除的意思,你知道 6/3 等于多少么?你可能会觉得在侮辱你的智商对不对,不是 2 么? 在 python 中得出的结果是 2.0 , 也就是它返回的是浮点数。 那么我们只想得到整数部分怎么玩呢?

    用 // 这个 : 6//3 = 2。

    取模(%)

    取模的意思不是让你去获取个模特,是得到除法的余数,比如 8%5 = 3 ,因为 8/5 = 1余3。

    左移(<<)和右移(>>)

    移的意思就是把一个数的二进制移动多少个位。

    比如 2 << 2 = 8 。这是为什么呢?

    首先 2 的 二进制 是 0b00000010 ,然后将它左移2位(虚位补0)就变成这样: 0b00001000 ,它对应的十进制就是 8 。

    同样的道理:

    8 >> 2 的意思就是将 8 的二进制向右移动2位:

    0b00001000 右移动2位:0b00000010 也就是对应十进制的 2。

    那么下次有人问你2*8怎么样写代码比较高效,你就直接甩给它: 2<<3 就好了。

    与(&)

    记住一句话:”同真与真”,什么意思呢? 比如 1&1=1,1&0=0,

    1就是真,0就是假。也就是只有 1&1=1,其它的都等于0。

    那么 2 & 3 怎么算?

    先将它们转化为二进制:

    2对应的二进制 : 0b00000010

    3对应的二进制 : 0b00000011

    那么从右往左: 0&1=0 ,1&1=1,0&0=0,所以结果为

    0b00000010,转化为十进制就是2,所以 2&3=2。

    或(|)

    记住一句话:”同假或假”,什么意思呢? 比如 1|1=1,0|0=0,

    1就是真,0就是假。也就是只有 0|0=0,其它的都等于1。

    那么 2 | 3 怎么算?

    先将它们转化为二进制:

    2对应的二进制 : 0b00000010

    3对应的二进制 : 0b00000011

    那么从右往左: 0|1=1 ,1&1=1,0&0=0,所以结果为

    0b00000011,转化为十进制就是3,所以 2|3=3。

    异或(^)

    相同者假,不同者真,什么意思呢?就是 1^1=0, 1^0=1。

    那么 2^3 怎么算?

    先将它们转化为二进制:

    2对应的二进制 : 0b00000010

    3对应的二进制 : 0b00000011

    那么从右往左: 0^1=1 ,1^1=0,0&0=0,所以结果为

    0b00000001,转化为十进制就是1,所以 2^3=1。

    翻转(~)

    x的按位翻转就是是-(x+1)。

    那么 ~2 怎么算?

    ~2 = -(2+1) ; 所以答案就是-3。

    ok,以上,其实没必要去记住,了解一下就这些符号是什么意思,怎么算的就好了。

    Python基本数据类型之「字符串」

    单引号(’)字符串

    把一段文本用单引号「’」包围起来,它就变成了字符串,和数一样是一个值。比如:

    text = ‘世界上最帅的人是wistbean’

    这里的变量名就是text,而对应的值就是字符串「世界上最帅的人是wistbean」。

    双引号(“)字符串

    把一段文本用双引号「”」包围起来,它就变成了字符串,和数一样是一个值。比如:

    text = “世界上最帅的人是wistbean”

    这里的变量名就是text,而对应的值就是字符串「世界上最帅的人是wistbean」。

    挖槽,这不是和单引号一样么?别特么逗我啊!

    挖槽,这不是和单引号一样么?别特么逗我啊!

    哈哈,是的,其实单引号的字符串和双引号的字符串是一样的,不过为什么Python要支持单引号又支持双引号呢?

    那是因为,有时候我们的文本里面,不一定就只用双引号或者单引号啊,比如说:

    “包钟480,包夜1200”,她说。

    这句话对于 Python 解释器来说,他只认识引号里面的内容,也就是说 python 只知道字符串「包钟480,包夜1200」,而后面的「,她说。」对于 Python 来说不认识。

    那么如果是这样的话:

    ‘“包钟480,包夜1200”,她说。’

    Python 就能懂!

    所以你应该理解为什么 Python 同时支持双引号和单引号了吧。

    包夜太贵了,能不能便宜点啊?

    包夜太贵了,能不能便宜点啊?

    三引号字符串(’’’或者”””)

    这三引号是来干嘛的呢?如果你要表示一个很长很长的字符串,那么这个三引号就可以派上用场了,因为它支持跨多行,而且在这个三引号的字符串里面你要用单引号和双引号都无所谓。

    像这样:

    “”” MM:”噢,请你不要吻我”MM:”噢,请你不要吻”MM:”噢,请你不要”MM:”噢,请你不”MM:”噢,请你”MM:”噢,请”MM:”噢” “””

    Python 是完全看得懂的。

    我好像发现了什么不得了的事情!!!

    我好像发现了什么不得了的事情!!!

    转义

    可能你会对这样的字符串「’”包钟480,包夜1200”,她说。’」感到别扭,老子就想都用一种引号,不想要一下双引号一下单引号的行不行?

    行行行,老子说什么就是什么!

    行行行,老子说什么就是什么!

    那么这时候就可以用「转义」来解决,转义的符号是反斜杠「\」。

    比如这句话「’”包钟480,包夜1200”,她说。’」我们通过转义可以变成这样:

    ‘ \’包钟480,包夜1200\’,她说。’

    那么这个时候 Python 就能够看懂了, 现在这玩意「\’」在 Python 眼中就是「’」。

    所以你可以把转义「\」理解为是为了让 Python 看的到我们想要表达的东西。

    字符串的拼接

    有时候我们需要两段话拼接在一起,对于 Python 来说so easy,只要像两个数字一样相加即可。

    像这样:

    x = "Hello, "
    
    y = "World!"
    
    x+y
    

    这时候呢,「+」这个符号就把两个字符串连接起来了,在这里的 x+y 就等于 Hello,World!

    原始字符串

    有一些符号是代表特殊意义的,比如说 「\n」就代表换行。比如像这样:

    print(“小帅b\n我爱死你了。”)

    那么这时候在 Python 眼中就是:

    小帅b

    我爱死你了。

    这很好啊, Python 很聪明还帮忙换行啦!

    这很好啊, Python 很聪明还帮忙换行啦!

    可是,有时候 Python 自作聪明了,比如说我们有这么一个在 c 盘下的一个叫做niubi的文件夹「C:\niubi」,那么我们这样打印的话:

    print(“C:\niubi”)

    结果你也知道了,路径被拆掉了。

    这就尴尬了,不过还好,有个叫做原始字符串的东西,我们只要在前面加个「r」就相安无事了,这时候 Python 就知道,哦,原来你要的是原始字符串啊,那老子不帮你换行了,省的被说自作聪明。

    我们只需要这样:

    print(r”C:\niubi”)

    ok,Python基本数据类型之「字符串」就到这里,当然字符串的使用以后会经常用到的,对字符串的操作,字符串的序列,Unicode等是接下来需要了解使用的。

    Python 的控制流条件语句

    if…else

    还记的你以前小学的时候老师问你用「如果…那么…否则…」来造句么?每当想起这个的时候,我就会想到费玉清老师的经典名句:

    「你追我,如果你追到我,我就跟你嘿嘿嘿。」

    那么在Python如何表示的呢? 其实很简单,就是 if 和 else:

    1
    2
    3
    4
    5
    6
    7
    8
    
    if 你追到我:   (如果的条件语句)
    
        我就跟你嘿嘿嘿  (如果为真,就执行这里)
    
    else :           (否则)
    
        我就不跟你嘿嘿嘿  (如果为假,就执行这里)
    

    if…elif…else

    此外,如果老师要你用「如果…否则如果..否则..」来造句的话,比如说:如果你很持久,那么我嫁给你,否则如果你很有钱,那么我考虑一下,否则滚蛋。那么对应于 python 来说就是:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    if 你很持久:
    
        嫁给你
    
    elif 你很有钱:
    
        考虑一下
    
    else:
    
        滚蛋。
    

    好了,我们已经知道怎么用Python去使用我们的条件语句了,那么如果你想开发一个猜数字的小程序对你来说不在话下了。

    我们这就来开发一个python猜数字小游戏,首先我们自己在程序定义好一个数字,然后让用户去猜,如果猜中了我们就恭喜他,猜不中就告诉他猜的数字偏大还是偏小。

    打开我们的idle,撸起我们的代码:

    首先定义一个变量,把我们要被猜的数字先写好:

    number = 520

    接着让用户输入数字:

    guessNumber = int(input('请输入你要猜的数字: '))

    接着我们来判断:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    if guessNumber == number :
    
        print("哇塞,牛逼啊,这就被你猜中了")
    
    elif guessNumber < number :
    
        print("你猜的数字小了,再往高了猜")
    
    else :
    
        print("你猜的数字大了,再往低了猜")
    

    and

    如果你想要一个又有钱又帅的男人,怎么用 python 表示呢?

    可以这样:

    1
    2
    3
    
    if 有钱 and 帅 :
    
        嫁给你。
    

    在这里就用到了「and」这个逻辑符,就是并且的意思,如果有钱和帅同时成立,那么就执行 if 下的语句。如果他没钱,那么立即返回,不会再管他帅不帅了,不会去执行 if 下面的语句。

    or

    那么这时候你可能会问:那么我想要嫁给一个有钱或者帅就行了,也就是满足其一我都嫁,怎么表示呢?

    可以这样:

    1
    2
    3
    
    if 有钱 or 帅 :
    
        嫁给你。
    

    这里用到的「or」逻辑符,它代表的意思就是或者,如果他是一个有钱的人,那么就直接执行 if 下面的语句,不需要再去判断帅不帅了,如果他没钱,就会再去判断他帅不帅,如果帅才执行 if 下面的语句。

    虽然我没钱也不帅,但是我骚,可不可以嫁给我?

    虽然我没钱也不帅,但是我骚,可不可以嫁给我?

    Python中的循环语句

    不知道你有没有听过这么个东西:除去睡眠,我们每个人只能活1万多天,有些人活了1万多次,而有些人呢,则只是活了1天,而重复了1万多次。

    我希望我的读者不要成为后者,咱们每天提升自己一点点,活出个样子来。

    好阔怕,我不要重复~~

    在 Python 的世界里面,可以用 while 和 for 来表示重复,也就是循环。

    while循环

    1
    2
    3
    
    while 活着:
    
       每天做着一样的事情。
    

    这样写的意思就是,只要你活着,就一直不断的执行while下面的语句。

    我们可以来写一个抛硬币的 python 程序,我们事先定义好硬币的正反面,然后让用户猜,如果用户猜对了就奖励一个吻,猜错了就继续猜,直到让他猜中为止。

    打开我们的 IDLE,代码撸起来:

    首先定义一个变量,我们的值定义为正面:

    coin = "正面"

    接着定义一个 flag :

    flag = True

    然后我们写一个循环:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    while flag :
    
        guess = input("请猜一下是正面还是反面:")
    
        if(guess == "反面") :
            print("你猜错了,继续猜")
        elif(guess == "正面") :
            print("恭喜你猜对了,奖励你一个吻")
            flag = False
    

    执行:

    解释一下:当 while 发现 flag 为 true 的时候,就会一次又一次的执行执行 while 下面的一句,直到我们猜中之后,我们就将flag 这个变量改为 false ,while 发现为 false 的时候就不往下循环了。

    for循环

    while 可以做到在条件为真的时候反复的执行,不过有时候我们需要在特定范围循环,比如说我们要在第一天到第五天每天啪啪啪一次,那么这时候用 for 就再适合不过了:

    1
    2
    3
    4
    
    days = [1,2,3,4,5]
    
    for day in days :
        print("第" + str(day) + "天啪啪啪")
    

    我们来运行下:

    可以看到第一次执行,day就是1,第二次执行day就是2,它就这样一直循环下去,没有一点念想。

    终止循环break

    有一天你突然发现,我不能再这么下去了,不能再重复的过这样的日子了,得有点改变,跳出这个重复的怪圈,那么对于 Python 来说,用break:

    1
    2
    3
    4
    
    while 活着:
        重复的过日子。
        if(醒悟):
        break
    

    通过 break 呢,就可以跳出这个循环了。

    continue

    有时候我们在循环里面,在某个地方不希望它循环下去,先跳过本次接下来的东西,直接执行下一次,这时候我们就可以用 continue了,来试试:

    Python中的函数

    你可以把函数当做是一个「特定的小程序」,可以用它们来执行特定的事情。

    Python中有内置了许多「特定的小程序」,我们可以非常方便的直接调用它们来执行我们想要操作的东西,这叫内置函数。

    另外我们也可以根据我们自己的需要来创造「特定的小程序」,这叫自定义函数。

    定义函数

    假设我们要自己定义一个函数,这个函数用来叫:亚麻跌,哈哈,想想我们一调用这个函数,它就叫「亚麻跌」。是不是很好玩。

    像这样定义一个函数:

    1
    2
    
    def jiao():
        print("亚麻跌~~~")
    

    那么当我们要调用它的时候只要这样「jiao()」就可以了。

    用 IDLE 来试一试吧:

     

    来解释一下:

    1
    2
    
    def jiao():
        print("亚麻跌~~~")
    

    这里的 def 就是一个关键字来的,代表我们要去定义一个函数,而 jiao 就是函数名称,当我们要使用这个函数的时候直接调用它就可以了。而 print(”亚麻跌~~~”) 就是函数体,也就是它所具备的功能实现。

    函数的形参和实参

    我们既然定义了一个会叫床的函数了,那么每调用一下它就叫一下是不是不太爽?如果我们能调用这个函数,然后传个数字给它,这个数字是多少,它就叫多少次,岂不是更好?

    可以这样:

    1
    2
    3
    
    def jiao(times) :
        for time in range(times) :
            print("亚麻跌~~~")
    

    在这里我们定义了一个 times 的参数,接下来我们通过这个range用内置函数生成一个序列,接着用 for 循环,这样子当我们调用函数并传一个数字进去,它就能根据这个数字,去叫相应的次数了。

    比如我们调用 jiao(5),那么它就会叫 5 次。

    那么如果我们想要用户输入多少次,就让它叫多少次,怎么玩呢?想必你看过之前的文章也知道怎么玩了:

    可以看到我们这里的 jiao(int(time)) 传入的是一个变量,那么这样传递的参数叫做形参。而我们刚刚 jiao(5)传递的是一个实实在在的数字,我们叫实参

    局部变量和全局变量

    我们在函数里面定义的变量,只有函数里面才可以用,在函数外面是使用不到这个变量的,所以这个变量存在函数这个局部里,我们叫这个变量为局部变量。

    比如说:

    1
    2
    3
    4
    5
    
    def jiao(times):
        x = 1
    
        for time in range(times+x):
            print("亚麻跌~~~")
    

     

    这里的x就是局部变量啦。

    知道了什么是局部变量之后我们在来了解一下什么是全局变量,其实顾名思义,全局嘛~ 那么就是哪里都可以使用这个变量咯。比如说我们在函数内想要更改外边的变量,怎么办呢?这时候我们可以使用 global:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    def jiao(times):
    
        global x
        x = 5
    
        for time in range(times+x):
            print("亚麻跌~~~")
    
    x = 2
    jiao(5)
    

    那么这里 x 就是全局变量。

    return返回值

    有时候我们需要调用一个函数返回给我们结果,比如我们定义了一个加法计算的函数,我们希望扔两个数给它,它直接计算好然后返回给我们,那么这时候我们就可以用到 return:

    定义一个加法的函数,并返回结果:

    1
    2
    
    def addition(x,y):
        return x+y
    

    那么我们调用的时候:

    print(addition(5,6))

    直接返回 11 。

    docString

    很多程序员其实不太喜欢写文档的,因为觉得文档这事儿好像不关自己的事情,代码才是。老子写个代码而已,凭什么还要我写文档?

    Python 有个叫做 docString 的东西完美解决了这问题,让你直接在代码中写文档,其实说白了就是给代码写点注释,什么语言都会有给代码写注释的,不过 Python 的 docString 可以直接把你的注释变成文档,是不是很厉害?

    我们可以通过 help(requests) 或者 requests.doc 就可以访问到它的文档了。

    接下来我们自己写一个docString吧。

    我们定义一个叫 myDoc 的函数,传入两个参数,再写一下docString,告诉别人我们的函数是干嘛的,传入的参数是什么,返回什么。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    def myDoc(param1 ,param2):
        """
        this is myDoc function
        :param param1:  this is a first param
        :param param2: this is a second param
        :return: param1 + param2
        """
        print(param1 + param2)
        return param1 + param2
    

    是不是一目了然。

    而且我们还可以使用 sphinx 的 autodoc 自动从docString生产api文档。是不是很方便呢?

    模块

    你可以把模块理解为一个 .py文件,这个文件里面包含了所需要的函数和变量,那么下次我们任何一个程序要使用这里面的东西,我们只需要把这个模块导入到我们的程序里面来,就可以直接用了,简直不要太爽。造轮子多麻烦啊,拿来就用是了。

    其实 Python 有内置了一些模块,我们可以直接引用,还有一些第三方模块,也就是我们可以自己创建模块,安装好模块就可以直接使用了。

    使用模块

    如果我们要使用一个模块,可以将这个模块导入,使用 import ,比如我们要导入 Python 的内置的 sys 模块(sys模块包含了与Python解释器和它的环境有关的函数),那么我们就可以使用 import sys:

    创建自己的模块

    创建自己的模块其实就是自己写了个程序,然后给别人import,我们来写一个模块:

    记住,这模块要保存到和你即将要用的 Python 程序的同一目录下,然后这文件必须是 .py 结尾不用我说了吧。

    接着我们就来使用我们自己的模块吧:

    运行一下:

    可以看到我们不仅会使用模块,而且会自己创建模块了,真是越来越牛逼了。

    安装第三方模块

    世界那么大,牛人那么多,牛人写的模块,我们直接拿来用,不是很爽吗?

    那么我们要使用他们写的模块之前要先将他们的模块安装到我们的 Python 环境来,然后才可以使用。

    首先你要确保你的电脑已经安装好了 pip,如果你在命令行工具中输入 pip 可以像我这样那就说明你已经安装好了 pip:

    推荐一个网站给你们:https://pypi.org/ 这个网站聚集了一堆牛逼的模块,你可以通过搜索任何你想要的模块:

    比如说我要安装一个叫做 BTrees 的模块,那么我只需要使用「pip install BTrees」 这个命令就可以安装了。

    安装完之后呢,你就可以通过 import 直接使用模块了。

    面向对象

    python创建一个类

    为了让你更好的理解类和对象,我来举一个例子,哆啦A梦大家都很熟悉吧,那个矮胖矮胖的家伙,口袋里面有着许多我们梦寐以求的东西。

    我们可以把哆啦A梦理解为它是一个对象。如果我们创建一个叫做哆啦A梦的类,那么这个类的实例,我们就叫做哆啦A梦对象。

    在 python 中,可以用 class 来定义一个类,比如:

    1
    
    class DuoLaAMeng:
    

    那么当我们要去使用这个类的对象的时候我们可以这样:

    1
    
    duola = DuoLaAMeng()
    

    在这里呢,我们定义了一个叫做 duola 的变量,指向的是哆啦A梦这个实例。

    类中的方法使用

    我们的对象肯定是有一些属性给我们用的,比如说哆啦A梦这个对象可以给我们提供竹蜻蜓,所以我们可以在类中定义一些方法给别人去使用。

    我们创建一个类,并且给它定义一个获取竹蜻蜓的方法:

    1
    2
    3
    
    class DuoLaAMeng:
        def getZhuQingTing(self):
            print("给一个竹蜻蜓")
    

    那么当我们要调用的时候就可以这样子:

    1
    2
    
    duola = DuoLaAMeng()
    duola.getZhuQingTing()
    

    我们可以看到在定义 getZhuQingTing 这个方法的时候,定义了一个 self 这个参数,其实这个参数指的是DuoLaAMeng对象本身,这就和我们普通定义的函数有些许区别。

    init函数

    我们在调用对象的时候,有些东西是可以初始化的,这个时候 Python 就给我们提供了一个初始化函数,也就是当我们去调用这个对象的时候,它会先去执行 init 这个函数。举个例子你就明白了:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    class DuoLaAMeng:
        def __init__(self, name):
            self.name = name
    
        def getZhuQingTing(self):
            print("给"+self.name+"一个竹蜻蜓")
    
    duola = DuoLaAMeng("大雄")
    duola.getZhuQingTing()
    

    我们定义了一个 DuoLaAMeng 类, 并且给了一个初始化函数,当别人调用这个类的时候呢,传一个 name 进来,我们就可以对这个名字进行初始化了。

    继承

    如果我们想要再定义一个类似哆啦A梦的对象,比如说哆啦A梦的儿子对象,那么这时候我们用继承来实现,继承就是实现代码重用的方式。

    如果说哆啦A梦的儿子叫做哆啦B梦,那么当我们的哆啦B梦继承了它的爸爸哆啦A梦的时候,哆啦B梦拥有哆啦A梦的所有功能。

    在 Python 中继承的表现形式只这样的:

    1
    
    class 哆啦B梦(哆啦A梦):
    

    这样就说明了哆啦B梦是哆啦A梦的儿子。

    举个例子:

    我们在这里定义了一个叫做 DuoLaAMeng 的类,然后定义了两个方法,一个是初始化,一个是获取竹蜻蜓。

    接着我们创建了 DuoLaBMeng 这个类来继承 DuoLaAMeng ,可以看到 DuoLaBMeng 其实啥也没做,但是它就是拥有了DuoLaBMeng 的所有功能。

    这种继承的方式很好,比如我们以后要创建 DuoLaCMeng ,直接继承 DuoLaAMeng 就可以用所属的方法,以后我们要增加什么共同的功能的时候,只需要在父类 DuoLaAMeng 添加就好了,它的子类们都可以使用。

    多态

    DuoLaBMeng 和 DuoLaCMeng 是 DuoLaAMeng 的儿子,我们也可以把它的儿子当做 DuoLaAMeng 对象来使用,比如说有一天 DuoLaAMeng在忙,这时候大雄完全可以把它的儿子们当做是 DuoLaAMeng 来使用,完全木有问题,这就是面向对象中多态的意思。

    但是有些子类是独具特色的,比如 DuoLaBMeng 可以从口袋中拿出充气娃娃,而它的父亲 DuoLaAMeng 没有这个功能。

    这时候父类 DuoLaAMeng 是不可以把它当做子类DuoLaBMeng 来用的,也就是子类可以用父类的方法,但是父类不能用子类的方法。

    异常

    知道代码有错还狂往下写?是的没错,就是明明知道可能代码会有错误,但是我们还是往下写。就是这么任性!

    异常捕获

    有时候我们对我们的代码的报错是可预知的,比如我们想让 Python 帮我们打开一个小黄文的文件,比如 yellow.txt,可是我们的电脑不一定有,如果这个时候没有的话我们的代码会报错的对吧?

    1
    2
    
    document = open('yellow.txt')
    print('filename:' + document.name)
    

    运行之后可以看到这里报错:

    1
    
    FileNotFoundError: [Errno 2] No such file or directory: 'yellow.txt'
    

    告诉我们没有这个文件。

    但是如果这时候我们还想往下运行怎么办呢?

    那就可以把这异常给捕获掉,使用 try...except...finally...

    try:用来包裹我们可能存在错误的代码;
    except:当发现错了就会执行这里
    finally:无论怎么样最后都会执行到的。

    举个例子你就明白了:

    1
    2
    3
    4
    5
    6
    7
    
    try:
        document = open('yellow.txt')
        print('filename:' + document.name)
    except FileNotFoundError as e:
        print("error:" , e)
    finally:
        print("最后执行的语句")
    

     

    我们这里打开 yellow.txt ,Python发现不存在,那么就执行except下的语句,finally最后也会被执行:

    1
    2
    
    error: [Errno 2] No such file or directory: 'yellow.txt'
    最后执行的语句
    

    那么这样子的话,以后我们就可以将预料到的错误进行捕获,然后对其进行操作。

    抛出异常

    有时候我们没有去处理异常, Python 也会给我们报出错误,这是因为 Python 有个 BaseException 的异常基类,当Python发现我们的代码错误的时候,又没人去处理,它就会层层的往上抛出错误,直到最上级。

    我们可以自己定义一个异常类:

    1
    2
    3
    4
    5
    6
    7
    8
    
    class MyError(Exception):
        pass
    
    def foo(value):
        if(value==0):
            raise MyError('ERROR %s' % value)
    
    foo(0)
    

    可以看到我们自定义了一个叫做MyError的异常类,继承与Exception,当我们传入 0 的时候就会抛出异常。在这里我们使用到的关键字是raise,就是用来抛出异常的意思

    放个异常让你心情疙瘩一下,哈哈哈:

    1
    2
    3
    4
    5
    6
    
    Traceback (most recent call last):
      File "G:/test.py", line 11, in <module>
        foo(0)
      File "G:/test.py", line 9, in foo
        raise MyError('ERROR %s' % value)
    __main__.MyError: ERROR 0
    

    ok,有了这两招,妈妈再也不用担心,我错误的代码该如何安放了。

    python 中的数据结构

    什么是数据结构呢?就是存储一组相关数据的结构。

    在 python 里面呢,有三种内置好了的数据结构,它们分别是「列表」、「元组」、「字典」。

    列表

    我们应该都很熟悉列表吧,一个列表里面,有多个列表项,每一项就是具体的内容:

    看,这个列表是不是很熟悉?那么在 python 中要表示一个列表可以用到 list 这个对象。例如:

    avlist = ['亞洲無碼原創區','亞洲有碼原創區','歐美原創區','動漫原創區']

    可以看到,我们用中括号把每个列表项的内容用逗号隔开,就成了一个 list 对象,然后我们将这个对象赋值给 avlist 这个变量。

    在 python 中想要知道怎么运用 list 这个对象,我们可以在python 解释器中输入 help(list) 得到帮助:

    来看看这里例子怎么使用 list 的吧:

    运行一下:

    讲讲过程:

    首先我们定义了一个叫做 avlist 的列表对象,这个列表中有一些内容 [‘亞洲無碼原創區’ ,’亞洲有碼原創區’ ,’歐美原創區’ ,’動漫原創區’ ]

    我们通过 len 这个列表对象的方法可以得到列表中的条目数。

    可以通过 for 循环来获取列表中每一个项的内容。

    我们可以通过 append 方法在列表中添加条目。

    使用了 sort 对列表中的内容进行排序。

    列表中的内容可以通过下标索引获取,从0开始,例如avlist[0] 就是获取avlist这个列表的第一个条目。

    通过上面我们可以看到, list 这个列表对象是可变的数据类型,什么意思呢?就是我们可以对列表里面的内容进行修改,删除,添加等操作。

    元组

    其实元组和列表是差不多的,不过它们有一点区别就是:元组是不可变的数据类型,也就是说元组里面的内容是不能进行修改,删除,添加等操作的。

    元组使用圆括号来表示,例如:avlist = (’亞洲無碼原創區’ ,’亞洲有碼原創區’ ,’歐美原創區’ ,’動漫原創區’ )

    元组通常被用来打印语句:

    字典

    如果你想描述 苍井空 的特点是怎么样怎么样,波多野结衣的特点是怎么样怎么样,那么你就可以用到字典啦。

    字典是以键和值组成的,键呢,是不可变的,而值可变。

    字典的表示如下:

    nvyou = {‘苍井空’:’美丽大方’,’波多野结衣’:’身材特好’}

    接下来看看怎么使用字典吧:

    可以看到,我们可以通过字典对象用[键]来获取对应的值,也可以往字典里面添加数据,我们可以用字典的items()方法获取字典中的具体内容。

    序列

    我们之前所说的 列表,元组都是序列,序列还有一个叫做 字符串,为什么它们会被叫做序列呢?

    那是因为它们有一些特别的地方,比如:索引,切片,相加相乘,成员资格。

    索引

    对于序列来说,序列里面的每个元素都有一个编号,而这个编号是从 0 开始的,例如下面的这个序列,第 0 号就是:亞洲無碼原創區,第 1 号就是亞洲有碼原創區,以此类推。

    这里我们所说的编号就是索引,我们可以通过索引去获取列表的具体想要的内容,如果我们的索引是负数的时候,那么 Python 就会从序列的最后一个元素开始数起,比如说上面这个序列,如果我们用索引 -1 ,那么就可以获取得到「在线成人电影」这个元素。

    切片

    可能你这时候想说了,我用索引只能获取到一个元素,那如果我想在一个序列里面获取部分元素怎么玩?那么这时候就可以用切片来获取。

    比如 [1:3],就代表我要获取序列中第一个元素(包含)到第三个元素(不包含)的所有内容:

    这里定义一个列表:

    avlist = ['亞洲無碼原創區','亞洲有碼原創區','歐美原創區','動漫原創區']

    然后我们通过 avlist[1:3] 就可以获取到:

    ['亞洲有碼原創區', '歐美原創區']

    切片最常用的还是在使用字符串这个序列中,比如:

    1
    2
    
    url = input("请输入你的网站:")
    print("主机名是:"+ url[11:-4])
    

    在这里我们就可以通过切片的方式,来获取字符串这个序列的部分内容,比如这里我们输入:http://www.google.com,那么这个时候我们就可以获取到[11:-4]之间的内容,也就是 google。

    切片还有个叫做步长的东西,还是拿刚刚那个序列为例:

    avlist = ['亞洲無碼原創區','亞洲有碼原創區','歐美原創區','動漫原創區','國產原創區','在綫成人影院 ']

    在这个序列中我们如果通过 avlist[1,-1],那么python会从第一个元素逐一的去获取范围内的内容,也就是一步一步一个脚印的获取,那如果我们想要让它的步伐跨的大一点呢?每一步跨两个元素,那就可以这样:

    相加相乘

    序列是可以相加相乘的,比如我们之前在说Python : Hello World !中就知道了字符串的拼接,其实就是序列的相加。

    成员资格

    如果我们想要判断一个元素是不是在这个列表中,那么我们就可以用到 in 这个关键字,如果存在的话, python 就会给我们返回 True ,如果不存在的话,那么 Python 就会给我们返回 Fasle:

    Python中的IO

    我们到时候肯定是需要用到对文件进行读写操作的,也就是IO,但是我们不能直接去操作文件,我们需要去告诉操作系统,我们想操作什么文件,然后操作系统帮我们操作。

    读取文件

    我们先创建个叫做 xiaohuangwen.txt 的文件吧:

    python有个内置的函数叫做 open() , 我们可以通过它直接打开文件,打开完文件就可以读取了,但是有可能会报错,就是文件不存在,这个时候我们可以用到上次说的 try…finally 来处理异常:

    1
    2
    3
    4
    5
    6
    
    try:
        f = open("G:/xiaohuangwen.txt","r",encoding="UTF-8")
        print(f.read())
    finally:
        if f:
            f.close()
    

    我们通过 open 打开了 xiaohuangwen.txt 这个文件。 r 就是读的意思, encoding就是定义好文件编码。

    接着我们就打印出我们 read 出来的文件啦:

    最后一定要记得将文件 close 掉,这样才不会造成系统浪费资源。

    有时候你在读取文件的时候,是不是觉得每次都要 try…finally 很麻烦? 贴心的 Python 帮我们简化了流程,我们只要直接这样写就可以了:

    1
    2
    
    with open("G:/spider/xiaohuangwen.txt","r",encoding="UTF-8") as f:
        print(f.read())
    

    是不是简化了很多??

    写入文件

    写入文件内容也是一个道理,我们首先要打开文件,然后往里写内容,如果我们传入的参数是 ‘w’ 的话,它会覆盖原来的文件,而我们传入 ‘a’ 则可以在文件末尾追加内容:

    1
    2
    
    with open("G:/spider/xiaohuangwen.txt","a",encoding="UTF-8") as f:
        print(f.write("\n我想看苍老师啊!"))
    

    ok,运行之后你会发现,你已经把内容写进去了,是不是很简单?

    文件存储器

    Python 有一个叫做 pickle 的模块,有了它,我们就可以在一个文件中持久的存储我们的女朋友,哦,不是,可以持久的存储我们的对象。

    还有一个叫做 cPickle 的模块,它是用 C 写的,所以它更加牛逼一点,比 pickle 速度快,要快上 1000 倍,所以我么用 cPickle 这个模块会好点。

    不过在 Python3 已经将 cPickle 改名为 pickle 了,所以我们就可以直接 import pickle 就可以啦。

    写个文件存储器的例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    import pickle as p
    
    
    # 我们要存储内容的文件名
    girlfriendlistfile = 'girlfriend.data'
    
    girlfriends = ['波多野结衣', '苍井空', '小泽玛利亚']
    
    # 把我们的女朋友写到文件里,然后存储器存储
    with open(girlfriendlistfile,'wb+') as f:
        p.dump(girlfriends, f)
        f.close()
    
    del girlfriends # 删掉我们的女朋友
    
    # 把我们的女朋友读回来!!
    with open(girlfriendlistfile,'rb+') as f:
        list = p.load(f)
        print (list)
    

    这就是存储器的使用,是不是so easy?

    用python给自己写一个操作界面

    Python 有一个自带的库叫做 tkinter ,用它我们可以写出系统的操作界面,不管你是 Mac OS 系统,还是 Windows 系统,它都可以生成相对应的操作界面。这就是所谓的跨平台。

    原理就是我们使用 Python 的代码去调用 Tkinter, Tkinter 已经封装了访问TK的接口,这个接口是一个图形库,支持多个操作系统,通过它我们就可以调用我们系统本身的GUI接口了。

    接下来我们用代码玩一下吧:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    from tkinter import *
    import tkinter.messagebox as messagebox
    
    class MyApp(Frame):
    
        def __init__(self,master=None):
            Frame.__init__(self,master)
            self.pack()
            self.createWidgets()
    
        def createWidgets(self):
            self.helloLabel = Label(self,text="世界上最帅的人是谁?")
            self.helloLabel.pack()
            self.quitButton = Button(self,text="谁呢?",command=self.who)
            self.quitButton.pack()
    
        def who(self):
            messagebox.showinfo("答案","当然是小帅b啦")
    
    
    myapp = MyApp()
    myapp.master.title('hello')
    myapp.mainloop()
    

    在这里:

    1. 我们导入了 tkinter 的相关模块
    1. 定义了初始化函数,通过 pack() 方法将我们的组件传给父容器
    1. 自定义一个创建组件的方法,我们创建了一个标签和一个按钮,这个按钮被点击后就会触发 who 这个方法
    1. 我们通过 messagebox 来显示一个提示框
    1. 实例化我们的 APP,然后通过主线程来监听我们的界面操作

    运行后如下:

     

     

    Python的互联网编程

    你怎么还在用Python写的单机版程序?

    你怎么还在用Python写的单机版程序?

    因为我现在才刚学不久

    因为我现在才刚学不久

    现在开发的基本上都是互联网程序了,你要不要跟我一起学一下用Python网络编程?

    现在开发的基本上都是互联网程序了,你要不要跟我一起学一下用Python网络编程?

    哇!真的吗?大佬求带!

    哇!真的吗?大佬求带!

    低调低调,说到网络编程,那么我们先要了解互联网。

    低调低调,说到网络编程,那么我们先要了解互联网。

    我了解,互联网就是把许多网络连接起来。

    我了解,互联网就是把许多网络连接起来。

    恩,不错,那你知道什么是TCP,UDP吗?

    恩,不错,那你知道什么是TCP,UDP吗?

    em,以前听过,现在有点忘了,你可以给我说道说道吗?

    em,以前听过,现在有点忘了,你可以给我说道说道吗?

    可以,我们以前的计算机网络,为了能够互相通信,很多厂商都有自己的一套协议,这就弄得很乱,因为互不兼容,所以通信起来很费劲。后来呢,为了让成千上万的计算机连接起来,定义了两个标准的协议,一个是TCP,一个是 IP,也就是我们现在简称的 TCP/IP 协议。

    可以,我们以前的计算机网络,为了能够互相通信,很多厂商都有自己的一套协议,这就弄得很乱,因为互不兼容,所以通信起来很费劲。后来呢,为了让成千上万的计算机连接起来,定义了两个标准的协议,一个是TCP,一个是 IP,也就是我们现在简称的 TCP/IP 协议。

    也就是说我们遵循 TCP/IP 协议就可以互联了是吧!

    也就是说我们遵循 TCP/IP 协议就可以互联了是吧!

    恩,通信的时候,双方要知道对方的标识,才能通信。

    恩,通信的时候,双方要知道对方的标识,才能通信。

    那。。大佬能告诉我下 TCP 和 IP 的区别吗?

    那。。大佬能告诉我下 TCP 和 IP 的区别吗?

    当然可以,那我先告诉你 IP 协议吧,假如我要发信息给你,我们都在互联网上,都有自己的 IP 地址和路由,那么当我发信息给你的时候呢,IP 协议就负责将数据进行传输,这些数据被分割成一小块一小块的,通过 IP 包给发送过去。因为们之间在互联网上是有很多链路的,所以路由就会将一小块一小块的数据包逐个进行转发,直到发送到你的IP地址。但是它不能够保证数据都能到达,也保证不了能够按顺序的到达。

    当然可以,那我先告诉你 IP 协议吧,假如我要发信息给你,我们都在互联网上,都有自己的 IP 地址和路由,那么当我发信息给你的时候呢,IP 协议就负责将数据进行传输,这些数据被分割成一小块一小块的,通过 IP 包给发送过去。因为们之间在互联网上是有很多链路的,所以路由就会将一小块一小块的数据包逐个进行转发,直到发送到你的IP地址。但是它不能够保证数据都能到达,也保证不了能够按顺序的到达。

    啊~那如果丢失怎么办?有什么办法吗?

    啊~那如果丢失怎么办?有什么办法吗?

    有!那就是 TCP 协议,TCP协议建立在IP协议之上的。TCP协议会建立可靠连接,保证数据包按顺序到达。TCP协议会通过握手建立连接,确保对方按顺序收到,如果包丢掉了,就自动的重新再发。

    有!那就是 TCP 协议,TCP协议建立在IP协议之上的。TCP协议会建立可靠连接,保证数据包按顺序到达。TCP协议会通过握手建立连接,确保对方按顺序收到,如果包丢掉了,就自动的重新再发。

    哦,明白了,那刚刚你说的 UDP 又是?

    哦,明白了,那刚刚你说的 UDP 又是?

    我们已经知道了 TCP 是面向连接的,比较可靠,而UDP协议呢,它是面向无连接的,也就是我只要知道你的IP地址和端口就可以直接给你发送数据了,不需要先跟你握手,不过数据能不能到达就不知道了。

    我们已经知道了 TCP 是面向连接的,比较可靠,而UDP协议呢,它是面向无连接的,也就是我只要知道你的IP地址和端口就可以直接给你发送数据了,不需要先跟你握手,不过数据能不能到达就不知道了。

    哦,明白,就是TCP可靠,UDP传输效率高。

    哦,明白,就是TCP可靠,UDP传输效率高。

    对头,所以呢,如果不要求数据可靠到达的话就可以用UDP。那么接下来我们就用 Python 来进行 TCP 和 UDP 的编程吧。

    对头,所以呢,如果不要求数据可靠到达的话就可以用UDP。那么接下来我们就用 Python 来进行 TCP 和 UDP 的编程吧。

    太好了!!

    太好了!!

    不过在此之前跟你讲一下 Socket 的东西,因为等下我们要用到,Socket 在互联网编程中表示建立了一个互联网连接,Socket知道了对方的IP地址、端口号、协议,就可以建立连接了。

    不过在此之前跟你讲一下 Socket 的东西,因为等下我们要用到,Socket 在互联网编程中表示建立了一个互联网连接,Socket知道了对方的IP地址、端口号、协议,就可以建立连接了。

    恩,感谢大佬,明白了。

    恩,感谢大佬,明白了。

    Python 中的 TCP 编程

    ###TCP客户端的编写
    我们现在访问一些网页什么的,这些网页是在服务器端的,而我们访问的设备属于客户端。

    比如我们现在通过浏览器访问这个地址:

    http://www.meizitu.com/

    那么会得到好多小姐姐的图片哈哈:

    那么我们怎么通过 Python 来建立可靠的 TCP 连接,获取到这些图片呢?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    # 导入socket这个库
    import socket
    
    # 创建一个socket对象
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 开始建立TCP连接
    s.connect(("www.meizitu.com",80))
    # 连接后,发送请求
    s.send(b'GET / HTTP/1.1\r\nHost: www.meizitu.com\r\nConnection: close\r\n\r\n')
    # 接收数据
    buffer = []
    while True:
        d = s.recv(1024)
        if d:
            buffer.append(d)
        else:
            break
    # 把字节连接起来
    data = b''.join(buffer)
    
    # 关闭连接
    s.close()
    
    # 把数据读取出来
    
    with open('meizi.html','wb') as f:
        f.write(data)
    

    运行之后,我么就有了咱们的妹纸文件:

     

    打开有惊喜。

    TCP 服务端的编写

    服务端一般都是一直在运行着的,等待着客户端来连接,然后给出请求响应,服务端需要提供 ip 地址和端口给客户端去连接。

    首先我们来写一个简单服务端的:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    import socket
    
    # 创建socket对象
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    
    # 绑定监听端口
    s.bind(('127.0.0.1',8888))
    
    # 监听
    s.listen(1)
    
    while True:
        # 接收连接
       sock,addr = s.accept()
        print("有人连进来了")
        sock.send(b'hei man, are you ok?')
        sock.close
    

    当有人连接进来我们就给他发一句:hei man,are you ok ?

    接着我们再来写个客户端的连接过去:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    # 导入socket这个库
    import socket
    
    # 创建一个socket对象
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 开始建立TCP连接
    s.connect(("127.0.0.1",8888))
    # 接收数据
    buffer = []
    d = s.recv(1024)
    buffer.append(d)
    
    # 把字节连接起来
    data = b''.join(buffer)
    print(data)
    
    # 关闭连接
    s.close()
    

     

    然后先运行我们的服务端,再运行客户端:

    Python中的 UDP 编程

    我们来先写服务端:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    import socket
    
    # 创建socket对象,这里传入的是SOCK_DGRAM,代表UDP
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    # 绑定监听端口
    s.bind(('127.0.0.1',8090))
    
    while True:
        # 接收连接
       data,addr = s.recvfrom(1024)
        print(addr)
        s.sendto(b'hei man, are you ok?',addr)
    

    可以看到,在这里我们不需要跟对方连接,只要知道地址就直接发送过去就可以了。

    客户端:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    import socket
    
    # 创建一个socket对象
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    s.sendto(b'ha',("127.0.0.1",8090))
    # 接收数据
    print(s.recv(1024).decode('utf-8'))
    
    # 关闭连接
    s.close()
    

    运行如下:

     

     

    把你的Python程序打包成exe可执行文件

    在这篇文章我们就说到了怎么使用Python爬取性感美女并保存到本地。还没了解的童鞋可以先看一下。

    在这里呢,我们要使用 PyInstaller 来将我们的爬虫小程序打包成一个 exe 执行文件,然后在没有安装python环境的情况下也可以双击直接运行。

    首先我们要通过 pip 来安装 PyInstaller。

    1
    
    pip install pyinstaller
    

    可以先去喝杯茶,等它一顿安装:

     

    喝完茶,差不多也安装完成了。

    我们可以使用 Pyinstaller 的 F 选项来打包:

    -F, –onefile Create a one-file bundled executable.

    以我们的爬虫小程序为例,我们要将其打包成一个 exe ,那么我们就可以这样:

    pyinstaller -F .\meizi.py

    这里的 meizi.py 就是我们的项目名称。在执行的时候,Pyinstall帮我们在当前目录创建了 meizi.spec、build文件夹、dist文件夹、pycache文件夹。

    双击dist文件夹进去一看,你会发现有一个exe执行文件。它就是一个应用程序啦。

    接着我们双击一下,就开始运行啦~

    可以看到它按我们的程序执行,创建了一个 meizi 的文件夹,并且去妹子网站爬取美女图片然后下载到我们这个文件夹里面。

    爽!!!

    打开我们的meizi文件夹,看看图片爬的怎么样了:

     

    (完)

    写在最后

    你能看到这里也是厉害的了,我特别为了Python开了一个公众号,名字叫做「学习python的正确姿势」,里面放了一堆福利,在里面发送python有惊喜。快关注一波。

    我的相关文章

    参考文章

    展开全文
  • 这里推荐这门python编程入门基础教程,适合零基础的同学学习! python软件工程师都学什么? 自学Python,看视频学的更快、更透彻一些,给你个课程大纲! 阶段一:Python开发基础 Python全栈开发与人工智能之Python开发...

    找Python好视频,一方面要找有名气的Python培训机构,另一方面要看一下课程体系是否满足自己需求,两相对比就能选出适合自己的视频教程了!这里推荐这门python编程入门基础教程,适合零基础的同学学习!

    python软件工程师都学什么?
    自学Python,看视频学的更快、更透彻一些,给你个课程大纲!
    阶段一:Python开发基础
    Python全栈开发与人工智能之Python开发基础知识学习内容包括:Python基础语法、数据类型、字符编码、文件操作、函数、装饰器、迭代器、内置方法、常用模块等。
    阶段二:Python高级编程和数据库开发
    Python全栈开发与人工智能之Python高级编程和数据库开发知识学习内容包括:面向对象开发、Socket网络编程、线程、进程、队列、IO多路模型、Mysql数据库开发等。
    阶段三:前端开发
    Python全栈开发与人工智能之前端开发知识学习内容包括:Html、CSS、JavaScript开发、Jquery&bootstrap开发、前端框架VUE开发等。
    阶段四:WEB框架开发
    Python全栈开发与人工智能之WEB框架开发学习内容包括:Django框架基础、Django框架进阶、BBS+Blog实战项目开发、缓存和队列中间件、Flask框架学习、Tornado框架学习、Restful API等。
    阶段五:爬虫开发
    Python全栈开发与人工智能之爬虫开发学习内容包括:爬虫开发实战。
    阶段六:全栈项目实战
    Python全栈开发与人工智能之全栈项目实战学习内容包括:企业应用工具学习、CRM客户关系管理系统开发、路飞学城在线教育平台开发等。
    阶段七:数据分析
    Python全栈开发与人工智能之数据分析学习内容包括:金融量化分析。
    阶段八:人工智能
    Python全栈开发与人工智能之人工智能学习内容包括:机器学习、数据分析 、图像识别、自然语言翻译等。
    阶段九:自动化运维&开发
    Python全栈开发与人工智能之自动化运维&开发学习内容包括:CMDB资产管理系统开发、IT审计+主机管理系统开发、分布式主机监控系统开发等。
    阶段十:高并发语言GO开发
    Python全栈开发与人工智能之高并发语言GO开发学习内容包括:GO语言基础、数据类型与文件IO操作、函数和面向对象、并发编程等。

    Python软件工程师月薪多少?
    掌握以下能力 月薪2w以上
    职位描述:
    1、负责公司承接的项目和自有产品的实施开发、维护工作;
    2、参与需求分析、系统架构设计以及核心代码的编写;
    3、高质量完成项目开发并按时交付项目成果;
    4、参与核心技术问题的解决,技术方案的制定和决策;
    5、参与公司研发项目流程建设。
    任职资格:
    1、3年以上programming软件开发经验。
    2、精通Python core API 熟悉Flask或Tornado;精通Pandas及其相关库。
    3、熟悉常用数据库,了解MariaDB、MySQL、Oracle、SQLServer等大型数据库。
    4、熟悉Linux操作系统优先。

    快速掌握Python学习手册

    1.PythonIDLE下载和安装
    2.Python IDLE使用简介
    3.Python 对象类型介绍 数字和字符串
    4.Python 对象类型介绍 字典和元组
    5.Python 对象类型介绍 文件及其他核心类型
    6.Python 数字类型
    7.Python 动态类型简介
    8.Python 字符串
    9.Python 列表
    10.Python 字典
    11.Python 元组
    12.Python 文件
    13.Python 重访类型分类及其他
    14.Python 语句简介
    15.Python 语句 赋值表达式和打印
    16.Python 语句 if测试
    17.Python 语句 while和for循环
    18.Python 循环语句 迭代器及循环技巧
    19.Python 文档
    20.Python 函数基础
    21.Python 函数 作用域法则
    22.Python 作用域嵌套函数
    23.Python 函数 传递参数
    24.Python 匿名函数Lambda
    25.Python 函数 作为参数来应用函数
    26.python map和编程工具及列表解析
    27.Python 高级函数 生成器及对迭代进行计时
    28.Python 高级函数 函数设计概念及函数陷阱
    29.python 模块 宏伟蓝图
    30.Python 模块的创建和使用
    31.Python 模块命名空间和重载
    32.Python 模块包
    33.Python 高级模块话题
    34.Python 类和OOP 宏伟蓝图
    35.D2301 04 类代码编写基础
    36.D23 Class语句和方法
    37.D23 运算符重载
    38.D2404 04 命名空间
    39.D25 01 04 类作为记录和类之间的关系
    40.D2505 10 类的设计2
    41.D2601 03 类高级主题1
    42.D2604 06 类高级主题2
    43.D2701 08 异常基础
    44.D2801 03 异常对象
    45.D2901 03 异常的设计

    快速掌握Python基础课程

    1.课程简介
    2.Python下载和安装
    3.IDLE使用简介
    4.第1章 数字和表达式
    5.第1章 变量语句及函数简介
    6.第1章 模块及保存运行
    7.第1章 字符串简介
    8.第2章 序列
    9.第2章 列表
    10.第2章 元组
    11.第3章 基本字符串和字符串格式化
    12.第3章 字符串常用方法
    13.第4章 字典的创建和使用
    14.第4章 字典方法
    15.第5章 print和import及赋值
    16.第5章 条件和条件语句
    17.第5章 循环
    18.第5章 列表推导式及其他语句
    19.第6章 创建函数及参数
    20.第6章 变量作用域
    21.第6章 递归
    22.第7章 类和面向对象
    23.第8章 异常
    24.第9章 魔法方法和属性
    25.第9章 生成器
    26.第9章 迭代器和八皇后问题
    27.第10章 模块
    28.第10章 标准库_sys、os、fileinput模块
    29.第10章 标准库_集合、堆、双端队列和time模块
    30.第10章 标准库_random模块和shelve模块
    31.第10章 标准库_re模块
    32.第11章 文件的读写及遍历
    33.第12章 图形用户界面
    34.第13章 Python数据库支持
    35.第14章 网络编程
    36.第15章 屏幕抓取
    37.第15章 使用CGI创建动态网页
    38.第16章 测试
    39.第17章 扩展Python
    40.第18章 程序打包
    41.第19章 配置文件和日志记录
    42.第20-29章 项目实例-即时标记
    43.第20-29章 项目实例-画幅好画
    44.第20-29章 项目实例-处理XML
    45.第20-29章 项目实例-虚拟茶话会
    46.第20-29章 项目实例-使用CGI进行远程编辑
    47.第20-29章 项目实例-自定义电子公告板
    48.第20-29章 项目实例-使用XML_RPC进行远程文件共享
    49.第20-29章 项目实例-文件共享2_GUI版本
    50.第20-29章 项目实例-图形用户界面编程_1
    51.第20-29章 项目实例-图形用户界面编程_2
    52.第20-29章 项目实例-图形用户界面编程_3
    53.第20-29章 项目实例-图形用户界面编程_4

    快速掌握Python系统管理

    1.第1章 Python简介
    2.第2章 IPython基础
    3.第2章 IPython_UnixShell
    4.第2章 IPyton_信息搜索
    5.第2章 IPython_自动和快捷方式
    6.第3章 文本_Python字符串及内建功能函数
    7.第3章 文本_Unicode字符串和re
    8.第3章 文本_处理文件
    9.第3章 文本_标准输入输出和StringIO
    10.第3章 文本_日志解析
    11.第3章 文本_ElementTree
    12.第4章 文档和报告_自动和手工信息采集
    13.第4章 文档与报告_信息格式化
    14.第4章 文档与报告_信息发布
    15.第5章 网络_网络客户端(一)
    16.第5章 网络_网络客户端(二)
    17.第5章 网络_远程过程调用
    18.第5章 网络_SSH
    19.第5章 网络_Twisted
    20.第6章 数据(一)
    21.第6章 数据(二)_使用路径目录和文件
    22.第6章 数据(三)_数据比较
    23.第6章 数据(四)_合并数据
    24.第6章 数据(五)_文件目录的模式匹配和包装rsync
    25.第6章 数据(六)_元数据
    26.第6章 数据(七)_使用tarfile模块
    27.第8章 操作系统什锦_Python中跨平台的UNIX编辑(一)
    28.第8章 操作系统什锦_Python中跨平台的UNIX编辑(二)
    29.第8章 操作系统什锦_Python中跨平台的UNIX编辑(三)
    D08_04_操作系统_PyInotify
    D09_01_包管理_easy_install
    D09_02_包管理_创建egg
    D10_01_进程与并发_子进程
    D10_02_进程与并发_管理进程
    D10_03_进程与并发_Python中的线程
    D10_04_进程与并发_线程延迟和线程化的事件处理
    D11_01_创建GUI_一个简单的PyGTK应用
    D11_02_创建GUI_使用PyGTK创建Apache日志浏览器
    D11_03_创建GUI_使用Curese创建Apache日志浏览器
    D11_04_创建GUI_使用Django_1
    D11_05_创建GUI_使用Django_2
    D11_06_创建GUI_使用Django_3
    D12_01_数据持久性_简单序列化_Pickle
    D12_02_数据持久性_简单序列化_shelve
    D12_03_数据持久性_简单序列化_YAML
    D12_04_数据持久性_简单序列化_ZODB
    D12_05_数据持久性_关系序列化_StormORM
    D12_06_数据持久性_关系序列化_SQLAlchemy
    D13_01_命令行_基本标准输入的使用和Optparse
    D13_02_命令行_整合配置文件
    D14_01_实例_管理DNS和LDAP
    D14_02_实例_Apache日志报告
    D14_03_实例_FTP镜像

    【python教程百度盘下载地址】
    http://www.xuexiluxian.net/python-biancheng.html

    展开全文
  • 最新Python学习路线+千锋Python课程大纲+Python视频教程+Python学习资料下载地址大合集 目前Python已经成为最受欢迎的程序设计语言之一。Python的设计哲学是“优雅”、“明确”、“简单”。 Python的优点(来自...

    最新Python学习路线+千锋Python课程大纲+Python视频教程+Python学习资料下载地址大合集

    目前Python已经成为最受欢迎的程序设计语言之一。Python的设计哲学是“优雅”、“明确”、“简单”。

    Python的优点(来自百科)

    简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。

    易学:Python极其容易上手,因为Python有极其简单的说明文档 。

    速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。

    免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。

    高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

    可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。

     

    解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。

     

    运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

    面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

    可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

    可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

    丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

    规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。

     

    怎么学Python

    Python是一种面向对象的解释型计算机程序设计语言,纯粹的自由软件,常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

    ……………………………………………………………………………………………………………………………………………………………

    课程大纲:

     

      Python初级开发工程师   

    python语言基础

     

    • Python3入门,数据类型,字符串
    • 判断/循环语句,函数,命名空间,作用域
    • 类与对象,继承,多态
    • tkinter界面编程
    • 文件与异常,数据处理简介
    • Pygame实战飞机大战,2048

     

    python语言高级

     

    • Python常见第三方库与网络编程
    • Python正则表达式
    • 邮箱爬虫,文件遍历,金融数据爬虫,
      多线程爬虫
    • Python线程、进程
    • Python MySQL数据库,协程,jython

     

    python全栈工程师前端

     

    • HTML
    • HTML5
    • CSS
    • CSS3
    • 网页界面设计实战
    • javaScript
    • jquerry
    • jquerry EasyUI, Mobile简介,photoshop
    • Bootstrap

     

    python全栈工程师后端

     

    • Django入门
    • Django高级
    • Django实战

     

       Python高级开发工程师   

    python全栈工程师后端高级

     

      • Flask开发原理                  Flask开发项目实践
    • Tornado开发原理                 Tornado开发项目实践

    Linux基础

     

    • 文件处理命令                        权限管理命令
    •        帮助命令                        文件搜索命令
    • 压缩解压命令                       命令使用技巧
    •     VIM使用                        软件包管理
    • 用户和用户组管理                         Linux Shell开发

    Linux运维自动化开发

     

    • Python开发Linux运维                     Linux运维报警工具开发
    • Linux运维报警安全审计开发                     Linux业务质量报表工具开发
    • Kali安全检测工具检测                         Kali 密码破解实战

     

       Python大神级数据分析师    

    python数据分析

     

      • numpy数据处理
      • pandas数据分析
      • matplotlib数据可视化
      • scipy数据统计分析
      • python 金融数据分析

     

    python大数据

     

      • Hadoop HDFS
      • python Hadoop MapReduce
      • python Spark core
      • python Spark SQL
      • python Spark MLlib

     

    python机器学习

     

     

      • 机器学习基础知识简介
      • KNN算法
      • 线性回归
      • 逻辑斯蒂回归算法
      • 决策树算法
      • 朴素贝叶斯算法
      • 支持向量机
      • 聚类k-means算法

     

    ………………………………………………………………………………………………………………………………………………

     

    Python视频教程:(来自爱奇艺)

     

    一、Python全栈+人工智能入门到精通

    (一套真正Python全栈开发+人工智能从零到精通的教程;一套包含Python项目,爬虫、服务集群、网站后台、微信公众号开发,Python机器学习与数据挖掘,数据分析框架与实战,Python 物联网树莓派的开发等精品课程。)

    二、python教程:Tornado基础视频教程

    (Tornado是一种 Web 服务器软件的开源版本。Tornado和现在的主流 Web 服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对epoll的运用,Tornado每秒可以处理数以千计的连接,因此Tornado是实时Web服务的一个理想框架。通过这一章节的学习,可以掌握Tornado开发流程,利用Tornado开发企业级项目。)

    三、python教程:Django基础到实战讲解

    (本套视频知识体系包括HTML语法、CSS语法、H5C3新特性、移动端响应式布局、JavaScript语言、JQuery、Bootstrap、飞机大战坦克网页版等,通过这一章节的学习,了解浏览器与服务器大体交互流程 ,可以写出企业级的移动端、PC端网页页面,努力成为一名基础前端开发人员。)

    四、python前端基础视频教程

    (python前端课程包括HTML语法、CSS语法、H5C3新特性、移动端响应式布局、JavaScript语言、JQuery、Bootstrap、飞机大战坦克网页版等,通过这一章节的学习,了解浏览器与服务器大体交互流程 ,可以写出企业级的移动端、PC端网页页面,努力成为一名基础前端开发人员。)

    五、零基础学习Python数据分析(python高级视频教程)

    (主要学习:Numpy,pandas,scipy,matplotlib。)

    更多Python视频教程,持续更新中……

    …………………………………………………………………………………………………………………………………………………………

    学习资料网盘下载地址:

     

    Python基础视频教程

    https://pan.baidu.com/s/1c2UDjHm

    本课程面向0基础学生和开发者,内容主要为Python3的语言介绍,在工业上可以运用的开发场景,Python3开发环境搭建。PyCharm IDE使用,创建第一个Python程序。

     

    Python高级视频教程

    https://pan.baidu.com/s/1nxj4PdR#list/path=%2F

    30年前的互联网,30年后的人工智能,这是必然的发展方向。之前发明电时,很多人都不觉得电有用,到今天,我们一刻也无法离开电。电使我们强大,人工智能使我们‘无所不能’,Alphago赢了人类最顶尖高手只是开始,方方面面都可以出现天翻地覆的不同。在这一章中我们主要学习:Numpy,pandas,scipy,matplotlib。有了数据分析的基础,我们学机器学习就不会那么费力了。

     

    Python高手晋级视频教程

    https://pan.baidu.com/s/1eg31vg#list/path=%2F

    本套课程融合了python语言与python实战、机器学习、人工智能、自动化运维、web开发、包含当下最前沿技术的同时又能掌握python语言本身特性,深入浅出讲解知识点。

     

     

     

    更多学习视频教程下载关注:http://video.mobiletrain.org/python/

     

    展开全文
  • 今天本宝宝给大家带来了干货,Python入门教程完整版,完整版啊!完整版! 言归正传,我来给大家介绍一下这套教程,希望每个小伙伴都沉迷学习,无法自拔! 本套教程学习时间15天 1-3天内容:为Linux基础命令 ...

    今天本宝宝给大家带来了干货,Python入门教程完整版完整版啊!完整版!

    言归正传,我来给大家介绍一下这套教程,希望每个小伙伴都沉迷学习,无法自拔!

     

    本套教程学习时间15天

    1-3天内容:为Linux基础命令

    4-13天内容:为Python基础教程14-15 天内容:为飞机大战项目演练

    第一阶段(1-3天):

    该阶段首先通过介绍不同领域的三种操作系统,操作系统的发展简史以及Linux系统的文件目录结构让大家对Linux系统有一个简单的认识,同时知道为什么要学习Linux命令。然后我们会正式学习Linux命令

    1. 文件和目录命令:ls,cd,touch,mkdir,rm

    2. 拷贝和移动命令:tree,cp,mv

    3. 文件内容命令:cat,more,grep

    4. 远程管理命令:ifconfig,ping,SSH的工作方式简介以及ssh命令

    5. 用户权限及用户管理命令:chmod,chgrp,useradd,passwd,userdel

    6. 软件安装及压缩命令:apt简介及命令,tar,gzip压缩命令,bzip2压缩命令

    7. vim的基本使用

    第二阶段(4-10天)

    该阶段我们正式进入Python这门语言的学习,首先通过了解Python语言的起源,Python语言的设计目标,Python语言的设计哲学,Python语言的优缺点和面向对象的基本概念,以及Python语言的执行方式,还有Python集成开发环境PyCharm的使用为我们接下来的学习做铺垫。

    然后我们会学习int,string,float三种简单的变量类型,变量间的计算,变量的输入输出,if判断语句,while循环语句,for循环语句,break和continue的使用,函数的基本使用,模块的使用,列表,元组,字典三种高级变量,字符串的常用操作。

    接下来我们会通过一个名片管理系统的案例,把这一阶段的知识进行一个串联。在学习名片管理系统时,首先我们会学习怎么去搭建这一系统的框架,然后我们会分别实现新增名片,显示全部名片,查询名片,删除名片,修改名片这些功能。

    最后我们会学习语法的进阶内容,全局变量,局部变量,可变数据类型和不可变数据类型以及函数返回多个值,函数的缺省参数,多值参数,递归的基本使用。

    第三阶段(11-13天)

    该阶段我们会学习面向对象(OOP)这一重要的编程思想,首先学习的知识点有类和对象的基本概念,dir函数,self的作用,初始化方法__init__,内置函数__str__,__del__,单继承,方法重写,私有属性和方法,多继承,多态,类属性,静态方法。

    然后我们还会学习单例模式这一设计模式,异常的捕获,异常的抛出,from import局部导入,from import导入同名工具, from import导入所有工具,包的使用,制作模块,pip的使用以及文件的相关操作。

    第四阶段(14-15天)

    该阶段是项目演练阶段,我们会带领大家通过使用之前学习过的知识开发飞机大战这一经典游戏,项目中分别有游戏窗口,图像绘制,游戏循环,事件监听,精灵和精灵组以及创建敌机,创建英雄和发射子弹,碰撞检测等模块。

    需要教程的可以关注我哦~

    Python入门教程完整版(懂中文就能学会)

    http://yun.itheima.com/course/273.html?stt

    资料链接:

    https://pan.baidu.com/s/15BmUdw9AgOD2tI9xG6p1WA 提取码:w61i

     

    资源已更新,大家可以直接下载学习

    展开全文
  • python语言现在是非常火爆,它被称为“胶水语言”,有兴趣的朋友可以自学看看哦这个视频教程一共有10节,专为新入门的朋友打造的 python语言现在是非常火爆,它被称为“胶水语言”,有兴趣的朋友可以自学看...
  • python安装教程

    2018-06-07 15:44:54
    Python安装教程一、博主自言随着人工智能的快速发展,python语言越来越受大家的欢迎,博主前段时间先自学了一次,这次再次巩固,顺便分享给大家我遇到的坑。帮助大家学习的时候少走弯路。希望会对大家有所帮助,欢迎...
  • Python学习教程Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处可见,短短几个字,足以见Python今日的...
  • Python 基础教程

    2015-07-01 11:17:18
    Python 基础教程 Python 基础教程 Python 简介 Python 环境搭建 Python 中文编码 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循环语句 Python While循环语句 Python for ...
  • 为什么那么多人学Python,学完到底能干嘛? 关于python,除了学习内容以外,你还知道python的什么呢? 快手,美团,百度,网易,字节跳动,UC,,360,YY,爱奇艺等九大企业都在用Python,可想而知就业岗位已经...
  • 1. import 2. 输入 3. 输出 4. 赋值,运算 5. range使用: 工厂函数 6. 条件语句 7.循环语句 8. 比较操作 9. 条件判断 10. 循环判断 continue 和 break 11. 内置集合: list[], tuple()(用圆括号或者不用括号), dict{},...
  • Python基础教程(一)

    2019-04-23 00:42:29
    Python基础教程 一、简介 Python的历史和为什么学习Python这里就不在赘述了。处于工作原因,对Python要进行深入的学习和研究,这里主要针对的就是Python具有的丰富和强大的库。 Python目前有两个版本,Python2和...
  • Python语言学习:python语言的特点、入门、基础用法之详细攻略 相关内容Python基础教程 目录 python语言的特点 python语言的入门 python语言基础用法 python语言的特点 1、pickle功能:Python 有...
  • 随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?这里整理了一些个人经验和Python入门教程供大家参考。 如果你是零基础入门 Python 的话,建议...
  • python基础教程 python基础系列教程——Python的安装与测试:python解释器、PyDev编辑器、pycharm编译器 python基础系列教程——Python库的安装与卸载 python基础系列教程——Python3.x标准模块库目录 ...
  • 本课程提供零基础的孩子学习编程,学习Python语言的基本知识,讲课内容通俗易懂,结合大量的实例,让孩子更容易理解编程中的一些概念。 学会本课程后,孩子能看懂一般的Python代码,并能写简单的程序,学会编程...
  • 说明:学习笔记依据《python程序设计与算法基础教程》 主编:江红 余青松 第一章 python的下载与安装  ...第二章 python语言基础  因为语法和c++相似,主要通过代码展示一些不同点。import math a = 3.0 b = 4.0 c =
  • Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 在现在的工作及开发当中,Python的使用越来越广泛,为了方便大家的学习,Linux大学 特推出了 《Python基础教程系列》。 本系列教程...
  • 大多数Python 开发者从事以下三种开发:Web(38%)、通用开发(22%)、科学类开发...想找Python基础教程视频集锦?看这里! 千锋Python基础教程:http://pan.baidu.com/s/1qYTZiNE Python课程教学高手晋级视频总目录:h...
1 2 3 4 5 ... 20
收藏数 61,639
精华内容 24,655
关键字:

0基础python语言教程