容器(列表、元组、集合、字典)
一、元组
1.元组结构
(元素1,元素2,元素3…)
元组的元素数据类型可以不同,但元组的元素不能更改。
tuple_1 = ("hello",1,2,-20,9,8,[4,5,6])
print(type(tuple_1))
2.元组切片
tuple_1 = ("hello",1,2,-20,9,8,[4,5,6])
print(tuple_1[1:4])
tuple_1[-1][0] = "nanhangjingcheng"
print(tuple_1) //元组里边的列表的元素可以更改
3.元组的表达
t = (1,2,3)
print(type(t))
t1 = 1,2,3
print(type(t1))
t2 = (2)
print(type(t2))
t3 = (2,)
print(type(t3))
t4 = tuple() # 声明一个空白元组,也可以强制转换
只有一个元素时,元素后面一定要带逗号(,)
二、集合
集合:无序的,集合中的元素是唯一的------->去重
1、set()函数
set_01 = set("12345")
print(set_01)
set_02 = set([1,2,3,4,1,3,2])
print(set_02)
set_03 = set((10,20,30,1,1,1))
print(set_03)
set_04 = set(d)
print(set_04)
2、{} 元素数据类型只能是数字、字符串、元组
set_05 = {(1,2,3,4),1,1}
print(set_05)
3、集合的方法
set_01 = {1,2,3,“nanhang”}
添加add()
set_01.add("jincheng")
print(set_01)
remove()删除 不存在,报错
set_01.remove(4)
print(set_01)
set_01.remove(4)
pop()删除最后一位元素
set_01.pop()
print(set_01)
discard()移除指定的元素 不存在,不做任何操作
set_01.discard("jincheng")
print(set_01)
set_01.discard("jincheng")
交集和并集 & |
print(set_01)
print(set_02)
print(set_01 & set_02)
print(set_01 | set_02)
三、字典
1,特点:以键值对的形式存在,且关键字不可变,不能重复,键可以为任意不可变数据(元组、数字、字符串)
2,创建字典
{}
dict_01 = {
"uname":"zs",
"age":18,
(1,2,3):"zs",
1:18
}
print(type(dict_01))
dict函数
dict_02 = dict((["uname","zhangsan"],["age",18]))
print(dict_02)
创建空字典
dict_03 = {} # 只写一个大括号,默认创建出来的是空字典
print(type(dict_03))
3、字典的办法
dict_01 ={
"姓名": "张三",
"年龄":18
}
增
dict_01["技能"] = "python"
print(dict_01)
删
del dict_01["姓名"]
print(dict_01)
改
dict_01["技能"] = "安全渗透"
print(dict_01)
查
字典名[键名]
get函数:用于在字典中获取指定件的值,可以设置默认返回值,在找的键不存在时就会将默认值返回出来
print(dict_01.get("技能"))
print(dict_01.get("姓名","nanhang"))
key():以列表的形式返回字典中的所有的键
dict_01 = {
"uname":"zhangsan",
"age":21
}
print(dict_01.keys())
items():以键值对的形式输出
print(dict_01.items())
values():以列表的形式返回字典中所有的值
print(dict_01.values())
clear():做字典清空
copy():拷贝副本
fromkeys():创建一个新字典,第一个参数用于作为字典的键,第二个参数用于作为字典的值
d1 = dict_01.fromkeys("姓名","年龄"),("zhangsan",21)
print(d1)
pop()
popitem(): 删除最后一项,并以元组的形式将删除的键值对返回
d3 = dict_01.popitem()
print(d3)
print(dict_01)
强制转化int\float\string\set\list\dict
四、循环
循环: while for 周而复始,谓之循环
while:通过条件的不断变化,从而确定循环体是否继续执行
while 表达式:
循环体
index = 1 #索引定义
while index <=100:
print("hello,word") #循环体
index += 1
break 立即结束循环
index = 0
while index <= 100:
if index == 50:
break
print(index)
index += 1
continue 终止本次循环,提前开始下次循环
index =0
while index <= 100:
index += 1
if index == 50:
continue
print(index)
while…else…循环结构
while condition:
代码
else:
代码
# 循环的程序正常结束,才会执行else里边的代码,只针对break
index = 1
while index < 100:
print(index)
index += 1
if index == 50:
break
else:
print("执行结束")
循环嵌套
i = 1
while i <= 7:
print(f"第{i}天")
j = 1
while j <= 10:
print(f"送的第{j}朵花")
if j == 2:
break
j += 1
i += 1
# break 只结束距离自己最近的一层的循环
#内循环不影响外循环
for循环
for 临时变量 in 容器:
代码块
迭代容器中每一个元素
list = [1,2,3,4]
i = 0
while i < len(list):
print(list[i])
i += 1
set_01 = {1,2,3,"nanhangjincheng"}
for i in list:
print(i)
for i in set_01:
print(i)
for既能便利有序的容器,也能便利无序的
不止能迭代容器,还能完成普通循环 99乘法表
range()生成一系列连续的整数
结构:
range(start,end,step)
range(num):[0,num) # 运行取值是左闭右开的取值
for i in range(9):
print(i)
for i in range(10,21):
print(i)
for i in range(0,101,2):
print(i)
for i in range(100,0,-2):
print(i)
作业
1、用循环嵌套打印九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{j}*{i}={i*j}\t",end="")
j += 1
print()
i += 1
用for循环打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f"{j}*{i}={i*j}\t",end="")
print()
2、用for打印三角形
n = 1
m = int(input("请输入要打印的层数:"))
for i in range(m):
print("*" * n)
n += 2
n = int(input("请输入打印的层数:"))
for i in range(1,n+1):
m = n - i # 打印空格
for j in range(m):
print(" ",end="")
for j in range(i): # 打印*
print("*",end="")
for k in range(i-1):
print("*",end="")
print()
3、猜数字
import random
random = random.randint(1,100) # 获取数字
flag = True
while flag:
n = int(input("请猜一猜数字吧:"))
if n == random:
print("猜对了")
flag = False
elif n > random:
print("不对哦,猜大了")
else:
print("不对哦,猜小了")
print(random)