目录:
#来源 http://yun.itheima.com/course/542.html
#1.定义变量
#2.使用变量
#3.变量特点
my_name = 'TOM'
print(my_name)
schoolName = 'SZU'
print(schoolName)
num =1 #整型
nump =1.1 #浮点型
numpy = 'hello world' #字符串
yes = True #布尔
c = [10,20,30] #列表 -- list
d = (10,20,30) #元组 -- tuple
e = {10,20,30} #集合 -- set
f = {'name':'TOM','age':18} #字典 -- 键值对 -- dict
print(type(num))
print(type(nump))
print(type(numpy))
print(type(yes))
print(type(c))
print(type(d))
print(type(e))
print(type(f))
# %s 字符串
# %f 浮点数
# %d 有符号的十进制整数
name = 'TOM'
age = 13
print('我的名字是%s,我今年%d岁了'%(name,age))
print(f'我的名字是{name},年纪是{age}') #f输出表达式
#\t制表符 \n换行
#结束符 默认end = "\n"
print('hello',end="...")
print('world')
#输入语法 #所有输入当作字符串str处理
password = input('请输入密码')
print(f'你输入的是{password}')
print(type(password)) #str
print(type(int(password))) #int强制转换
#eval() -- 计算在字符串中的有效Python表达式,并返回一个对象
str2 = '1'
str3 = '1.1'
str4 = '(1000,2000,3000)'
str5 = '[1000,2000,3000]'
print(type(eval(str2))) #输出 int
print(type(eval(str3))) #输出 float
print(type(eval(str4))) #输出 tuple 元组
print(type(eval(str5))) #输出 list 列表
#运算符
# //整除 /除
# **指数 *乘
# 多个变量赋值
num1,float1,str1 = 1,1.0,'1'
print(f'num1\nfloat\nstr1\n')
#复合运算符 #先算右边表达式
c = 10
c += 2 * 3
print(c) # 10 + 6 = 16
#比较运算符 == <= >= !=
#逻辑运算符 and与 or或 not非
x,y,z = 1,2,3
print((x<y) and (x<z)) #True
m,n,o = 1,0,2
print(m and n) #0
print(n or o) #返回第一个非0数字: 2
print('end')
import random #随机数模块
#if语句
if True:
print('执行代码1')
print('执行代码2')
print('我不在if里') #没有缩进,不在上方if块里面
age = int(input('请输入你的年龄:')) #input默认输入str类型
human = int(input('你是人类吗?是请选1,不是选0\n')) #input默认输入str类型
if (age >= 18) and (age < 200):
if human == 1:
print(f'你输入的年龄是{age},已经成年,可以上网') #f表达式
else:
print(f'你不能进')
elif (age < 18) and (age>=0):
if human == 1:
print(f'你输入的年龄是{age},年龄太小,不可上网')
else:
print(f'你不能进')
else:
if human == 1:
print(f'你输入的年龄是{age},是不是输错了')
else:
print(f'你不能进')
print('\n我不属于上方的if')
#猜拳游戏
print('\n猜拳游戏:')
#1.出拳
#玩家
player = int(input('请出拳:0--石头;1--剪刀;2--布:'))
#电脑
computer = int(random.randint(0,2))
print(f'电脑出拳:{computer}')
if (player == 0)and(computer == 1) or (player == 1)and(computer == 2) or (player == 2)and(computer == 0):
print('player win')
elif player == computer:
print('peace')
else :
print('computer win')
#三目运算符
#条件成立表达式 if 条件 else 条件不成立表达式
a = 1
b = 2
c = a if a > b else b
print(c)
aa = 10
bb = 6
cc = aa - bb if aa > bb else bb - aa
print(cc)
#while
i = 0
sum = 0
while i <= 100:
sum += i
i += 1
print(f'1-100和为:{sum}') #1-100累加和为5050
j = 0
result = 0
while (j <=100):
if (j % 2 == 0):
result += j
j += 1
print(f'(方法1)1-100偶数和为:{result}') #1-100偶数和为2550
result2 = 0
k = 0
while (k < 101):
result2 += k
k += 2
print(f'(方法2)1-100偶数和为:{result2}') #1-100偶数和为2550
#break和continue
print('\n吃苹果:')
i = 1
while (i <= 5):
if (i == 3):
print(f'已经吃了{i-1}个苹果,吃饱了,不吃了')
break #跳出循环
print(f'吃了第{i}个苹果')
i += 1
print('\n吃葡萄:')
i = 1
while (i <= 5):
if (i == 3):
print(f'吃到第{i}个葡萄,里面有虫子,吃下一颗')
i += 1
continue #跳出当前循环
print(f'吃到第{i}个葡萄')
i += 1
#while嵌套
print('\nwhile嵌套:')
i = 0
while i < 3:
print('惩罚:')
j = 0
while j < 3:
print('道歉')
j += 1
print('洗碗')
i += 1
print('一套惩罚结束----------------')
#打印三角*
print('\n打印三角行星:')
i = 0
while (i < 5):
j = 0
while (j <= i):
print(f'*',end = ' ')
j += 1
print() #换行
i += 1
#打印九九乘法表
print('\n打印九九乘法表:')
i = 1
while(i <= 9):
j = 1
while(j <= i):
print(f'{j}*{i}={j*i}',end='\t')
j += 1
print()
i += 1
#for
#for 临时变量 in 序列:
print('\nfor循环:')
str1 = 'helloworld'
for i in str1:
if (i == 'w'):
print(',my',end = ' ') #遇到w时,输出',my'
print(i,end = '')
print()
#else
#while...else
print('\nwhile...else:')
i = 0
while (i < 5):
if(i == 2):
print('正常跳出输出:continue')
i += 1
continue
if(i == 4):
print('异常结束输出:break')
break
print('输出:while...else')
i += 1
else:
print('正常结束输出:while...else') #遇到break不输出,遇到continue输出
#for...else
print('\nfor...else:')
for i in 'helloworld':
if(i == 'd'):
print('\n遇到d,异常结束输出:break')
break
if(i == 'w'):
print('\n遇到w,正常跳出输出:continue')
continue
print(i,end='')
else:
print('\t一giao我里giaogiao') #遇到break不输出,遇到continue输出
#单引号' ' 双引号" " 三引号''' '''
a = 'I\'m Tom'
b = "I'm Jack"
c = '''I'm Tony'''
print(f'a:{a},b:{b},c:{c}')
print(type(a))
#输出
print('我是塔姆:%s'%a)
#输入(字符串)
'''
password = input("请输入密码:")
print(f'你输入的密码是:{password}')
print(f'输入的密码数据类型是:{type(password)}')
'''
#下标(索引)
str1 = 'abcdefg'
print(str1[0])
#切片(截取一部分的操作)
str2 = 'hijklmn'
print(str2[1:5:2]) #序列名[开始位置的下标(闭,不写默认0开始):结束位置的下标(开,不写默认到结束):步长(默认1,负数则表示逆序)] #开始:结束都不写表示全选
print(str2[-4:-1]) #klm (-4,-1] 步长顺序 应与 开始到结束方向 一致
#字符串操作方法:查找、修改、判断
print('\n1)查找:')
mystr = "hello my world with my python"
#1.find(子串,开始位置下标,结束位置下标)
print('1.find:',end ='')
print(mystr.find('my',1,11)) #从1到11查找my的第一个下标,不存在则返回-1
#2.index()
print('2.index:',end ='')
print(mystr.index('my',1,11)) #同find,从1到11查找my的第一个下标,不存在则报错
#3.count()
print('3.count:',end ='')
print(mystr.count('my',1,23)) #从1到11计算my出现的个数,不存在则返回0
#4.rfind()
print('4.rfind:',end ='')
print(mystr.rfind('my',1,23)) #从23到1查找my的第一个下标(从右到左),不存在则返回-1
#5.rindex()
print('5.rindex:',end ='')
print(mystr.rindex('my',1,23)) #同rfind,从23到1查找my的第一个下标(从右到左),不存在则报错
print('\n2)修改:')
print(f'原字符串为:{mystr}')
#1.replace(旧子串,新子串,替换个数)
print('1.replace:',end ='')
new_str = mystr.replace('my','我的')
print(new_str,end='\t') #replace返回新的字符串
print(f'#repalce不可修改原字符串:{mystr}') #不会修改原字符串 / 字符串是不可变数据类型
#2.split(分割字符,num)
print('2.split:',end ='')
list1 = mystr.split('my',1) #丢失my字符 #1表示把mystr分割成2(num+1)部分
print(list1)
#3.字符串或子串.join(多字符串组成的序列)
print('3.join:',end ='')
list2 = ['aa','bb','cc']
new_str1 = '...'.join(list2)
print(new_str1) #aa...bb...cc
print(f'\n原字符串为:{mystr}')
#1.capitalize():将字符串第一个字符转换成大写
print('1.capitalize:',end ='')
new_str2 = mystr.capitalize()
print(new_str2)
#2.title():将字符串每个单词首字母转换成大写
print('2.title:',end ='')
new_str2 = mystr.title()
print(new_str2)
#3.upper():将字符串中小写转小大写
print('3.upper:',end ='')
new_str2 = mystr.upper()
print(new_str2)
#4.lower():将字符串中大写转小写
print('4.lower:',end ='')
new_str2 = mystr.lower()
print(new_str2)
str3 = ' hello my world with my python '
print(f'\n原字符串为:{str3}')
#1.lstrip():删除左侧空白
print('1.lstrip:',end ='')
new_str3 = str3.lstrip()
print(new_str3)
#2.rstrip():删除右侧空白
print('2.rstrip:',end ='')
new_str3 = str3.rstrip()
print(new_str3)
#3.strip():删除两侧空白
print('3.strip:',end ='')
new_str3 = str3.strip()
print(new_str3)
str4 = 'python'
print(f'\n原字符串为:{str4}')
#1.ljust(长度,填充字符):左对齐,填充字符补充
print('1.ljust:',end ='')
new_str4 = str4.ljust(10,'.')
print(new_str4)
#2.rjust():右对齐
print('2.rjust:',end ='')
new_str4 = str4.rjust(10,'.')
print(new_str4)
#3.center():中间对齐
print('3.center:',end ='')
new_str4 = str4.center(10,'.')
print(new_str4)
print('\n3)判断:')
#mystr = "hello my world with my python"
#1.字符串序列.starswith(子串,开始位置下标,结束位置下标) #检查字符串是否是以指定子串开头,是则返回True
print(mystr.startswith('hello'),end=' ') #True
print(mystr.startswith('goodbye'),end=' ') #False
print(mystr.startswith('my',6,10),end=' ') #True 第6到10的字符串子串是否以my开头
#2.字符串序列.endswith(子串,开始位置下标,结束位置下标) #检查字符串是否是以指定子串结尾
print(mystr.endswith('python'),end=' ') #True
print(mystr.endswith('on'),end=' ') #True
print(mystr.endswith('java'),end=' ') #False
#mystr = "hello my world with my python"
print()
#1.isalpha():如果 字符串至少有一个字符 并且 所有字符都是字母 则返回True
print(mystr.isalpha(),end=' ') #False 有空格
#2.isdigit(): ...数字...
str5 = '12345'
print(str5.isdigit(),end=' ') #True
print(mystr.isdigit(),end=' ') #False
#3.isalnum(): ...数字或字母或数字字母的组合...
str6 = '7up8down'
print(str6.isalnum(),end=' ') #True
print(str5.isalnum(),end=' ') #True
#4.isspace(): ...空白...
str7 = ' '
print(str7.isspace(),end=' ') #True
print()
#单引号' ' 双引号" " 三引号''' '''
a = 'I\'m Tom'
b = "I'm Jack"
c = '''I'm Tony'''
print(f'a:{a},b:{b},c:{c}')
print(type(a))
#输出
print('我是塔姆:%s'%a)
#输入(字符串)
'''
password = input("请输入密码:")
print(f'你输入的密码是:{password}')
print(f'输入的密码数据类型是:{type(password)}')
'''
#下标(索引)
str1 = 'abcdefg'
print(str1[0])
#切片(截取一部分的操作)
str2 = 'hijklmn'
print(str2[1:5:2]) #序列名[开始位置的下标(闭,不写默认0开始):结束位置的下标(开,不写默认到结束):步长(默认1,负数则表示逆序)] #开始:结束都不写表示全选
print(str2[-4:-1]) #klm (-4,-1] 步长顺序 应与 开始到结束方向 一致
#字符串操作方法:查找、修改、判断
print('\n1)查找:')
mystr = "hello my world with my python"
#1.find(子串,开始位置下标,结束位置下标)
print('1.find:',end ='')
print(mystr.find('my',1,11)) #从1到11查找my的第一个下标,不存在则返回-1
#2.index()
print('2.index:',end ='')
print(mystr.index('my',1,11)) #同find,从1到11查找my的第一个下标,不存在则报错
#3.count()
print('3.count:',end ='')
print(mystr.count('my',1,23)) #从1到11计算my出现的个数,不存在则返回0
#4.rfind()
print('4.rfind:',end ='')
print(mystr.rfind('my',1,23)) #从23到1查找my的第一个下标(从右到左),不存在则返回-1
#5.rindex()
print('5.rindex:',end ='')
print(mystr.rindex('my',1,23)) #同rfind,从23到1查找my的第一个下标(从右到左),不存在则报错
print('\n2)修改:')
print(f'原字符串为:{mystr}')
#1.replace(旧子串,新子串,替换个数)
print('1.replace:',end ='')
new_str = mystr.replace('my','我的')
print(new_str,end='\t') #replace返回新的字符串
print(f'#repalce不可修改原字符串:{mystr}') #不会修改原字符串 / 字符串是不可变数据类型
#2.split(分割字符,num)
print('2.split:',end ='')
list1 = mystr.split('my',1) #丢失my字符 #1表示把mystr分割成2(num+1)部分
print(list1)
#3.字符串或子串.join(多字符串组成的序列)
print('3.join:',end ='')
list2 = ['aa','bb','cc']
new_str1 = '...'.join(list2)
print(new_str1) #aa...bb...cc
print(f'\n原字符串为:{mystr}')
#1.capitalize():将字符串第一个字符转换成大写
print('1.capitalize:',end ='')
new_str2 = mystr.capitalize()
print(new_str2)
#2.title():将字符串每个单词首字母转换成大写
print('2.title:',end ='')
new_str2 = mystr.title()
print(new_str2)
#3.upper():将字符串中小写转小大写
print('3.upper:',end ='')
new_str2 = mystr.upper()
print(new_str2)
#4.lower():将字符串中大写转小写
print('4.lower:',end ='')
new_str2 = mystr.lower()
print(new_str2)
str3 = ' hello my world with my python '
print(f'\n原字符串为:{str3}')
#1.lstrip():删除左侧空白
print('1.lstrip:',end ='')
new_str3 = str3.lstrip()
print(new_str3)
#2.rstrip():删除右侧空白
print('2.rstrip:',end ='')
new_str3 = str3.rstrip()
print(new_str3)
#3.strip():删除两侧空白
print('3.strip:',end ='')
new_str3 = str3.strip()
print(new_str3)
str4 = 'python'
print(f'\n原字符串为:{str4}')
#1.ljust(长度,填充字符):左对齐,填充字符补充
print('1.ljust:',end ='')
new_str4 = str4.ljust(10,'.')
print(new_str4)
#2.rjust():右对齐
print('2.rjust:',end ='')
new_str4 = str4.rjust(10,'.')
print(new_str4)
#3.center():中间对齐
print('3.center:',end ='')
new_str4 = str4.center(10,'.')
print(new_str4)
print('\n3)判断:')
#mystr = "hello my world with my python"
#1.字符串序列.starswith(子串,开始位置下标,结束位置下标) #检查字符串是否是以指定子串开头,是则返回True
print(mystr.startswith('hello'),end=' ') #True
print(mystr.startswith('goodbye'),end=' ') #False
print(mystr.startswith('my',6,10),end=' ') #True 第6到10的字符串子串是否以my开头
#2.字符串序列.endswith(子串,开始位置下标,结束位置下标) #检查字符串是否是以指定子串结尾
print(mystr.endswith('python'),end=' ') #True
print(mystr.endswith('on'),end=' ') #True
print(mystr.endswith('java'),end=' ') #False
#mystr = "hello my world with my python"
print()
#1.isalpha():如果 字符串至少有一个字符 并且 所有字符都是字母 则返回True
print(mystr.isalpha(),end=' ') #False 有空格
#2.isdigit(): ...数字...
str5 = '12345'
print(str5.isdigit(),end=' ') #True
print(mystr.isdigit(),end=' ') #False
#3.isalnum(): ...数字或字母或数字字母的组合...
str6 = '7up8down'
print(str6.isalnum(),end=' ') #True
print(str5.isalnum(),end=' ') #True
#4.isspace(): ...空白...
str7 = ' '
print(str7.isspace(),end=' ') #True
print()
#元组 -- ( )存储的数据不能被修改,而列表 -- [ ]可以
tuple1 = (10,20,30)
print(tuple1)
print(type(tuple1))
#1)定义元组
print('\n1)定义元组:')
t1 = (10,) #tuple
t2 = (10) #int
t3 = ('aaa') #str
print(f't1的数据类型为:{type(t1)},t2的数据类型为:{type(t2)},t3的数据类型为:{type(t3)}')
#2)元组的常见操作:不可修改,可查找
tuple2 = ('aa','bb','cc','dd','aa')
print('\n2)元组查找操作:')
#1.下标
print('1.下标:',end='')
print(tuple2[0]) #aa
#2.index()返回数据对应的下标
print('2.index:',end='')
print(tuple2.index('bb')) #1
#print(tuple2.index('bbb')) #不存在则报错
#3.count()统计某个数据在当前元组出现的次数
print('3.count:',end='')
print(tuple2.count('aa')) #2
#4.len()统计元组中数据的个数
print('4.len:',end='')
print(len(tuple2)) #5
#3)元组数据的修改操作
print('\n3)元组数据的修改操作:')
tuple3 = ('aa','bb',['cc','dd'])
print(f'原元组为:{tuple3}')
print(f'元组中的列表数据:{tuple3[2]},列表中的数据:{tuple3[2][0]}')
tuple3[2][0] = 'ee'
print(f'修改后的元组:{tuple3}')
#字典 -- { } 键值对 key - value
#1.有数据字典
dict1 = {'name':'Tom','age':'20','sex':'male' }
print(f'原字典序列为:{dict1}')
#2.空字典
dict2 = {}
print(type(dict2))
dict3 = dict() #函数
print(type(dict3))
#1)增/改:
print('\n1)增/改:')
#字典序列[key] = value
print('字典序列[key]=value:',end='')
dict1['height'] = '180cm' #不存在key则增加
dict1['name'] = 'Jack' #存在key则修改
print(dict1)
#2)删:
print(f'\n2)删:')
#1.del
del dict1['height'] #前提是key存在
print('1.del:',end='')
print(dict1)
#2.clear
dict1.clear()
print('2.clear:',end='')
print(dict1)
dict2 = {'name':'Tom','age':'20','sex':'male' }
#3)查:
print(f'\n3)查:')
#1.key值查找
print('1.按key值查找:',end='') #前提是key存在
print(dict2['name'])
#2.字典序列.get(key,默认值)
print('2.get:',end='')
print(dict2.get('name'),end=' , ')
print(dict2.get('names'),end=' , ') #不存在默认返回None
print(dict2.get('names',"can't find")) #不存在返回can't find
#3.keys() #查找字典中所有的key,返回可迭代对象
print('3.keys:',end='')
print(dict2.keys())
#4.values() #查找字典中所有的value,返回可迭代对象
print('4.values:',end='')
print(dict2.values())
#5.items() #查找字典中所有的key - value,返回可迭代对象,里面的数据是 元组 ,元组数据1为key,数据2为value
print('5.items:',end='')
print(dict2.items())
#dict2 = {'name':'Tom','age':'20','sex':'female' }
#3)遍历:
print(f'\n4)遍历:')
#1.遍历字典的key
print(f'1.遍历key:')
for key in dict2.keys():
print(key)
#2.遍历字典的value
print(f'2.遍历value:')
for value in dict2.values():
print(value)
#3.遍历字典的key-value
print(f'3.遍历key-value:')
for item in dict2.items():
print(item)
#4.拆包字典的key-value
print(f'4.拆包key-value:')
for key,value in dict2.items():
print(f'{key} = {value}')
#集合 -- { } 或 set()
#1.有数据集合
s1 = {10,20,30,40,50}
print(type(s1))
print(s1) #无序输出
s2 = {10,20,30,40,30,40}
print(s2) #无序不重复输出
s3 = set('abcdefg')
print(s3)
#2.空集合
s4 = set() #空集合 set
print(s4,end=',')
print(type(s4))
s5 = { }
print(s5,end=',')
print(type(s5)) #空字典 dict
set1 = {10,20}
print(f'原集合为:{set1}')
#1)增加数据:
print('\n1)增加数据:')
#1.add()
print('1.add:',end='') #追加单一数据,如果追加重复数据不显示
set1.add(30)
print(set1)
#2.update()
print('2.update:',end='') #追加序列数据,不可追加单一数据
set1.update([10,20,30,40,50])
print(set1)
#2)删除数据:
print('\n2)删除数据:')
#1.remove()
print('1.remove:',end='')
set1.remove(50)
#set1.remove(100) #remove移除指定数据,移除不存在的数据会报错
print(set1)
#2.discard()
print('2.discard:',end='')
set1.discard(40)
set1.discard(100) #remove移除指定数据,移除不存在的数据不会报错
print(set1)
#3.pop()
print('3.pop:',end='')
pop_num = set1.pop() #随机删除一个数据 并返回该数据
print(f'被随机删除的数据是:{pop_num}')
#3)查找数据:
print('\n3)查找数据:')
#1.in
print(10 in set1)
#2.not in
print(10 not in set1)
#1)运算符
print('1)运算符:')
str1,str2 = 'aa','bb'
list1,list2 = [1,2],[10,20]
t1,t2 = (1,2),(10,20)
dict1,dict2 = {'name':'Tom'},{'age':'20'}
#1.合并+:字符串、列表、元组
print('1.合并+:')
print(str1 + str2)
print(list1 + list2)
print(t1 + t2)
#print(dict1 + dict2) #不支持字典
#2.复制*:字符串、列表、元组
print('2.复制*:')
print(str1 * 3)
print(list1 * 3)
print(t1 * 3)
#print(dict1 * 3) #不支持字典
#3.元素是否存在in:字符串、列表、元组、字典
print('3.元素是否存在in:')
print('a' in str1,end=',') #T
print(1 in list1,end=',') #T
print(1 in t1,end=',') #T
print('name' in dict1,end=',') #T
print('Tom' in dict1,end=',') #False
print('name' in dict1.keys(),end=',') #T
print('Tom' in dict1.values()) #T
#4.元素是否不存在not in:字符串、列表、元组、字典
print('4.元素是否不存在not in:')
print('a' not in str1,end=',')
print(1 not in list1,end=',')
print(1 not in t1,end=',')
print('name' not in dict1,end=',')
print('Tom' not in dict1,end=',')
print('name' not in dict1.keys(),end=',')
print('Tom' not in dict1.values())
#2)公共方法
print('\n2)公共方法:')
#1.len()计算容器中元素个数
print('1.len:',end='')
print(len(str1),len(list1),len(t1),len(dict1))
#2.del()删除: del 目标 或 del(目标)
print('2.del:',end='')
del str1
#del(str1)
del list1[0] #列表
print(list1,end=',')
del dict1['name'] #字典
print(dict1)
#3.max()返回容器中元素最大值
print('3.max:',end='')
print(max(str2),end=',')
print(max(list2))
#4.min()返回容器中元素最小值
print('4.min:',end='')
print(min(str2),end=',')
print(min(list2))
#5.range(start,end,step)生成从start到end的数字,步长为step,供for循环使用
print('5.range:')
#1 2 3 4 5 6 7 8 9
for i in range(1,10,2):
print(i,end=' ')
print()
#1 3 5 7 9
for i in range(1,10): #默认步长为1
print(i,end=' ')
print()
#0 1 2 3 4 5 6 7 8 9
for i in range(10): #默认从0开始
print(i,end=' ')
print()
#6.enumerate(可遍历对象,start=0)函数用于将一个可遍历的数据对象(列表,元组或字符串)组合为一个索引序列(元组),同时列出数据和数据下标,一般用在for循环当中
print('6.enumerate:',end='')
list3 = ['a','b','c','d','e','f','g']
for i in enumerate(list3,start=1):
print(i,end=',')
print()
#3)容器类型转换
print('\n3)容器类型转换:')
new_list = [10,20,30,20,40,50]
new_set = {100,200,300,200,400,500}
new_tuple = ('a','b','c','d','e')
print(f'新列表为:{new_list}\n新集合为:{new_set}\n新元组为:{new_tuple}')
#1.tuple()
print('1.tuple:')
print(tuple(new_list))
print(tuple(new_set))
#2.list()
print('2.list:')
print(list(new_set))
print(list(new_tuple))
#3.set()
print('3.set:')
print(set(new_list))
print(set(new_tuple))
#推导式 -- 生成式 (用一个表达式创建一个有规律的列表或控制一个有规律列表)
#推导式 -- 返回值 for循环
#1)列表推导式
print('1)列表推导式:')
#准备空列表
list1,list2,list3,list4,list5,list6,list7 = [],[],[],[],[],[],[]
#1.while循环
print('1.while循环:',end='')
i = 0
while i < 10:
list1.append(i)
i += 1
print(list1)
#2.for循环
print('2.for循环:',end='')
for i in range(10):
list2.append(i)
print(list2)
#3.列表推导式
print('3.列表推导式:',end='')
list3 = [i for i in range(10)] #[返回值 for循环]
print(list3)
#4.带if列表推导式
print('4.带if列表推导式:')
list4 = [i for i in range(1,10,2)]
list5 = [i for i in range(10) if i%2 == 0]
print(f'①奇数:{list4}\n②偶数:{list5}')
#5.多个for列表推导式
print('5.多个for列表推导式:')
#①
new_list = [(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
print(f'①新列表为:{new_list}')
#②
for i in range(1,3):
for j in range(3):
list6.append((i,j))
print(f'②多个for循环:{list6}')
#③
list7 = [(i,j) for i in range(1,3) for j in range(3)]
print(f'③多个for列表推导式:{list7}')
#2)字典推导式
print('\n2)字典推导式:')
#1.创建字典
print('1.创建字典:',end='')
dict1 = {i:i**2 for i in range(1,5)} #输出:key(数据):value(数据的平方)
print(dict1)
#2.快速合并 列表 为 字典
print('2.快速合并列表为字典:',end='')
list_a = ['name','age','sex']
list_b = ['Tom',20,'male']
dict2 = {list_a[i]:list_b[i] for i in range(min(len(list_a),len(list_b)))} #range为(key,value)中较小值
print(dict2)
#3.提取字典中目标数据
print('3.提取字典中目标数据:',end='')
new_dict = {'A':10,'B':20,'C':30,'D':40,'E':50}
dict3 = {key:value for key,value in new_dict.items() if value >= 30} #提取new_dict中value大于或等于30的(key:value)
print(dict3)
#3)集合推导式
print('\n3)集合推导式:')
list_c = [1,1,2]
print(f'原列表为:{list_c}')
set1 = {i**2 for i in list_c} #输出:list_c中数据的平方,有去重功能
print(f'(平方、去重)集合为:{set1}')