# 多元赋值:
# x,y,z 和 1,2,‘String'是两个元组,只不过元组的 () 被省略掉了
x, y ,z = 1, 2, 'String'
print(x, y, z)
(x, y ,z) = (3, 4, 'String')
print(x,y,z)
# 一般用在交换变量值
#交换变量值常规思路
x =10,
y =20
z =30
x ,y, z = y,z,x
print(x,y,z)
#使用多元赋值直接交换
x,y = y,x
print(x,y)
# 不能使用一个数值型
# x,y,z = 10
# 多元赋值的时候,元素个数要对应,不能多也不能
x,y,z = 'aaa','bbb','ccc'
print(x, y ,z)
################## 如果后面值是字符串,会自动转换成元组,字符串的长度需要和前面变量的个数一样
x,y,z = 'Str'
print(x,y,z)
# 等效于上面直接使用字符串
str = 'str'
tup = tuple(str)
print(tup)
x,y,z = tup
print(x,y,z)
##########################################使用字典
x,y,z = {'a':'aa','b':'bb','c':'cc'}
print('使用字典直接赋值',x,y,z)
# 等效于上面直接使用字典赋值
dict = {'a':'aa','b':'bb','c':'cc'}
tup = tuple(dict)
print('将字典转换之后的元组:',tup)
x,y,z = tup
print('使用字典转换后赋值:',x,y,z)
########################################使用 集合list
x,y,z = [1,2,3]
print('使用集合直接赋值:',x,y,z)
list = [1,2,3]
tup = tuple(list)
print('list转换后的元组:',tup)
x,y,z = tup
print('使用list转换之后赋值:',x,y,z)
# 多重赋值
#类似深度复制,a, b, c 是同一个对象,内存地址一样
a = b = c = 10
print(id(a),id(b),id(c))
print(a is b, b is c, a is c)
# 运算符
# + - * / % ** //
x = 5
y = 3
a = 4
b = 2
c = 2.4
print(x + y)
print(x - y)
print(x * y)
# 如果是除法,返回带小数点的浮点数
print(x / y)
# 取余数,比如 20 % 3 余数就是2,如果对 1取余结果为0,表示是整数
print(x % y)
print(c%1)
# 次方,表示x 的 y次数
print(x ** y)
# x / y 以后结果向下取整,也就是如果有小数,直接去掉小数点后面
print(x // y)
# 所有 a = a + b 等效于 a += b
# 上面的 + 可以换成 -、*、\、%、**、
a = 4
b = 2
a = a + b
print('======',a)
a = 4
a += b
print('======',a)
# 下面两种次方 等效
a = a**b
a**=b
print(a)
# 字符串的判断
str1 = '123'
str2 = 'Abc'
str3 = '123Abc'
#字符串判断是否全部是数字 isdigit,如果全部为数字返回True,否则返回False
print(str1.isdigit())
print(str2.isdigit())
print(str3.isdigit())
# 字符串判断是否全部是字符串,issalpha(),如果全是是字符串返回True,否则返回False
print(str1.isalpha())
print(str2.isalpha())
print(str3.isalpha())
# 如果判断是字符串和数字的组合,两者并集取反
print(not str1.isdigit() and not str1.isalpha())
print(not str2.isdigit() and not str2.isalpha())
print(not str3.isdigit() and not str3.isalpha())
#判断集合元素类型练习
列表 li=[1,’2’,’ab’,3,’as21’,4,’5b’,’6’,’568’,’10q’]将所有数字类型的元素,保存在字典第一 个 key中,将所有全部由数字组成的字符串类型的元素保存在字典的第二个 key中,剩 下的所有保存在字典的第三个 key中。 如 dic={key1:数字类型的值;key2:全部由数字组成的字符串元素;key3:剩下的其他元素}
li=[1,'2','ab',3,'as21',4,'5b','6','568','10q']
list1 =[] # 全是数字集合
list2 =[] # 字符串集合
list3 =[] #字符串和数字混合
for x in li:
try:
x.isdigit()
except AttributeError:
list1.append(x)
li.remove(x)
li2 = li.copy()
print('=====',li2)
for x in range(len(li)):
try:
if li[x].isdigit():
list2.append(li2[x])
else:
list3.append(li2[x])
except AttributeError:
pass
print(list1, list2, list3)
dic={'key1':list1 ,'key2':list2,'key3':list3}
print(dic)