来源:三分恶 大家好,快速看篇我是入门老三,我最近在看一些人工智能相关的快速看篇东西,大部分相关的入门框架,都是快速看篇用Pyhon写的。 老三会用Python,入门但谈不上多熟练,快速看篇最近准备拿Python作为自己的入门第二语言,那么这期我们来一起快速梳理一下Python基础。快速看篇 Python是入门一门解释性编程语言,既年长又年轻的快速看篇语言,它诞生于1989年,入门近些年,快速看篇人工智能的入门复兴,给它注入了新的快速看篇活力。 “Python”的中文翻译“蟒蛇”,因为Python之父Guido van Rossum,就是这位头发浓密的大叔,喜欢蟒蛇。 Python的主流版本又分为2.X和3.X,香港云服务器2.X已经停止维护,目前Python已经发布到了3.11.2版本。 我们来看一下在Windows环境下Python的安装。 下载完成之后就可以安装了,安装过程选择Add Pytyon 3.9 to PATH,这样就可以在任意路径使用Python了,同时也可以自定义一下Python的安装路径,我一般都是安装在D盘。 Win+R打开命令行界面,输入Python,会显示Python的版本号,至此Pytyon安装就已经完成,并且打开了Python Shell。 我们还默认安装了一个重要的工具——pip,它是Python的包管理工具,类似Java的Maven、Node的npm,在命令行界面输入pip -V,可以看到pid的版本: Python提供了交互式运行工具Python Shell,直接输入一行代码: ) 万物之始:Hello World. 当然,日常开发肯定不会使用这种交互式的方式,而是源码库使用文件的方式,那么Python文件的编辑器一般使用什么呢? Python因为是解释性语言,可选的编辑器有很多:Pycharm、Jupyter、Sbulime Text、VSCode…… 功能最强大的肯定是Pycharm,但是因为占内存,最重要的是得花钱,所以我一般用VSCode。 VSCode的安装就不多说,直接下载安装就可以了 为了更好地利用VSCode开发Python,推荐安装一些插件: Python:VS Code官方自带插件 LiveCode for python:可以实时显示每一个变量值 Sourcery:可以自动审查和改进代码 IntelliCode:官方提供的AI辅助开发插件,提供比较充分的代码提示 Python Indent:更好地进行Python代码的缩进 Python Test Explorer:可视化代码测试 Python Snippets:自动补全代码片段 还有其它的一些好用的插件,大家可以自行探索—— 如果有的选,建议Pycharm。 我们来简单体验一下VSCode编写Python代码: ) 至此,云南idc服务商Python开发环境就已经准备好了,那么我们开始学习Python基础语法。 Python是一门非常简单的语言,我们前面的print就是非常简单的打印操作。 Python是一门解释性语言,有点类似shell,对缩进要求比较严格,以Tab键或者4个空格进行缩进。 例如,这一段代码就有语法错误: 需要改成: Python的注释,使用#: 在VSCode里可以使用快捷键Ctrl+/快速注释: Python是一种面向对象的编程语言,所有的数据类型都是类,每个数据值都是类的“实例”,并且不需要显式声明变量的类型。 在Python中有6种主要的内置数据类型:数字(Number)、字符串(string)、列表(list)、元组(tuple)、集合(set)和字典(dict)。 Python中常用的数字类型有两种:整数(int)、浮点(float)。 我们在Python Shell里进行一些数字的操作: >>> print(num) 4 66 18.0 3 18.0 6 其中/会永远返回浮点数float,Python只支持双精度的浮点数float,返回int需要用// 8 Python 支持其他类型的数字,例如Decimal and Fraction。 Python 还内置了对复数(complex)的支持,当然,用的也不多。 字符串是最常用的数据类型,它可以放在单引号里,也可以放在双引号“”里。 Good man Good man Python isgood I say:"Python is good". 666 66.6 888 o e 11 There|is|a|hard|people. [There is a hard people.] 线性表这种数据结构我们都比较熟悉,Python中的实现是list,类似于Java中的ArrayList,list中可以放入任意类型的变量: Study [Python, Good, Study, World] [Python, Should, Good, Study] ] print(list) ] [80, 90, 70] 列表(list)是一种可变的序列类型,元组(tuple)是一种不可变的序列类型,由多个用逗号隔开的值组成: 1314 (1314, love, 3, 666) 集合(set)是一种可迭代的、无序的、不能包含重复元素的容器类型的数据,类似于Java中的Set。 { 50, 60, 90, 70} { 100, 70, 90, 60} 字典(dict)是一种key,value类型的数据结构,类似于Java中的Map。 { jack: 4098, sape: 4139} 4098 { jack: 4098, sape: 5925, Tommy: 9876} 9876 { jack: 4098, sape: 5925} 好了,基本的数据结构我们都盘点完了,还有一些api,这里没有给出,建议大家可以直接查看api doc。 每个语言里都有条件语句、循环语句等等流程控制语句,我们来看看Python中的条件语句和循环语句。 )) : ) : ) : ) : ) 运行结果: 在Python里,有三种逻辑运算符: 其中and和or都是短路运算。 )) : ) : ) )) : ) : ) : ) : ) Python支持两种循环语句:while和for。 : sum+=i print(sum) Python中的for比较特殊,只能迭代列表、字符串等任意序列,不能迭代算数递增值,或者定义结束条件。 ] names: print(name) 运行结果: 如果想对数字序列进行迭代呢?那就得用到range()函数: ): print(i) 如果想要跳出循环,或者跳过本次循环呢? break:break用于跳出 for 或 while 循环 ): : print(i) continue:continue用于结束本次循环 ): : print(i) 一些集合类型的循环,比如列表、字典,还是非常常用的。 for循环列表 ] nums: print(i) while循环,根据下标循环list,和string遍历基本一样 ] len=len(nums) i print(nums[i]) ; 用enumerate() 函数可以同时取出位置索引和对应的值: ] enumerate(persons): print(i,v) 字典是 items()遍历:可以同时取出键和对应的值 } person_dict.items(): print(k,v) 遍历keys:可以用keys()函数,当然不用也可以 } person_dict.keys(): print(k,person_dict[k]) person_dict: print(k,person_dict[k]) 遍历values:用values()函数可以直接遍历values } person_dict.values(): print(v) 我们在写代码的过程中,有很多重复的逻辑,这时候就应该考虑复用这些逻辑,那么就应该定义一些函数(Functions)。 比如下面一段代码,创建一个函数,计算长方形的面积: area=height*width area ) print(area) ) print(area) 在这个简单的函数里: 在调用的时候,如果不直接指定形参,那么实参的顺序要和形参一致。 上面我们学习了Python的函数,通过函数我们可以实现很多代码的复用,但是问题来了,所有的函数我们也不能都写在一个文件里,那到后面这个文件就膨胀地不像话了,必须拆分文件。 那么文件拆分后,里面的函数怎么调用呢?这就得用到Python的模块了。 写一个calculate.py,很简单,里面定义一个简单的函数add,这时候calculate.py就可以理解为一个模块 a+b; 再写一个main.py,导入模块,调用函数 calculate )) 如果模块名太长了,也可以给模块设置别名: cal )) 假如模块里定义的函数太多了,而我们只需要用某一个函数,或者某几个函数,怎么办?可以只导入模块中的函数: add )) Python中也内置了很多模块,常用的有math、datetime、os等等。 例如,利用datetime获取当前年月: datetime now = datetime.datetime.now() year=now.year month=now.month year,month year,month=get_year_and_month(); ) 更多的标准库,可以直接查看官方的api文档。 Python是一门面向对象的语言,面向对象是为了更好地复用代码,接下里,我们看看面向对象的三大特征:封装、继承、多态在Python里是怎么实现的。 所谓类就是某个类型,比如人类,所谓对象,就是类的实例,比如张三。 ) zhansan=Person() zhansan.say_hello() 这段代码里定义了一个类Person,类里定义了一个方法say_hello,实例化了一个对象zhangsan,调用了方法。 类里可以有这些成员: self.name=name self.sex=sex self.age=age ) ) ) zhansan.say_hello() Person.breath() 在类中: 我们接下来,看看面向对象的三大特征在Python里是怎么实现的。 封装就是隐藏对象的内部细节,外部只管调用就行了。 Python中的变量默认是公开的,可以在外部的类中访问它们,如果想让它们变为私有变量,在变量前加上双双下画线(__)就行了,变量的获取和设置可以通过get()、set()方法。 self.name=name self._level= ) self._level self._level=level ) ) programer.write_bug() print(programer.get_level()) 我们现在让Programer继承Person,继承语法很简单,在类后()里指定继承的类就行了,可以一个,也可以多个。 Person self.name=name self._level= ) self._level self._level=level ) ) programer.write_bug() print(programer.get_level()) programer. say_hello() Python同样支持多态,对于继承,实现多态的方式,就是重写父类的方法: Person self.name=name self._level= ) self._level self._level=level ) ) ) programer.write_bug() print(programer.get_level()) programer. say_hello() 对于开发工程师而言,日常最苦恼的事情大概就是写bug和找bug了。 有些时候,我们不希望因为某些错误,导致整个程序停止,那么我们就可以利用try/except语句来捕获异常。 比如下面的代码,用5/0: 结果就发生了异常: ZeroDivisionError: division by zero 我们可以捕获这个异常: : e: print(e) 在这段代码里,我们捕获了异常,并把它打印了出来,我们也可以用pass空语句,不对异常做任何处理: : e: 我们还可以使用finally子句,定义所有情况下都必须执行的操作: : e: print(e) : ) 这一篇几千字的小文章到此就结束了,在这篇文章里,我们快速过了一遍Python环境的搭建,以及各种基础语法,包括数据类型、流程控制语句、函数、模块、面向对象、异常处理。 大家可以看到,Python是一门相对比较好上手的语言,我有个同事这么说——“Python有什么好学的,看看不就会了”。虽然他有吹的成分,但也可以看到,如果有一些编程语言基础,Python上手还是比较简单的。 我们可以先掌握Python基础,把它用起来,用的过程中,再通过文档、搜索引擎、ChatGPT等等,不断加深对细节的掌握。起步
Python简介
环境准备
编辑器准备
使用VSCode打开文件夹,新建文件hello.py
编写代码print(Hello World.
入门
基本命令
数据类型
数字(Number)
字符串(string)
列表(list)
元组(tuple)
集合(set)
字典(dict)
流程控制
条件语句
if语句# 从控制台获取输入score=int(input("请输入你的分数:" 循环语句
函数
模块
# 导入模块import
面向对象
类和对象
class Person: # 类变量 planet=地球 # 构造方法,初始化成员变量 def __init__(self,name,sex,age): # 成员变量:姓名,性别,年龄
封装/继承/多态
封装异常处理
小结