零基础学Python|Python基础知识学习第三天

简介: 零基础学Python|Python基础知识学习第三天

今天主要学习了Python的编程基础知识,数据类型Number,序列和列表。把学习的笔记整理分享一下。

第三天 Python基础知识

1.数据类型:Number

Python Number 数据类型用于存储数值

数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。

以下实例在变量赋值时 Number 对象将被创建:

# 实例 1
var1 = 5
var2 = 10

您也可以使用del语句删除一些 Number 对象引用。

del语句的语法是:

# 实例 2
del var1[,var2[,var3[....,varN]]]]

Number支持四种不同的数值类型:

整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。
长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。
浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
复数(complex numbers) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。

Python提供的Number类型转换函数:

int(x [,base ])         将x转换为一个整数  
long(x [,base ])        将x转换为一个长整数  
float(x )               将x转换到一个浮点数  
complex(real [,imag ])  创建一个复数  
str(x )                 将对象 x 转换为字符串  
repr(x )                将对象 x 转换为表达式字符串  
eval(str )              用来计算在字符串中的有效Python表达式,并返回一个对象  
tuple(s )               将序列 s 转换为一个元组  
list(s )                将序列 s 转换为一个列表  
chr(x )                 将一个整数转换为一个字符  
unichr(x )              将一个整数转换为Unicode字符  
ord(x )                 将一个字符转换为它的整数值  
hex(x )                 将一个整数转换为一个十六进制字符串  
oct(x )                 将一个整数转换为一个八进制字符串  

数学函数

随机数函数

三解函数

数学常量

2.序列

Python中的序列结构主要有列表、元组、字符串、集合和字典。

序列是Python中最基本的一种数据结构。序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引),并且序列中的数据会按照 添加的顺序来分配索引。通过该索引可以取出相应位置的值。

2.1 索引

Python的序列索引不同于Java,它分为正数索引和负数索引

正数索引:从序列的左侧第一个开始,索引值为0,依次向右递增(0,1,2,3…n)

负数索引:从序列的右侧第一个开始,索引值为-1,依次向左递减(-n…-3,-2,-1)

示例:

#序列
student=["小明","小李","小王","小天"]
print(student[1])
print(student[2])
print(student[-1])
print(student[-2])

输出结果:

小李
小王
小天
小王

2.2 切片

切片操作可以访问序列中的一定范围内的元素,通过切片操作可以生成一个新的序列,就是取原序列中的一部分。

sname[start:end:step]
说明:
sname:序列名称
start:切片的开始位置索引(包含此位置),如果不指定,则默认为0
end:切片的截至位置索引(不包括该位置),如果不指定则默认为序列的长度
step:步长,如果省略,则默认为1,当省略步长时,最后一个冒号也可以省略

示例:

#序列 切片
myseq=[0,1,2,3,4,5,6,7,8,9]
newseq=myseq[0:5]  #省略步长
print(newseq) 
newseq=myseq[0:5:2] #指定步长为2
print(newseq)
结果输出:
[0, 1, 2, 3, 4]
[0, 2, 4]

2.3 序列相加

Python支持两种类型相同的序列相加(+):类型相同指双方同为列表、元组或集合,元素类型可以不同

示例:

#序列 相加
myseq=[0,1,2,3,4,5,6,7,8,9]
myseq2=["a","b","c"]
newseq = myseq+myseq2
print(newseq)
结果输出:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c']

2.4 序列乘法

Python中使用序列和一个整数字N相乘,相当于重复原有序列N次。

示例:

myseq=["a","b","c"]
print(myseql)
结果输出:
['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']

2.5 元素检测

可以使用in关键字检测某个元素在不在某个序列中。返回True表示在,返回False表示不在。

value in sequence

也可以使用not in关键字检测某个元素是否不在某个序列中。返回True表示有在,返回False表示在。

value not in sequence

示例:

#序列 元素检测
myseq=["a","b","c"]
print("a" in myseq)
print("e" not in myseq)
输出:
True
True

2.6 序列的内置函数

序列的长度:len()

序列的最大值:max()

序列的最小值:min()

#序列 内置函数
myseq=["a","b","c","d","e","f"]
print(len(myseq))
print(max(myseq))
print(min(myseq))

其它的内置函数:

list():将序列转换为列表
str():将序列转换为字符串
sum():计算元素和
sorted():对元素进行排序
reversed():反向序列中的元素
enumerate():将序列组合为一个索引序列,多用在for循环中

3.列表

列表是由一系列按特定顺序排列的元素组成的序列。它是Python的内置可变序列。可以将整数、实数、字符串、列表、元组等任何类型的元素放入列表中。同一列表的元素类型可以不同。

3.1 列表的创建和删除

赋值运算符直接创建:

mylist=[1,2,3,4,5]

创建空列表:

emptylist=[]

数值列表:python中可以使用list()函数直接将range()函数循环的结果、字符串、元组或其它可迭代类型的数据转换为列表

mylist=list(range(10,20,2))

小贴士:

range(start, stop[, step]:用于生成一系列连续的整数。

删除列表:

del mylist

小贴士:

在实际应用,一搬不用手动删除,Python提供的垃圾回收机制会自动销毁不用的列表。

3.2 访问列表

直接根据索引访问:

mylist=[1,2,3,4,5]
print(mylist[0])

使用for循环遍历:

#列表访问
mylist=list(range(10,20,2))
print(mylist)
for item in mylist:
    print(item)

使用for循环和enumerate()函数可同时输出索引值和元素内容:

#列表访问
mylist=list(range(10,20,2))
print(mylist)
for index,item in enumerate(mylist):
    print(index,item)

3.3 列表元素添加、修改和删除

使用append()方法实现元素添加:未尾追加

mylist=[1,2,3,4,5]
mylist.append(6)
print(mylist)

使用insert()方法实现元素添加:指定位置添加 执行效率低,不推荐

#列表元素添加
mylist=[1,2,3,4,5]
mylist.insert(2,"a")
print(mylist)

使用extend()将一个列表追加到另一个列表中:和+号功能相同

#列表元素添加  将mylist2追加到mylist中
mylist=[1,2,3,4,5]
mylist2=["a","b","c"]
mylist.extend(mylist2)
print(mylist)
#列表元素添加  将mylist2追加到mylist中
mylist=[1,2,3,4,5]
mylist2=["a","b","c"]
print(mylist+mylist2)

修改元素只要通过索引获得要修改的元素,再为其重新赋值即可:

#列表元素修改
mylist=[1,2,3,4,5]
mylist[1]="a"
print(mylist)

删除元素可以根据索引删除,也可以根据值删除:

#列表元素删除
mylist=[1,2,3,4,5]
del mylist[1]
print(mylist)
#列表元素删除
mylist=[1,2,3,4,5]
mylist.remove(1)
print(mylist)

使用remove删除前,最好判断一下此元素是否存在:否则会报错

#列表元素删除
mylist=[1,2,3,4,5]
if 8 in mylist:
   mylist.remove(8)
   print(mylist)
else:
   print("此元素不存在")

或:

#列表元素删除
mylist=[1,2,3,4,5]
if mylist.count(8)>0:  #count统计列表中某个元素的个数
    mylist.remove(8)
    print(mylist)
else:
    print("此元素不存在")

3.4 列表统计

count():统计元素在列表中出现的次数

mylist=[1,2,3,4,5]
mylist.count("a")

index():获得指定元素首次出现的下标

mylist=[1,2,3,4,5,1]
mylist.index(1)

sum():统计数值列表的元素和

sum(列表,[start])
mylist=[1,2,3,4,5]
total = sum(mylist)

3.5 列表排序

使用列表对象的sort()方法排序:此函数对中文支持不好

listname.sort(key=None,reverse=False)  #括号内为默认值
糁数:key 表示从每个元素提出一个用于比较的键,如key=str.lower 表示在排序列时不区别大小写
参数:reverse=True 表示降序排列 ;reverse=False 表示升序排列
#列表元素排序  默认是先排大写,再排小写
mylist = ["Efg","Abc","def","bcd"]
mylist.sort()
print(mylist)
#列表元素排序  忽略大小写排序
mylist = ["Efg","Abc","def","bcd"]
mylist.sort(key=str.lower)
print(mylist)

使用内置的sorted()方法进行排序:

sorted(listname,key=None,reverse=False)

示例:

#列表元素排序
mylist = [1,2,3,4,5]
newlist = sorted(mylist)
print(newlist)
newlist = sorted(mylist,reverse=True)
print(newlist)

3.6 列表推导

生成指定范围的数值列表:

list = [Expression for var in range]

示例:

#列表推导式
import random
randomnumber=[random.randint(10,100) for i in range(10)]
print(randomnumber)

根据列表生成指定需求的列表:

list = [Expression for var in list]

示例:

#列表推导式
mylist = [4,8,6,10,20]
newlist =[x*0.5 for x in mylist]
print(newlist)

从列表中选择符合条件的元素组成新的列表:

list = [Expression for var in list if condition]

示例:

#列表推导式
mylist = [4,8,6,10,15,20]
newlist =[x for x in mylist if x%2==0]
print(newlist)

4.元组

元组(tuple)是由一系列按特定顺序排列的元素组成的序列,与列表类似,但它是不可变的。它是Python的内置不可变序列。可以将整数、实数、字符串、列表、元组等任何类型的元素放入元组中。同一元组的元素类型可以不同。元组所有的元素都放在( )中。

4.1 元组的创建与删除

赋值运算符直接创建元组:

tuplename=(elment1,elment2....)
username=("xiaoming","xiaocong","xiaodan","xiaotian")

其实不用小括号,Python 也会将其识别为一个元组:

username="xiaoming","xiaocong","xiaodan","xiaotian"

如果创建的元组只有一个元素,需要在元素后面加一个,号,不然会被识别为字符串

#元组
username=("xiaoming",)
print(type(username))
username=("xiaoming")
print(type(username))

创建空元组:

tuplename=()

创建数值元组:python中可以使用list()函数直接将range()函数循环的结果、字符串、元组或其它可迭代类型的数据转换为元组

tuple(data)
#数值元组
print(tuple(range(10,20,2)))
print(tuple([1,2,3,4,5]))

删除元组:

del tuplename

4.2 访问元组元素

username=("xiaoming","xiaocong","xiaodan","xiaotian")
print(username[1])
print(username[:3])   #切片访问

4.3 修改元组

元组内元素是不可以修改的,但可以对元组进行重新赋值或进行连接。

username=("xiaoming","xiaocong","xiaodan","xiaotian")
username=("daming","dacong","dadan","datian")
newtuple=username+("dayu","damao")
print(newtuple)

4.4 元组推导式

基本上和列表一样:

#元组推导式
import random
randomnumber=[random.randint(10,100) for i in range(10)]
randomnumber=tuple(randomnumber)
print(randomnumber)
#元组推导式
mytuple = (4,8,6,10,15,20)
newtuple =(x for x in mylist if x%2==0)
print(tuple(newtuple))

列表和元组的区别:

元组和列表同属序列类型,且都可以按照特定顺序存放一组数据,数据类型不受限制,只要是 Python 支持的数据类型就可以。那么,元组和列表有哪些区别呢?

元组和列表最大的区别就是,列表中的元素可以进行任意修改,就好比是用铅笔在纸上写的字,写错了还可以擦除重写;而元组中的元素无法修改,除非将元组整体替换掉,就好比是用圆珠笔写的字,写了就擦不掉了,除非换一张纸。

  1. 元组作为很多内置函数和序列类型方法的返回值存在,也就是说,在使用某些函数或者方法时,它的返回值会元组类型,因此你必须对元组进行处理。
  2. 元组比列表的访问和处理速度更快,因此,当需要对指定元素进行访问,且不涉及修改元素的操作时,建议使用元组。
  3. 元组可以在映射(和集合的成员)中当做“键”使用,而列表不行。这会在后续章节中作详解介绍。
相关文章
|
4月前
|
安全 数据安全/隐私保护 Python
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
|
2月前
|
算法 IDE 测试技术
python学习需要注意的事项
python学习需要注意的事项
184 57
|
2月前
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。
|
2月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
3月前
|
数据采集 存储 监控
抖音直播间采集提取工具,直播间匿名截流获客软件,Python开发【仅供学习】
这是一套基于Python开发的抖音直播间数据采集与分析系统,包含观众信息获取、弹幕监控及数据存储等功能。代码采用requests、websockets和sqlite3等...
|
4月前
|
存储 搜索推荐 算法
Python学习的自我理解和想法(28)
本文记录了学习Python第28天的内容——冒泡排序。通过B站千锋教育课程学习,非原创代码。文章详细介绍了冒泡排序的起源、概念、工作原理及多种Python实现方式(普通版、进阶版1和进阶版2)。同时分析了其时间复杂度(最坏、最好、平均情况)与空间复杂度,并探讨了实际应用场景(如小规模数据排序、教学示例)及局限性(如效率低下、不适用于高实时性场景)。最后总结了冒泡排序的意义及其对初学者的重要性。
|
4月前
|
Python
Python学习的自我理解和想法(26)
这是一篇关于使用Python操作Word文档的学习总结,基于B站千锋教育课程内容编写。主要介绍了通过`python-docx`库在Word中插入列表(有序与无序)、表格,以及读取docx文件的方法。详细展示了代码示例与结果,涵盖创建文档对象、添加数据、设置样式、保存文件等步骤。虽为开学后时间有限下的简要记录,但仍清晰梳理了核心知识点,有助于初学者掌握自动化办公技巧。不足之处欢迎指正!
|
5月前
|
索引 Python
Python学习的自我理解和想法(24)
本文记录了学习Python操作Excel的第24天内容,基于B站千锋教育课程。主要介绍openpyxl插件的使用,包括安装、读取与写入Excel文件、插入图表等操作。具体内容涵盖加载工作簿、获取单元格数据、创建和保存工作表,以及通过图表展示数据。因开学时间有限,文章简要概述了各步骤代码实现,适合初学者参考学习。如有不足之处,欢迎指正!
|
4月前
|
Python
Python学习的自我理解和想法(25)
这是一篇关于Python操作Word文档(docx)的教程总结,基于B站千锋教育课程学习(非原创代码)。主要内容包括:1) docx库插件安装;2) 创建与编辑Word文档,如添加标题、段落、设置字体样式及保存;3) 向新或现有Word文档插入图片。通过简单示例展示了如何高效使用python-docx库完成文档操作。因开学时间有限,内容精简,后续将更新列表和表格相关内容。欢迎指正交流!
|
5月前
|
Python
Python学习的自我理解和想法(23)
本文记录了学习Python正则表达式的第23天心得,内容基于B站麦叔课程。文章分为三个部分:1) 正则表达式的七个境界,从固定字符串到内部约束逐步深入;2) 写正则表达式的套路,以座机号码为例解析模式设计;3) 正则表达式语法大全,涵盖字符类别、重复次数、组合模式、位置、分组、标记、特殊字符和替换等知识点。总结中表达了对知识的理解,并欢迎指正。

热门文章

最新文章

推荐镜像

更多