首页 > 编程语言 >python基础(变量、数据类型)

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

时间:2023-05-31 21:57:20浏览次数:43  
标签:变量 python s1 数据类型 元组 lst print 列表

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}

 

标签:变量,python,s1,数据类型,元组,lst,print,列表
From: https://www.cnblogs.com/xiaozhi1223/p/17074000.html

相关文章

  • Js 常见数据类型及判断方法及手写深拷贝
    常见值类型:undefined、String、Number、boolean、Symbol.常见 引用类型:Array、Object、function(特殊引用类型,单不用于存储数据,所以 “没有拷贝、复制函数” 这说法)、null(特殊引用类型,指针指向为空地址)判断数据类型的方法:typeof运算符leta;conststring='abc......
  • Redis常用数据类型
    一、Redis键(key)keys*查看当前库所有key(匹配keys*1)existskey 判断某个key是否存在typekey查看key类型delkey 删除keyunlinkkey根据value选择非阻塞删除,仅将keys从keyspace元数据中删除,真正的删除操作会在后续异......
  • python
    pythonnumber类型转换 pythonmath模块、cmath模块python数学模块 python随机数函数 python三角函数 python数字python转义字符 python字符串运算 python字符串格式化符号    ......
  • Less学习(一)less变量
    前言Less语言中变量的使用方式主要有以下几种:普通变量选择器变量属性名变量URL变量参考Less中变量的使用......
  • Python潮流周刊#4:Python 2023 语言峰会
    你好,我是猫哥。这里记录每周值得分享的Python及通用技术内容,本期是特别加更版,聚焦于Python官方2023年语言峰会的系列博客。博客原文:https://pythoncat.top/posts/2023-05-31-weekly4每年在PyConUS开始之前,Python核心开发者、维护者和特邀嘉宾都会聚在一起参加Python......
  • Python连接es笔记四之创建和删除操作
    本文首发于公众号:Hunter后端原文链接:Python连接es笔记四之创建和删除操作这一篇笔记介绍一下索引和数据的创建和删除。其实对于索引来说,如果可以接触到kibana的话,可以很方便的在界面进行操作,这里简单介绍一下如何使用代码来操作索引的创建和删除。索引的创建和删除操作使......
  • Python中的join()函数和split()函数的用法
    题目:CFUltra-FastMathematician 题意:给两个长度相等的0,1字符串,在相同的位置的两个字符不同就输出1,否则输出0.比如:10101000100101就输出:1110001代码:print''.join("10"[i==j]fori,jinzip(raw_input(),raw_input()))join()函数的用法就是把一个list中所有的串按照你定义的分隔......
  • Python基础语法
    Python中查看变量对应的地址用函数id(var)。 注意在Python中与在C语言中有一些不同的地方。比如:a = 10,在Python中是这样的,数值10在内存中开辟一块空间来存放数据10,然后用a去引用这个10,所以这里a相当于一个标签,如果a被重新赋值了,相当于a又指向了另一个地址,比如a = 1000,那么a指......
  • python获取threading多线程的return返回值
    转载:(15条消息)python获取threading多线程的return返回值_pythonthreading返回值_星火燎愿的博客-CSDN博客我们正常使用threading模块创建的线程是无法获取它所执行方法的返回值的;如:w=threading.Thread(target=worker,args=(i,))一、重写线程,获取线程return返回值要想获......
  • python numpy 深拷贝 浅拷贝
    importnumpyasnpimportcopya=np.mat("123;456;789")print(a)b=ab[0,0]=0print(a)print(b)print("-"*10)输出结果[[123][456][789]][[023][456][789]][[023][456][789]]----------可以看到直接赋值时改变b同时......