前言:
零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能相关知识,成为学习学习和学业的先行者!
欢迎大家订阅专栏:零基础学Python:Python从0到100最新最全教程!
一、Python语言特点
1. 简单易学、明确优雅、开发速度快
✍简单易学:与C和Java比,Python的学习成本和难度曲线不是低一点,更适合新手入门,自底向上的技术攀爬路线。
✍明确优雅:Python的语法非常简洁,代码量少,非常容易编写,代码的测试、重构、维护等都非常容易。
✍开发速度快:当前互联网企业的生命线是什么?产品开发速度!如果你的开发速度不够快,在你的产品推出之前别人家的产品已经上线了,你也就没有生存空间了,这里的真实例子数不胜数。那么,Python的开发速度说第二没人敢称第一!
2. 跨平台、交互式、解释型、面向对象的动态语言
✍跨平台:Python支持Windows、Linux和MAC os等主流操作系统。
✍交互式:Python提供很好的人机交互界面,比如IDLE和IPython。可以从终端输入执行代码并获得结果,互动的测试和调试代码片断。
✍解释型:Python语言在执行过程中由解释器逐行分析,逐行运行并输出结果。
✍面向对象:Python语言具备所有的面向对象特性和功能,支持基于类的程序开发。
✍动态语言:在运行时可以改变其结构。例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言非常具有活力。
3.大量的标准库和第三方库
✍Python为我们提供了非常完善的基础库,覆盖了系统、网络、文件、GUI、数据库、文本处理等方方面面,这些是随同解释器被默认安装的,各平台通用,你无需安装第三方支持就可以完成大多数工作。
4. 开源语言,发展潜力巨大
✍Python是基于C语言编写的,并且使用GPL开源协议,你可以免费获取它的源代码,进行学习、研究甚至改进。众人拾柴火焰高,有更多的人参与Python的开发,促使它更好的发展,被更多的应用,形成良性循环。
✍Python为什么会越来越火就是因为它的开放性,自由性,聚起了人气,形成了社区,有很多人在其中做贡献,用的人越来越多,自然就提高了市场占有率,企业、公司、厂家就不得不使用Python,提供的Python程序员岗位就越来越多,这就是开源的力量。
二、Python可以做什么
说到Python,大多数人会与人工智能挂钩,确实人工智能与Python密不可分,但除了人工智能python还有很多很多的用处:
AI
网络爬虫
自动化
数据分析
WEB开发
常规软件开发
云计算
…
可以说,Python无处不在!
1.文本编辑器 - Visual Studio Code
Visual Studio Code(通常简称为VSCode)是一个由微软开发能够在Windows、 Linux和macOS等操作系统上运行的代码编辑神器。它支持语法高亮、自动补全、多点编辑、运行调试等一系列便捷功能,而且能够支持多种编程语言。如果大家要选择一款高级文本编辑工具,强烈建议使用VSCode。关于VSCode的下载、安装和使用,推荐大家阅读一篇名为《VScode安装使用》的文章。
2.集成开发环境 - PyCharm
如果用Python开发商业项目,我们推荐大家使用更为专业的工具PyCharm。PyCharm是由捷克一家名为JetBrains的公司开发的用于Python项目开发的集成开发环境(IDE)。所谓集成开发环境,通常是指工具中提供了编写代码、运行代码、调试代码、分析代码、版本控制等一系列功能,因此特别适合商业项目的开发。在JetBrains的官方网站上提供了PyCharm的下载链接,其中社区版(Community)是免费的但功能相对弱小(其实已经足够强大了),专业版(Professional)功能非常强大,但需要按年或月付费使用,新用户可以试用30天时间。
PyCharm常用的快捷键如下表所示,我们也可以在“File”菜单的“Settings”中定制PyCharm的快捷键(macOS系统是在“PyCharm”菜单的“Preferences”中对快捷键进行设置)。
3. PyCharm常用快捷键。
快捷键 | 作用 |
---|---|
ctrl + j | 显示可用的代码模板 |
ctrl + b | 查看函数、类、方法的定义 |
ctrl + alt + l | 格式化代码 |
alt + enter | 万能代码修复快捷键 |
ctrl + / | 注释/反注释代码 |
shift + shift | 万能搜索快捷键 |
ctrl + d / ctrl + y | 复制/删除一行代码 |
ctrl + shift + - / ctrl + shift + + | 折叠/展开所有代码 |
F2 | 快速定位到错误代码 |
ctrl + alt + F7 | 查看哪些地方用到了指定的函数、类、方法 |
说明:使用macOS系统,可以将上面的
ctrl
键换成command
键,在macOS系统上,可以使用ctrl + space
组合键来获得万能提示,在Windows系统上不能使用该快捷键,因为它跟Windows默认的切换输入法的快捷键是冲突的,需要重新设置。
4.hello, world
按照行业惯例,我们学习任何一门编程语言写的第一个程序都是输出hello, world
,因为这段代码是伟大的丹尼斯·里奇(C语言之父,和肯·汤普森一起开发了Unix操作系统)和布莱恩·柯尼汉(awk语言的发明者)在他们的不朽著作The C Programming Language中写的第一段代码。
print('hello, world')
5.运行程序
如果不使用PyCharm这样的集成开发环境,我们可以将上面的代码命名为hello.py
,对于Windows操作系统,可以在你保存代码的目录下先按住键盘上的shift
键再点击鼠标右键,这时候鼠标右键菜单中会出现“命令提示符”选项,点击该选项就可以打开“命令提示符”工具,我们输入下面的命令。
python hello.py
提醒:我们也可以在任意位置打开“命令提示符”,然后将需要执行的Python代码通过拖拽的方式拖入到“命令提示符”中,这样相当于指定了文件的绝对路径来运行该文件中的Python代码。再次提醒,macOS系统要通过
python3
命令来运行该程序。
你可以尝试将上面程序单引号中的hello, world
换成其他内容;你也可以尝试着多写几个这样的语句,看看会运行出怎样的结果。需要提醒大家,上面代码中的print('hello, world')
就是一条完整的语句,我们用Python写程序,最好每一行代码中只有一条语句。虽然使用;
分隔符可以将多个语句写在一行代码中,但是最好不要这样做,因为代码会变得非常难看。
5.注释你的代码
注释是编程语言的一个重要组成部分,用于在源代码中解释代码的作用从而增强程序的可读性。当然,我们也可以将源代码中暂时不需要运行的代码段通过注释来去掉,这样当你需要重新使用这些代码的时候,去掉注释符号就可以了。简单的说,注释会让代码更容易看懂但不会影响程序的执行结果。
Python中有两种形式的注释:
- 单行注释:以
#
和空格开头,可以注释掉从#
开始后面一整行的内容。 - 多行注释:三个引号开头,三个引号结尾,通常用于添加多行说明性内容。
# print('hello, world')
print("你好,世界!")
三、Python基础知识及应用
1.将字符列表转化为字符串
l=['Python','Circle','is','ok']
j=''.join(l)
print(j)
2.将字符串居中
a='徐以鹏比易烊千玺帅亿点'
b=a.center(50)
c=a.center(50,'*')
print(b)
print(c)
3.find方法找到字符串中的字符,找到就返回第一个字符的索引,找不到就返回-1
a='I love python'
b=a.find('o')
print(b)
c=a.find('lov')
print(c)
让字符的首字母大写,其他字母手写
a='i love python'
b=a.title()
c='I LOVE PYTHON'
d=c.title()
print(b)
print(d)
用string中的capwords方法
import string
a='i lOve python'
b=string.capwords(a)
print(b)
清空列表
a=[1,2,3]
a.clear()
print(a)
a=[1,2,3]
a[:]=[]
print(a)
计算指定元素在列表中出现的次数
a=['i','am','ok','k','ok']
b=a.count('ok')
print(b)
在列表末尾加入元素
a=[1,2,3]
b=[4,5,6]
c=a+b
print(c)
a=[1,2,3]
b=[4,5,6]
a.extend(b)
print(a)
将对象插入到列表中
a=[1,2,3,4]
a.insert(2,'there')
print(a)
a=[1,2,3,4]
a[2:2]=['there']
print(a)
删除列表中的元素
a=[1,2,3,4]
a.pop()#pop可以删除指定元素,默认删除最后一个元素
print(a)
a.pop(0)
print(a)
删除列表中的指定元素
a=[1,2,4,3,4]
a.remove(4)#只删除第一次出现的元素
print(a)
让列表按相反顺序排序?
a=[2,1,5,99]
a.reverse()
print(a)
a=[2,1,5,99]
a=a[::-1]
print(a)
表示只包含一个元素的元组,一定要在后面加逗号
a=(1)
print(type(a))#整数
a=(1,)
print(type(a))#元组
批量替换字符串中的元素
a='i love python'
b=a.replace('o','徐')
print(b)
将字符串按照空格进行拆分
a='i love python'
print(a.split())
去除字符串首位的空格
a=' i love python'
print(a.strip())
给字典中不存在的key指定默认值
a={'age':42,'name':'g'}
print(a.get('aa','N/2'))
快速求1到100所有整数相加的和
print(sum(range(1,101)))
快速启动浏览器打开指定的网站,使用webbrowser库
import webbrowser
webbrowser.open('http://www.python.org')'''
给函数编写文档在 def 语句后⾯把注释⽂档放在引号(单引、双引、三引都可以)⾥⾯就⾏,这个⽂档可以通过 function.__doc__访问。
def square(x):'''返回平方值'''return x*x
print(square.__doc__)
定义私有方法
#在方式名称前加两个下斜杠
class Person:def __name(self):print('私有方法')
#注明:⽤ from module import * 导⼊时不会导⼊私有⽅法。
怎么判断一个类是另一个类的子类?
class A:pass
class B(A):pass
print(issubclass(A,B))#是返回True,不是返回False
怎么从一个非空序列中随机选择一个元素?
import random
print(random.choice([1,'two',3,'四']))
怎么查出通过from xx import xx导入的可以直接调用的方法?
#⽤ all ⽅法,这个⽅法查出的是模块下不带_的所有⽅法,可以直接调⽤。
import random
print(random.__all__)
集合
#花括号{}是集合还是字典:是字典#怎么求两个集合的并集?
a={6,7,8}
b={7,8,9}
print(a.union(b))a={6,7,8}
b={7,8,9}
print(a|b)#求两个集合的交集
a={6,7,8}
b={7,8,9}
print(a&b)a={6,7,8}
b={7,8,9}
print(a.intersection(b))#求两个集合中不重复的元素
a={6,7,8}
b={7,8,9}
print(a^b)a={6,7,8}
b={7,8,9}
print(a.symmetric_difference(b))#求两个集合的差集
a={6,7,8}
b={7,8,9}
print(a-b)a={6,7,8}
b={7,8,9}
print(b.difference(a))
print(a.difference(b))
#从一个序列中随机返回n个不同值的元素
import random
t=(2020,7,3,21,48,56,4,21,0)
print(random.sample(t,2))#怎么生成两个数之间的随机实数
from random import uniform
print(uniform(10,20))
import random
print(random.uniform(10,20))#怎么在等差数列中随机选择一个数
print(random.randrange(0,100,10))
怎么在文件中写入字符?
''#使用open函数,模式用w
with open('bruce.txt','w')as f:f.write('hello word')'''with open('bruce.txt','r')as f:f.read()
怎样将当前时间转化为字符串?
#用time模块中的asctime方法
import time
print(time.asctime())
怎么随机打乱列表的顺序
import random
t=list(range(20))
print(t)
random.shuffle(t)
print(t)
文末推荐:人工智能通识讲义
本书是面向青少年的人工智能科普书和入门教材,立足于趣味性、科学性、知识性和实践性,尽量避免晦涩专业术语对阅读流畅性的影响。书中还包含数十个精心筛选的实践案例,可根据读者需要灵活选用。
全书共5 个单元、14章,从人工智能的发展简史讲起,以语音、图像、生活中的典型场景及伦理问题为主要知识载体,聚焦问题,深入浅出地引出人工智能的基本思想、主要原理、知识概念、典型应用实践等。
本书可作为青少年课外科普读物和中学信息技术等学科的辅助教材、职业院校的专业教材和本科阶段的通识教育教材,还可作为相关培训教材和科学素质提升读本。
购买链接:https://item.jd.com/13166775.html
撰写初衷
目前,新一代人工智能(AI)技术处于爆发期之后的深化期,各行业都需要大量的具备AI技术素养的专业人才,人们的日常生活已经和AI息息相关,几乎每天都会和它打交道。与其他技术显著不同的是,AI会通过“学习”帮我们做出偏好选择和决定,一些不良的AI程序还在尝试收集我们的隐私,如果对它一无所知是非常可怕的。具备一些认知和鉴别AI的信息意识、了解代表性AI技术原理与实现的计算思维、掌握简单的AI案例的数字化实现手段、识别生活中AI技术的两面性、肩负起构建和谐信息社会的责任,应该成为青少年的基本信息素养。因此,人工智能教育不应局限于高等教育,相关科技的了解和普及教育应该从青少年开始。
随着人工智能应用的遍地开花,我国已将人工智能作为赢得全球科技竞争主动权的重要战略抓手,不断进行深化研究,近年来我国人工智能原创优秀成果以及与传统文化结合而产生的交叉研究成果也在不断涌现,并成为我们国家科技飞速发展的一个重要标志。因此,我们迫切需要有更多面向青少年的人工智能书籍,在传播知识的同时能够帮助他们建立文化自信、培养家国情怀、激发工匠精神,为未来培养更多人工智能应用和国家建设科技强国的生力军。
本书特色
本书定位为面向青少年的AI知识科普读物和入门教材,书中并未详细介绍人工智能的学术体系,而是希望通过案例来激发学习AI的好奇心和同理心,将内容聚焦到语音、视觉、生活中的AI和AI伦理四方面,也是日常生活中接触使用最多、迫切需要去了解。本书立足于青少年学生能读懂、有关科任教师能讲透、案例易于上手实践和理解,再根据趣味性、科学性、知识性和实践性来组织各章节内容。
主要特点如下:
(1)本书采用图文并茂的写作方式,没有大段公式和大篇幅理论知识论述,符合目标群体认知特点。
(2)本书仅介绍了人工智能专业的必要概念,避免了概念过多且难以理解对读者群体造成困惑。
(3)全书内容不需要读者具备线性代数和概率论等专业知识,专业术语也经过反复斟酌,尽量用浅显、通俗的语言来解释。
(4)本书采用固定体例的方式,包括学习启航、知识讲堂、拓展阅读、活动实践、课后练习等栏目,符合教师的教学和青少年的阅读习惯。
(5)本书强调理论与实践相结合,精心筛选和设计了数十个难度不同的实践案例,可以供不同读者灵活选用,多数案例可扫描二维码观看操作视频。
(6)本书多处探讨了AI可能带来的隐私泄露、技术滥用等问题,还特别设置了人工智能伦理章节,以增强青少年对AI的思辨能力和信息安全意识。
(7)书中对一些知识点做了适当延伸,如鸟类识别、深度学习等,与其他内容是一个有机的整体,如果完整地学下来并不难理解。
(8)本书特别设计了人工智能与文学、艺术等交叉的新兴内容,能向读者有效传递文化自信,提升读者全方位素养。
本书使用
本书按照单元和章节的方式进行组织,单元内部各章节的内容有序而又独立,形成章节内部的逻辑主线。本书的结构体系侧重于面向问题而不是知识点,每个章节从AI应用中的具体话题引出,同一个单元的章节之间又前后呼应。作为科普读物,读者既可以通篇阅读,也可以按照章节独立阅读。教师作为教学参考书时,既可以按顺序使用,也可以根据教学需要选择不同单元的内容。
本书中的实践案例以及思考讨论题目有助于学习和掌握相关知识,还可以通过扫描二维码观看主要实践案例的操作视频,大部分章节都有思考或练习题,教师可根据需要选用或拓展。本书涉及的编程软件,读者可以按需下载和配置使用,少量案例需要额外的硬件支持,一般性的学习可跳过,这不影响书籍阅读的整体性。如作为职业院校的教材或期望掌握AI编程技术的同学使用,建议多尝试基于Python编程的案例。
编写团队
本书的编写团队包括人工智能领域专家、专业研究学者、教研人员、一线中学骨干教师、职业院校科任教师、专业科普人员和技术开发人员等。领域专家熟悉人工智能的历史脉络及学科知识体系,确保知识内容的科学性及严谨性。教研人员了解代表性青少年群体的信息科技知识水平、兴趣点及迫切需要了解的内容。中学和职业院校教师具有丰富的教学经验,了解青少年的认知水平和认知习惯,了解其基础知识体系构成,使得书籍行文充分符合青少年教材和参考书的特点。专业科普人员则熟悉教学和科普的差异,对知识点的讲解和呈现形式做了专门的设计。技术开发人员根据操作简便的原则专门开发了配套的软件,并对编程案例设计进行了测试和优化。
本书配套资源和获取方式
本书配有大量多媒体资源,如微课视频、实践活动所需各类素材(图像素材原文件、代码、活动案例网站地址、音频文件,部分插图的彩色图像文件)。音视频资源可在正文中扫描二维码获得,其他资源可扫描封底二维码获取电子资源包。
本书中的Python编程实例推荐使用Anaconda和PyCharm软件环境,安装和配置流程详见电子资源包中的说明文档或扫描附录中的二维码观看视频。
特别致谢
感谢北京市教育科学研究院基础教育教学研究中心、北京市东城区教育科学研究院、北京建筑大学、北京工商大学等单位在本书撰写过程给予的大力支持与指导。感谢北京市大兴区科学技术协会对本书出版和科普试用给予的大力支持。感谢北京智教未来科技有限公司、天津市大然科技有限公司等单位组织技术人员专门研制“塔罗斯+”软件,并对相关实例进行了开发和测试。
特别感谢中国科学院计算技术研究所研究员、中国计算机学会秘书长唐卫清老师在本书书稿成型过程中给予的指导。唐老师的指导意见中肯、专业、深入且富有启发,对本书最终成型起到了关键作用。
由于作者水平有限,书中难免有错误或疏漏之处,敬请广大读者批评指正。