零基础学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. 元组可以在映射(和集合的成员)中当做“键”使用,而列表不行。这会在后续章节中作详解介绍。
相关文章
|
14天前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
5天前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
16天前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
20天前
|
存储 程序员 Python
Python学习的自我理解和想法(2)
今日学习Python第二天,重点掌握字符串操作。内容涵盖字符串介绍、切片、长度统计、子串计数、大小写转换及查找位置等。通过B站黑马程序员课程跟随老师实践,非原创代码,旨在巩固基础知识与技能。
|
19天前
|
程序员 Python
Python学习的自我理解和想法(3)
这是学习Python第三天的内容总结,主要围绕字符串操作展开,包括字符串的提取、分割、合并、替换、判断、编码及格式化输出等,通过B站黑马程序员课程跟随老师实践,非原创代码。
|
16天前
|
Python
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。
|
14天前
|
存储 安全 索引
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。
|
16天前
|
存储 索引 Python
Python学习的自我理解和想法(4)
今天是学习Python的第四天,主要学习了列表。列表是一种可变序列类型,可以存储任意类型的元素,支持索引和切片操作,并且有丰富的内置方法。主要内容包括列表的入门、关键要点、遍历、合并、判断元素是否存在、切片、添加和删除元素等。通过这些知识点,可以更好地理解和应用列表这一强大的数据结构。
|
16天前
|
索引 Python
Python学习的自我理解和想法(5)
这是我在B站千锋教育学习Python的第五天笔记,主要内容包括列表的操作,如排序(`sort()`、``sorted()``)、翻转(`reverse()`)、获取长度(`len()`)、最大最小值(`max()`、``min()``)、索引(`index()`)、嵌套列表和列表生成(`range`、列表生成式)。通过这些操作,可以更高效地处理数据。希望对大家有所帮助!
|
22天前
|
安全 程序员 Python
Python学习的自我理解和想法(1)
本篇博客记录了作者跟随B站“黑马程序员”课程学习Python的第一天心得,涵盖了`print()`、`input()`、`if...else`语句、三目运算符以及`for`和`while`循环的基础知识。通过实际编写代码,作者逐步理解并掌握了这些基本概念,为后续深入学习打下了良好基础。文中还特别强调了循环语句的重要性及其应用技巧。