零基础学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(10202))

小贴士:

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. 元组可以在映射(和集合的成员)中当做“键”使用,而列表不行。这会在后续章节中作详解介绍。

猜你喜欢

转载自blog.csdn.net/BS009/article/details/131012179