python基础(变量、数据类型)

发布时间 2023-05-31 21:49:01作者: 李志锋

python简介

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

python变量

什么是变量:

在python中,变量其实严格意义上称作为“名字”,也可以理解为标签。

当我们把一个值赋给一个变量的时候(比如把"小志"赋值给name,即name="小志"),name就称之为变量,小志就是值。从底层看:程序中的数据都要放在内存条内,变量就是这块内存的名字。

 变量的定义规范:

变量名是标识符的一种,不能随便起,必须要遵守 Python 标识符命名规则:

  • 变量名只能是字母、数字、下划线的任意组合
  • 变量名严格区分大小写
  • 变量名的第一个字符不能是数字
  • 以下划线开头的变量名有特殊含义,除非特定场景需要,应避免使用以下划线开头的变量名。
  • 变量名不能和 Python 关键字或函数名相同。

如何查看python的内置关键字:

import keyword
print(keyword.kwlist)
#运行结果
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

变量的赋值:

Python 变量的赋值指的是将数据放入变量的过程。Python 变量无须声明数据类型就可以直接赋值,Python 变量的数据类型可以随时改变,比如,同一个变量可以被赋值为字符串,也可以被赋值为整数。

Python 变量的基本赋值格式:

name='小志'  #将小志赋值给name
print(name) #输出name,实际上是将变量name的值输出

执行结果为

Python还可以为多个变量赋同样的值:

执行结果为

 

 Python还可以为多个变量赋不同的值:

执行结果为:

 

 Python数据类型

python数据类型主要分为以下七大类:

  • Numbers(数字)
  • Boolean(布尔)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)
  • Set(集合

 1、数字类型(Numbers)

Python的数字类型包括:

int(长整型) 就是整数的,例如1,2,3,-1,10

float(浮点型)就是带小数的,例如1.1,1.2,0.1,0.123

complex(复数)由实部(real)和虚部(imag)构成,是科学运算中常用的到的数学概念。

2、布尔类型(Boolean)

布尔类型是与逻辑相关一种数据类型,只有两个值:True(真)与False(假)

3、字符串类型(String)

字符串是由单引号、双引号或者三引号引起来的内容,可以是数字、字母、汉字、下划线组成的任意文本。

字符串的切分:

当定义一个变量为字符串时,会将字符串进行切分并标明地址值,比如定义一个name='xiaozhi',字符串在内存中的存放顺序为:

 当我们读取字符串的地址1的字符时对应的字母为i,

print(name[1])  #读取下标为1的字符
i

当读取字符地址2-4的字母时,要注意的是字母的范围应该是2 ≤ X < 4,也就是ao,

print(name[2:4])  #读取下标为2-3的字符
ao

当:左右两侧有省略时,则读取前面或后面整个的字符,当:左右都省略时则读取全部字符,可省略

print(name[:4])  #读取0-3的字符
xiao
print(name[4:])  #读取4到末尾的字符
zhi
print(name[:]) #读取全部字符
xiaozhi

带步长的切分为[左下标:右下标:步长]

print(name[::2]) #从左往右,步长为2读取字符
xazi

负数下标为从右向左读取字符

print(name[-1])  #从右往左,读取第一个字符
i
print(name[-4:-1]) #从右往左,读取倒数第四、第三、第二个字符,不包含最后一个
ozh

 字符串的拼接:

字符串的拼接用+来实现,如

name='小志'
message='很高兴认识你'
print(name+message)
小志很高兴认识你

字符串的复用:

字符串的拼接用*来实现,如

name='小志'
print(name*3)
小志小志小志

4、列表类型(List)

 列表好比就是一个容器,可以容纳多个数据,这些数据也可以是不同的数据类型,比如字符串、数字、元组、列表。

lst=[15,0,16,15.0,'xiaozhi','python',[1,2],{'a','b'}]

 生成整数列表

lst=[a for a in range(1,10)]
print(lst)

[1, 2, 3, 4, 5, 6, 7, 8, 9]

生成a-z字母列表

lst1=[i for i in string.ascii_letters[:26]]
print(lst1)

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

列表是python中最常用的数据类型,里面包含的数据用逗号隔开,且数据类型是可变化的。列表常用操作方法有,增 加、删除、修改、查找,还可以对列表进行遍历、排序、反转等。

 首先定义一个列表lst:
lst=[15,0,16,15.0,'xiaozhi','python',[1,2],{'a','b'}]

添加数据:

append():列表结尾追加数据,可以是任何数据类型

lst=[15,0,16,15.0,'xiaozhi','python',[1,2],{'a','b'}]
lst.append('小志')       #在列表末尾追加'小志'
print(lst)
[15, 0, 16, 15.0, 'xiaozhi', 'python', [1, 2], {'b', 'a'}, '小志']

extend():列表结尾追加数据,如果数据是一个列表,则将这个列表的数据逐一添加到列表

lst=[15,0,16,15.0,'xiaozhi','python',[1,2],{'a','b'}]
lst.extend(['x','y','z'])
print(lst)
[15, 0, 16, 15.0, 'xiaozhi', 'python', [1, 2], {'b', 'a'}, 'x', 'y', 'z']

insert():指定位置新增数据

lst=[15,0,16,15.0,'xiaozhi','python',[1,2],{'a','b'}]
lst.insert(1,'小志')      #1是下标,将小志插入到列表下标1的位置
print(lst)
[15, '小志', 0, 16, 15.0, 'xiaozhi', 'python', [1, 2], {'a', 'b'}]

删除数据:

del() : 删除指定数据或全部数据

lst=[15,0,16,15.0,'xiaozhi','python',[1,2],{'a','b'}]
del lst       #将整个列表lst全部删除
print(lst)    #执行打印会报错 

Traceback (most recent call last):
File "C:\Users\Administrator\PycharmProjects\pythonProject1\test.py", line 8, in <module>
print(lst)
NameError: name 'lst' is not defined   #因为列表已经被删除,所以会报找不到lst的错误

lst=[15,0,16,15.0,'xiaozhi','python',[1,2],{'a','b'}]
del lst[2] #指定列表lst下标来删除数据,删除下标为2的数据,也就是列表中的16
print(lst)
[15, 0, 15.0, 'xiaozhi', 'python', [1, 2], {'a', 'b'}]

 pop():删除指定下标的数据,不指定默认删除最后一个

lst=[15,0,16,15.0,'xiaozhi','python']
lst.pop(4)  #指定删除下标4的数据
print(lst)
[15, 0, 16, 15.0, 'python']
lst=[15,0,16,15.0,'xiaozhi','python']
lst.pop() #不指定下标默认删除最后一个
print(lst)
[15, 0, 16, 15.0, 'xiaozhi']

 remove():删除列表中的元素。

a=[1,2,3,4,5,1,2,3]
a.remove(1)  #删除列表中的元素,如果列表中有重复的,只删除前面的一个
print(a)
[2, 3, 4, 5, 1, 2, 3]

clear():清空列表中的所有数据

lst=[15,0,16,15.0,'xiaozhi','python']
lst.clear()
print(lst)
[] 

 修改数据:

列表修改也是通过下标来定位的

a=[1,2,3,4,5,1,2,3]
a[1]=0        #将列表中下标为1的数据替换为0 
print(a)
[1, 0, 3, 4, 5, 1, 2, 3]
a=[1,2,3,4,5,1,2,3]
a[1:4]=[0,0,0] #将列表中下标为1-4(不包含4)的数据替换成0,0,0
print(a)
[1, 0, 0, 0, 5, 1, 2, 3]

查询数据:

遍历列表中的数据:

lst=[15,0,16,15.0,'xiaozhi','python']
for i in lst:
    print(i)

15
0
16
15.0
xiaozhi
python

index():查询数据在列表中的索引(下标)

lst=[15,0,16,15.0,'xiaozhi','python']
print(lst.index('xiaozhi'))  #查询'xiaozhi'在列表中的索引,若有重复元素,只显示第一个元素的索引
4

 判断数据是否存在列表中(True或False)

lst=[15,0,16,15,15.0,'xiaozhi','python']
print('xiaozhi'in lst)
print('小志' in lst)

True
False

 reverse():列表的反转

a=[1,2,3,4,5,1,2,3]
a.reverse()
print(a)
[3, 2, 1, 5, 4, 3, 2, 1]

sort():列表的排序

a=[1,2,3,4,5,1,2,3]
a.sort()          #升序,从小到大
print(a)
[1, 1, 2, 2, 3, 3, 4, 5]
a=[1,2,3,4,5,1,2,3]
a.sort(reverse=True) #降序,从大到小
print(a)
[5, 4, 3, 3, 2, 2, 1, 1]

count():列表中元素个数的统计

a=[1,2,3,4,5,1,2,3]
print(a.count(1))  #打印元素1在列表中的个数
2

5、元组类型(Tuple)

元组和列表类似,两者的区别主要有两点:

1、元组不能对其元素进行更改变动(增加元素、变换元素位置、修改元素、删除元素),而列表允许;

2、元组用()表示,而列表用[]表示。

元组的基本操作包括建立元组、查找和统计元素、合并元组、转换元组和删除元组等。

元组的基本操作:

a=(1,2,3,4)           #定义元组
b=('a','b','c','d')   #定义元组
print(a) 
(1, 2, 3, 4)         
print(b)
('a', 'b', 'c', 'd')
c=a+b               #合并元组
print(c)
(1, 2, 3, 4, 'a', 'b', 'c', 'd')

print(len(c))      #统计元组c中元素的个数
8
print(max(a))     #打印元组中最大值的元素
4
print(sum(a))      #打印元组中所有元素的和
10
print(min(b))     #打印元组中最小值的元素
a
print(type(c))     #打印对象的类型
<class 'tuple'>
lst=[15,0,16,15,15.0,'xiaozhi','python']  #定义一个列表
print(type(lst))   #打印类型
<class 'list'>    
lst2=)    #类型转换,将列表转换为元组
print(type(lst2))
<class 'tuple'>

6、集合类型(Set)

 集合创建:

集合的创建有直接创建和使用关键字创建,直接创建就是用{}里面添加数据进行创建,集合创建后,数据时唯一的(不能同时存在多个相同的数据),如果数据全为数字会按从小到大顺序进行排列,一个集合中能够存在多种数据类型的数据。

关键字创建集合使用set(),当set()创建集合或者往()内添加字符串时,会将字符串拆分为单个字符后创建,且字符时无序的。

s1={1,2,3,4} #创建数字集合
s2={'a','b','c','d'} #创建字符
s3={1,2,3,'abc',('a','b')} #创建不同数据类型的集合
s4=set('12345') #使用set()创建集合
print(s1)
print(s2)
print(s3)
print(s4)

{1, 2, 3, 4}
{'a', 'c', 'b', 'd'}
{1, 2, 3, 'abc', ('a', 'b')}
{'2', '5', '3', '4', '1'}

 

集合添加数据:

add():向集合中添加数据,如果集合中存在需要添加的数据,则不做任何操作,一次只能添加一个数据,并且数据类型不能是列表、集合、字典。

s1={1,2,3,4}
s1.add(5)  
s1.add('abc')
print(s1)

{1, 2, 3, 4, 5, 'abc'}

update():向集合中添加数据,添加的数据是一个序列,可以同时添加多个数据,添加数据的数据类型可以为元组、列表、集合,添加的数据为字符串时会拆分为单个字符然后添加到集合中。

s2={'a','b','c','d'}
s2.update('e','f')  #添加多个数据
print(s2)
s2.update(('f','g')) #添加元组
print(s2)
s2.update(['h','i']) #添加列表
print(s2)

{1, 2, 3, 4, 5, 'abc'}
{'f', 'c', 'b', 'a', 'd', 'e'}
{'f', 'c', 'b', 'g', 'a', 'd', 'e'}
{'f', 'h', 'c', 'b', 'g', 'a', 'i', 'd', 'e'}

集合删除数据:

remove():通过数据来指定集合中需要删除的数据。当集合中存在元组时,不能只删除元组中的某一个数据,需要将元组全部删除。

s1={1,2,3,4,(5,6)}
s1.remove(4)
print(s1)
运行结果:
{1, 2, 3, (5, 6)}

s1={1,2,3,4,(5,6)}
s1.remove(4)
print(s1)
s1.remove((5,6)) #必须删除元组,要不然会报错
print(s1)
结果:

{1, 2, 3, (5, 6)}
{1, 2, 3}

discard():删除集合中指定的数据,如果需要删除的数据不存在不会报错。

s1={1,2,3,4,(5,6)}
s1.discard(1)
print(s1)
s1.discard(5) #因为5在数据中是元组,所以没有被删除掉
print(s1)
运行结果:
{2, 3, 4, (5, 6)}
{2, 3, 4, (5, 6)}

pop():删除集合中排序的第一个数据,因为集合除了数字都是无序的,可能删除值是随机的

s1={'a','b','c','d','e','f'}
s1.pop()
print(s1)
s1.pop()
print(s1)
s1.pop()
print(s1)
执行结果:
{'f', 'c', 'b', 'e', 'a'}
{'c', 'b', 'e', 'a'}
{'b', 'e', 'a'}

clear():清空集合

s1={'a','b','c','d','e','f'}
s1.clear()
print(s1)
执行结果:
set()

 

7、字典类型(Dictionary)

 字典是Python中比较常用的数据结构,字典中每个成员是以“键:值”对的形式存放具有映射关系的数据。

字典的创建:

dict1={'身高':175,'体重':140,'年龄':30}
print(dict1)
执行结果:
{'身高': 175, '体重': 140, '年龄': 30}

通过键访问值:

dict1={'身高':175,'体重':140,'年龄':30}
print(dict1['身高'])
执行结果:
175

往字典添加数据:

dict1={'身高':175,'体重':140,'年龄':30}
dict1['性别']=''
print(dict1)
执行结果:
{'身高': 175, '体重': 140, '年龄': 30, '性别': ''}

将元组、列表或集合变成字典类型并赋值

seq = ('baidu','guge','ali')
a = dict.fromkeys(seq) #将seq元组中的元素转换成字典的形式,key为元组中的元素,value为None
print(a)
执行结果:
{'baidu': None, 'guge': None, 'ali': None}
b = dict.fromkeys(seq, 1) #将seq元组中的元素转为字典的形式,并赋值为1
print(b)
执行结果:
{'baidu': 1, 'guge': 1, 'ali': 1}

清除字典中的元素,得到的是空的字典。返回值None

dict1={'身高':175,'体重':140,'年龄':30}
dict1['性别']=''
dict1.clear()
print(dict1)
执行结果:
{}

删除字典中的某一个元素 pop

dict1={'身高':175,'体重':140,'年龄':30}
dict1.pop('年龄')
print(dict1)
执行结果:
{'身高': 175, '体重': 140}