Python基础:数据类型与编程基础
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
有一段时间没写Python了。今天介绍Py的数据对象类型和包括条件判断、循环在内的Py编程基础。就像R语言中的向量、数据框和因子等数据对象类型一样,Py基本的数据类型包括list(列表)、tuple(元组)、dict(字典)和集合(set)等类型。另外也简单介绍下if-else条件判断、for和while循环等Py编程基础知识。
Python 数据类型
Py主要数据类型包括list、tuple、dict和set等对象,下面逐一介绍这些Py数据类型。
list(列表)是Py内置的一种数据类型,作为一个有序的数据集合,list的元素是可变的,可随意添加或删减list中的元素。在Py交互式命令中运行list相关代码:
>>> NBAplayer = ['Westbrook', 'Harden', 'Durant']
>>> NBAplayer
['Westbrook', 'Harden', 'Durant']
对象NBAplayer就是一个list,我们可以使用索引来访问list中的每个元素,Py中的索引和R不一样,是从0开始计算的:
>>> NBAplayer[0]
'Westbrook'
>>> NBAplayer[2]
'Durant'
也可以倒着访问list中的每个对象:
>>> NBAplayer[-1]
'Durant'
在往list中添加对象时可以使用append方法:
>>> NBAplayer.append('James')
>>> NBAplayer
['Westbrook', 'Harden', 'Durant','James']
想要删除list中的某个对象可以使用pop方法:
>>> NBAplayer.pop(1)
'Harden'
>>> NBAplayer
['Westbrook', 'Durant']
list 也可以作为单个元素包含在另一个list中:
>>> player=['Curry','Leonard']
>>> NBAplayer=['Westbrook', 'Harden',palyer,'Durant']
再来看Py的另一种重要的数据类型:tuple(元组)。tuple和list十分类似,不同的是tuple是以括号()形式存在的,且tuple一旦初始化后就不能像list一样可以随意修改了。
>>> NBAplayer = ('Westbrook', 'Harden', 'Durant')
>>> NBAplayer
('Westbrook', 'Harden', 'Durant')
tuple具有和list一样的对象元素访问功能,这里不再赘述。需要注意的是,因为tuple元素是不可变对象,相应的也就没有和list一样的append、pop等修改元素的方法。
最后看Py中比较特殊的一种数据类型:dict(字典)。字典,顾名思义,肯定是具有强大的数据查询功能了。dict在其他程序语言中叫做map,具有key-value(键-值)的存储功能,看下面的示例:
>>> NBAplayer={'Westbrook':32.3, 'Harden':29.9}
>>> NBAplayer['Westbrook']
32.3
除了在创建dict时指定各元素的key-value之外,还可以通过key来单独指定值放入:
>>> NBAplayer['Durant'] = 25.7
>>> NBAplayer['Durant']
25.7
dict查找或插入数据的速度极快,但也占用了大量的内存,这一点正好和list相反。另一种和dict类似的数据类型叫做set(集合),它是一组key的集合但没有保存value,这里就不做介绍了。
Python 编程基础
这里主要介绍if-else条件判断以及for和while的循环语句。条件判断和循环作为任一编程语言的基础课有必要在此重点强调说明。先看Py中的if-else条件判断语句:
points=21.5
if points >= 20:
print('You are an all star palyer')
else:
print('Good job,to be an all star palyer!')
我们也可以用elif做更细致的条件判断:
points=21.5
if points >= 30:
print('You are a MVP palyer')
elif 25<=points<30:
print('You are a quasi MVP player')
elif 20<=points<30:
print('You are an all star palyer')
else:
print('Good job,to be an all star palyer!')
Py循环语句和其他语言原理一致,这里不再详细展开,就以常见的高斯求和使用for和while循环为例来展示Py的循环功能。
for循环:
sum=0
for x in range(101):
sum = sum + x
print(sum)
5050
while循环:
sum=0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
5050
通过上面的示例,大家可以看到其实Py的数据类型和一些编程基础都十分简单,这也与Py整体的语言风格有关,即使在行外人读起来也像读英文一样通俗易懂。
好消息!
小白学视觉知识星球
开始面向外开放啦👇👇👇
下载1:OpenCV-Contrib扩展模块中文版教程 在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。 下载2:Python视觉实战项目52讲 在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。 下载3:OpenCV实战项目20讲 在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。 交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~