二、基础数据类型

1.数字

2.字符串

3.元组

4.列表

5.集合

6.字典

 

基础类型(6个):
不可变数据(3个):Number数字、String字符串、Tuple元组、
可变数据(3个):List列表、Set集合、Dictionary字典

 

【标识符】

字母、数字、下划线_组成,第一个字符必须是字母或数字,大小写敏感

 

【运算符】

运算符
1、算数运算符
+ - * / //整除 % **幂
2、比较运算符
> < = >= <= !=
3、赋值运算符
= += -= *= /= %= **= //=
4、位运算符
& |或 ~取反 ^异或 <<左移 >>右移
5、逻辑运算符
and or not
6、成员运算符
in not in
for a in range(2,15)
7、身份运算符
is is not x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
id()函数用于获取对象内存地址
if a is b:
print('a 和 b 有相同的标识')
else:
print('a 和 b 没有相同的标识')

if id(a) is id(b):
print('a 和 b 有相同的标识')
else:
print('a 和 b 没有相同的标识')

 

1.数字

有int、float、bool、complex复数
isinstance(a,int) >>>true
print(type(a)) >>>int
type(A())==A >>>true

isinstance 和 type 的区别:type()不会认为子类是一种父类类型;instance()会认为子类是一种父类类型。
python3中,bool是int的子类,True和False可以和数字想加,True==1,False==0返回结果为True

bool是int的子类,True和False可以和数字相加
一个变量可以通过赋值指向不同类型的对象

+ - * / // %取余 ** 乘方
a,b,c,d=1,2.3,True,4+3j
5/2 >>> 2.5
5//2 >>>2
5%2 >>> 1
2**5 >>> 32

整型、浮点型、复数
数学函数:
import math
print (abs(-10)) #10 绝对值
print (math.fabs(-10.5)) #10.5 以浮点数形式返回数字的绝对值
print (math.ceil(1.3)) #2 向上取整
print (math.floor(1.3)) #1 向下取整
print(math.sqrt(4)) #2.0 平方根

print(max(23,41,10,8.56,-0.5)) #41 取最大值,参数可以为序列
print(min(23,41,10,8.56,-0.5)) #-0.5 取最小值,参数可以为序列
tup1=(23,41,10,8.56,-0.5)
list1=[23,41,10,8.56,-0.5]
set1={23,41,10,8.56,-0.5}
print(min(tup1)) #-0.5
print(min(list1)) #-0.5
print(min(set1)) #-0.5
print(round(15.25,1)) #15.2 四舍五入

 

2.字符串

索引值,从前往后从0开始,从后往前从-1开始
截取字符串:s[ start : stop ],截取字符串中的一部分,遵循左闭右开原则
start表示的是字符串要截取的开始下标,stop 表示终止的字符串结束的前一个位置。
从开头截取s[:stop]
从某一位截取到最后一位s[ start : ]
len(str) 取长度

str='runoob'
str #整个字符串
str[0:-1] #第一个到倒数第二个的所有字符 runoo
str[0] #字符串的第一个字符
str[2:5] #字符串的第三个开始到第五个字符
str[2:] #从第三个开始的所有字符
str*2 #重复两次 strstr
str+'TEST' #字符串连接

使用\转义,前面加r反转义
print('run\noob')
>>>run
oob
print(r'run\noob')
>>>run\noob

 

3.元组

tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 ) 元组从左往右下标以0开始,从右往左以-1开始
tinytuple = (123, 'runoob')

tuple #完整元组
tuple[0] #元组的第一个元素
tuple[1:3] #元组的第二个到第三个元素
tuple[2:] #元组第三个开始到结束的元素
tinytuple*2 #输出元组两遍
tuple+tinytuple #连接元组

tup1=() #空元组
tup2=(10,) #一个元素,需要在元素后加,

元组中只包含一个元素时,需要在元素后面添加逗号 , ,否则括号会被当作运算符使用:
tup1=(50)
print(type(tup1)) #<class 'int'>
tup1=(50,)
print(type(tup1)) #<class 'tuple'>


修改元组:元组不可修改
删除元组:不能删除元组元素,只能删除整个元组
del tup1

元组运算符
tup1=('Google', 'Runoob', 1997, 2000)
print(len(tup1)) #4
元组连接
t1=(1,2,3)
t2=(4,5,6)
t3=t1+t2
print(t3) #(1, 2, 3, 4, 5, 6)
t2+=t1
print(t2) #(4, 5, 6, 1, 2, 3)

3 in t3 元素是否在元组中


元组内置函数:
len(tuple) 取长度
max(tuple) 取最大值
min(tuple) 取最小值
tuple(iterable) 将列表转成元组

 

4.列表

list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']

list #完整列表
list[0] #列表第一个元素
liest[1:3] #列表第二个到第三个元素
list[2:] #列表第三个到结束的所有元素
list[1:] #列表第二个元素到结束的元素,移动步长为1
tinylist*2 #输出两遍列表
list+tinylist #连接列表

list1= ['Google', 'Runoob', 1997, 2000]

>>更新列表值
list1[2]='sam'
list1.append('helly')
print(list1) #['Google', 'Runoob', 'sam', 2000, 'helly']

>>删除列表值
del list1[1]
print(list1) #['Google', 'sam', 2000, 'helly']

list2=[10, 20, 30, 40]
print(len(list1)) #4 len()取长度
list3=list1+list2 #['Google', 'sam', 2000, 'helly', 10, 20, 30, 40] 列表组合
print(list3*3) #[10, 20, 30, 40, 10, 20, 30, 40, 10, 20, 30, 40] 列表重复

if 3 in[1,2,3] #True 元素是否在列表中

>>列表比较
import operator
l1=[1,2]
l2=[2,3]
l3=[2,3]
print(operator.eq(l1,l2)) #False
print(operator.eq(l3,l2)) #True

 


>>列表函数
len(list) 取长度
max(list) 取最大值
min(list) 取最小值
list(seq) 元组转列表

>>列表方法
list.append(obj) 添加
list.count(obj) 统计某个元素出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列的多个值
list.index(obj) 某个元素的下标
list.insert(index,obj) 将对象插入列表
list.pop(index=[-1])
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中的元素
list.clear() 清空列表
list.copy() 复制列表

list2=[10, 20, 30, 40]
list2.sort(reverse=True)
print(list2) #[40, 30, 20, 10]
list2.sort(reverse=False)
print(list2) #[10, 20, 30, 40]

 

5.集合

用{}或()创建,注意创建空集合用(),因为{}是创建空字典
基本功能:进行成员关系测试和删除重复元素
创建格式:
parame = {value01,value02,...}
或者
set(value)

sites= {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}
print(sites) #输出集合,重复元素会被自动去掉

#成员测试
if 'Taobao' in sites:
print('Taobao'在集合中)
else:
print('Taobao'不在集合中)

#set可以进行集合运算
a=set('abracadabra')
b=set('alacazam')

print(a-b) #差集 {'b','r','d'}
print(a|b) #并集 {'a','c','l','z','m','b','r','d'}
print(a&b) #交集 {'a','c'}
print(a^b) #a和b中不同时存在的元素 {'b','r','d','l','z','m'}

无序,且元素不重复

>>添加元素
s.add(x)
s.update(x) x可以是多个
thisset = set(("Google", "Runoob", "Taobao"))
thisset.update({1,3})
print(thisset) #{1,3,'Google','Runoob','Taobao'}

>>移除元素
s.remove( x ) 不存在会发生错误
s.discard( x ) 不存在不会发生错误
s.pop() 随机删除一个
thisset.remove('Taobao')
thisset.discard('Taobao')

>>计算集合元素个数
len(s)

>>清空集合
s.clear()

>>判断元素是否存在集合中
if 'Taobao' in thisset

>>内置方法
add() 为集合添加元素
update() 给集合添加元素
clear() 移除集合中的所有元素
discard() 移除集合中的指定元素,不存在不会发生错误
remove() 移除指定元素,不存在会发生错误
pop() 随机移除元素
copy() 拷贝一个集合
intersection() 返回集合的交集
union() 返回集合的并集

 

6.字典

无序的对象集合,是一种映射类型,键唯一,键不能重复

dict={}
dict['one']='1 - 菜鸟教程'
dict[2]='2 - 菜鸟教程'

tinydict ={'name':'runoob','code':1,'site':'www.runoob.com'}

print(dict['one'])
print(dict[2])
print(tinydict)
print(tinydict.keys()) #输出所有键 dict_keys(['name', 'code', 'site'])
print(tinydict.values()) #输出所有值 dict_values(['runoob', 1, 'www.runoob.com'])


修改字典
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
tinydict['Age']=14 # 更新 Age
tinydict['school']='振华中学'

#删除字典元素
del tinydict['school'] #删除字典元素
tinydict.clear #清空字典
del tinydict #删除字典

#字典内置函数
len(dict) 计算字典元素个数
str(dict) 输出字典
type(dict)

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(str(tinydict)) #{'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(tinydict) #{'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(type(tinydict)) #<class 'dict'>

#内置方法
dict.clear() #删除字典内所有元素
dict.keys() 键集
dict.values() 值集

 

posted @ 2023-10-12 16:03  紫蕈  阅读(25)  评论(0编辑  收藏  举报