# Python有六个标准的数据类型:
# Numbers(数字) int    不可变类型 
# String(字符串) str 字符串一旦创建,不可修改,一旦修改或者拼接,都会造成重新生成字符串
# List(列表)    list 逗号分开,可以是数字、字符串、列表、布尔值,可嵌套任何类型,有序元素可被修改
# Tuple(元组) tuple 元素不可被修改,不能被增加或则删除,元组可迭代对象,是有序的
# Dictionary(字典) dict 字典是可变容器模型,可存储任意类型对象,无序的,字典的value可以是任何值
# Bool (布尔值) bool 1为真True,0为假False

print(5345.345,'我是浮点') #数字,直接等于
print('hello world','我是字符串') #字符串,单引号双引号
tu=(1432,'alex', (11, 22), [(33, 44)], True,'我是元组') #元祖,圆括号
print(tu,type(tu))
li=[11,'fjal','我是列表'] #列表,中括号
print(li,type(li))
dic={'dfs1':'wief1','fwji2':'fjadsfj2','我是':'字典'} #字典,大括号
print(dic,type(dic))

# ============================Python数据类型之间的转换===================
a='123'
a1='fas123'
print(a,type(a))
b=int(a) #字符串转整型必须是数字
print(b,type(b))

age =5678
b=str(age) #数字转字符串
print(b,type(b))

li = [11, 22, 33, 'fajkf']
r = str(li) #列表转字符串
print(r,type(r))

s = 'ewifjw5'
v = tuple(s) # 字符串转换成元组
print(v)

li = ['fdoe', 2135]
v2 = tuple(li) # 列表转换成元组
print(v2)

tu = (123, 980, 'odje')
v3 = list(tu) # 元组转出列表
print(v3)

# ===========================索引,下标获取数据类型中的某一个值==========
test = 'alex'
v = test[2] # 字符串索引,下标获取字符串中的某一个字符
print(v, -1)

li = [1, 2, 6, 'adfadsf', 'fadfe', ['fda', 5, ["wdf", 4], '中国人']]
print(li[5]) # 列表索引取值

tu = (111, 'alex', (11, 22), [(33, 44)], True, 33, 44,)
v=tu[3][0][0] # 元组索引
print(v)

info = {'k1': 18, 'k2': True, 'k3': [11, 22, 33, {'kk1': 'vv1', 'kk2:': 'vv2', 'kk3': (11, 22)}], 'k4': (55, 66, 77, 88)}
print(info)
v = info['k1']
print(v)
v2 = info["k3"][3]['kk3'][0] # 字典索引的方式找到指定的元素,但是无法通过切片找到因为是无序的
print(v2, -7)
#======================根据值获取当前值索引位置(左边优先)==============
li = [11, 22, 33, 22, 44]
v=li.index(22) #根据列表值获取当前值索引位置(左边优先)
print(v)

# ==============================切片===================================
test = 'alexsasdf'
v = test[0:3] # 0=<v<3 # 字符串切片
print(v)

li = [1, 2, 6, 'adfadsf', 'fadfe', ['fda', 5, ["wdf", 4], '中国人']]
print(li[3:6]) # 列表切片

tu = (111, 'alex', (11, 22), [(33, 44)], True, 33, 44,)
v = tu[0:2] # 元组切片
print(v)

# ==============================for循环===================================
test = '我是中国人你是'
for zfc in test: #字符串for循环
print(zfc)

li = [1, 2, 6, 'adfadsf', 'fadfe', ['fda', 5, ["wdf", 4], '中国人']]
for item in li: #列表for循环
print(item)

tu = (111, 'alex', (11, 22), [(33, 44)], True, 33, 44,)
for item in tu: # 元组可以被for循环,元组可迭代对象,是有序的
print(item)

info = {'k1': 18, 'k2': True, 'k3': [11, 22, 33, {'kk1': 'vv1', 'kk2:': 'vv2', 'kk3': (11, 22)}], 'k4': (55, 66, 77, 88)}
for item in info:
print(item) # for循环

for item in info.keys():
print(item) # for循环得到key

for item in info.values():
print(item) # for循环得到value

for item in info.keys():
print(item, info[item]) # for循环得到key,打印value

for k, v in info.items():
print(k, v) # for循环得到key,打印value


# ==============================元素修改===================================
li = [1, 2, 6, 'adfadsf', 'fadfe', ['fda', 5, ["wdf", 4], '中国人']]
li[1] = 150 #列表元素修改
li[2] = [11, 22, 33]
li[1:3] = [180, 60]
print(li, -2)

tu = (111, 'alex', (11, 22), [(33, 44)], True, 33, 44,)
tu[3][0]=567 #元组的一级元素不可修改/删除/增加,但是里面二级列表的元素可以修改
print(tu)

dic = {
'k1': "v1",
'k2': "v2"
}
dic.update({'k1':'11111','k3':456}) #字典修改更新
print(dic)

dic = {
'k1': "v1",
'k2': "v2"
}
dic.update(k1=123,k3=456,k5='ewrwke') #字典修改更新
print(dic)

# ===============================元素增加==================================
li = [11, 22, 33, 44]
li.append(5) # 直接修改
li.append('fdwo')
li.append([123, 454]) #中括号整体追加在列表的最后面
print(li)

li = [11, 22, 33, 22, 44]
li.extend([6565,"好厉害"]) #延伸,扩展[ɪkˈstend],循环每个元素都加进去
print(li)

li = [11, 22, 33, 22, 44]
li.extend('好礼物')
print(li)

li=['adfaf','fwifawf']
li.extend((11,22,33,))
print(li)

dic = {
'k1': "v1",
'k2': "v2"
}
v=dic.setdefault('k1111',123) #设置值,如果不存在,设置,获取当前key对应的值
print(dic,v)
#============================在指定位置插入元素=============================
li = [11, 22, 33, 22, 44]
li.insert(0,99) #在指定位置插入元素
print(li)

#============================元素排序======================================
li = [11, 22, 33, 22, 44]
li.reverse() # [rɪˈvɜːrs]翻转,颠倒
print(li)

li = [11, 22, 33, 22, 44]
li.sort() #[sɔːrt]排序,从小到大
print(li)

li = [11, 22, 33, 22, 44]
li.sort(reverse=True) #排序,从大到小
print(li)
# ===============================元素删除==================================
li = [1, 2, 6, 'adfadsf', 'fadfe', ['fda', 5, ["wdf", 4], '中国人']]
del li[1]
del li[2:5] #列表元素删除
print(li, -4)

li = [11, 22, 33, 22, 44]
v=li.pop() #默认删除最后一个,获取被删除的值
print(li)

li = [11, 22, 33, 22, 44]
v=li.pop(1) #删除指定索引
print(li)

li = [11, 22, 33, 22, 44]
v=li.remove(22) #删除列表中的指定值,左边优先
print(li)

info = {'k1': 18, 'k2': True, 'k3': [11, 22, 33, {'kk1': 'vv1', 'kk2:': 'vv2', 'kk3': (11, 22)}], 'k4': (55, 66, 77, 88)}
del info['k3'] # 字典支持del删除,也可以del info["k3"][3]['kk3'][0]
print(info)

dic = {
'k1': "v1",
'k2': "v2"
}
v=dic.pop('k1') #字典删除
print(v)

# ===============================元素清空==================================
li = [11, 22, 33, 44]
li.clear() # 清空列表
print(li)
# ===============================元素分割==================================
s = 'fkadslfkadsfwldfl'
new_li = list(s) # 字符串分割,内部for循环
print(new_li)

# ===============================元素拼接==================================
li = ['123', 'alesdf']
v = ''.join(li) # 列表使用join方法的前提是元素只有字符串
print(v)

tu = ('fdsfq', 'odje')
v='_'.join(tu) #元组如果有数字则不行,得自己写for循环
print(v)
# ===============================获取元素数量==============================
test = 'alexsasdf'
v =len(test) # len获取当前字符串中由几个字符组成
print(v)

li = [11, 22, 33, 44, 55, 'asdfg'] # 获取列表的元素数量
v4 = len(li)
print(v4, -6)

tu = (11, 22, 33, 44, 55, 'asdfg') # 获取元组的元素数量
v4 = len(tu)
print(v4)

# ===============================计算元素出现的次数===========================
li = [11, 22, 33, 22, 44]
v = li.count(22) # 计算元素出现的次数
print(v)

tu=(11,22,33,44) #获取指定元素在元组中出现的次数
tu.count(22)
print(tu)
v=tu.index(22)
print(v)

#======================整型的独有属性===================================
age=4
r=age.bit_length()
# 1 1
# 2 10
# 3 11
# 4 100
# 5 101 当前数字的二进制,前面的0去掉至少用几位来表示
print(r)

num="0011"
v=int(num,base=16) #将字符串转换为整型,16进制,"0011" 在16进制中等于 (0 * 16^3) + (0 * 16^2) + (1 * 16^1) + (1 * 16^0),也就是 0 + 0 + 16 + 1 = 17。所以 1 * 16^1 就等于 16^1,即16的1次方,结果自然是16。
print(v) #默认是10进制,base是改为16进制

#字符串的独有属性:

######重点必须要会的######
#一、数字
# int(...)
#二、字符串
#replace/find/join/strip/startswith/split/upper/lower/format
# keys values items get update
#三、列表
#append/exted/insert
#索引、切片、循环
#四、元组
#索引、切片、循环
#五、字典
#get/update/keys/values/items
#for ,索引
#六、布尔值
#bool(...)
#None "" () [] {} 为假False
posted on 2024-08-04 16:38  柳志军  阅读(12)  评论(0编辑  收藏  举报