python-容器、循环
一,pass
例:
a = int(input("请输入年龄:"))
if 20 > a > 18:
print("成年了")
elif a >= 20:
pass
else:
print("111")
二,元组
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) //元组里边的列表的元素可以更改
len()
max() 元组中的最大值
min() 元组中的最小值
3,元组的注意事项
(1)元组的几种表达
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() # 声明一个空白元组,也可以强制转换
(2)只有一个元素时,元素后面一定要带逗号(,)
三,集合
1,集合的特点:集合是无序的,且集合中的元素是唯一的---->可以去重
2,集合的结构:{元素1,元素2,元素3…}
3,集合的声明方式
(1)set()
set_01 = set("12345")
print(set_01)
set_02 = set([1,2,3,4,5])
print(set_02)
set_03 = set((10,20,30,111))
print(set_03)
d = {
"姓名":"zhangsan",
"年龄":18
}
set_04 = set(d)
print(set_04)
(2){ } 元素的数据类型只能是数字、元组、字符串
set_05 = {(1,2,3,4),5,6}
print(set_05)
4,集合的方法
(1)添加元素
add() 向集合中添加元素,且元素只能是数字、字符串、元组
set_01 = {1,2,3,"nanhang"}
set_01.add("jincheng")
print(set_01)
update() 将集合合并,也会去重,且集合的元素的排列是随机排列的
set_01 = {1,2,3,"nanhang"}
set_02 = {4,5,6}
set_01.update(set_02)
print(set_01)
print(set_02)
(2)删除元素
remove() 如果想要删除的元素不存在,则会报错
set_01.remove(4)
print(set_01)
pop()
set_01.pop(1)
print(set_01)
discard() 删除指定元素,如果元素不存在,不做任何操作
set_01.discard("jincheng")
print(set_01)
set_01.discard("jincheng")
(3)交集和并集
# & -->交集
print(set_01 & set_02)
# | -->并集
print(set_01 | set_02)
四,字典
1,特点:以键值对的形式存在,且关键字不可变,不能重复,键可以为任意不可变数据(元组、数字、字符串)
2,创建字典
(1){ }
dict_01 = {
"uname":"zs",
"age":18,
(1,2,3):"zs",
1:18
}
print(type(dict_01))
(2)dict函数
dict_02 = dict((["uname","zs"],["age",18])) # 不推荐
print(type(dict_02))
print(dict_02)
(3)创建空字典
dict_03 = {} # 只写一个大括号,默认创建出来的是空字典
print(type(dict_03))
3,字典的增删改查
dict_01 = {
"姓名":"张三",
"年龄":18
}
(1)增
dict_01["技能"] = "python" # 给字典增加技能为python这一键值对
print(dict_01)
(2)删
del dict_01["姓名"] # 删除字典中姓名这一键
print(dict_01)
(3)改
dict_01["技能"] = "安全渗透" # 将上面的python技能更改为安全渗透技能
print(dict_01)
(4)查
字典名[键名]
4,get函数
用于在字典中获取指定键的值,可以设置默认返回值,在找的键不存在时,会将默认值返回出来
print(dict_01.get("技能"))
print(dict_01.get("姓名")) # 返回None
print(dict_01.get("姓名","nanhang")) # 当键不存在时,可以指定返回值
5,字典的方法
(1)key() : 以列表的形式返回字典中所有的键
dict_01 = {
"uname","zhangsan",
"age",21
}
print(dict_01.keys())
(2)items()
print(dict_01.items())
(3)values() :以列表的形式返回字典中所有的值
print(dict_01.values())
(4)clear() :做字典清空
(5)copy() :拷贝副本
(6)fromkeys() :用来创建一个新字典的,第一个参数用于作为字典的键,第二个参数用于作为字典的值
d1 = dict_01.fromkeys(("姓名","年龄"),("zhangsan",21))
(7)pop()
(8)popitem() :删除最后一项,并以元组的形式将删除的键值对返回
d3 = dict_01.popitem()
print(d3)
print(dict_01)
(9)update()
(10)in not in
五,循环
1,循环:周而复始,谓之循环;循环体的代码尽量不要重复
2,while循环
(1)格式:
while 表达式: (只要表达式的结果是一个布尔值(1或0)即可)
循环体
eg:
index = 1 # 索引定义
while index <= 100: # 索引判断
print("hello word") # 循环体
index += 1
循环:通过条件的不断变化,从而确定循环体是否继续执行
(2)死循环:非0即为真
while True: # True也可以是2、3、4.......
循环体
(3)break 立即结束循环
eg:# 输出0--100
index = 0
while index <= 100:
if index == 50:
break
print(index)
index += 1
# 在python中,break中断循环
(4)continue 中止本次循环,提前开始下一次循环(解决方法:可将index += 1变值语句提前至判断语句前)
index = 0
while index <= 100:
index += 1
if index == 50:
continue
print(index)
print("执行结束")
(5)while…else…循环结构
结构:
while condition:
代码
else:
代码
eg:
# 循环的程序正常结束,才会执行else里面的代码,只针对break
index = 1
while index < 100:
print(index)
index += 1
else:
print("执行结束")
(6)循环嵌套
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 只结束距离自己最近的一层的循环
3,for循环
(1)结构
for 临时变量 in 容器:
代码块
# 迭代容器中的每一个元素
eg:
list = [1,2,3,4]
i = 0
while i < len(list):
print(list[i])
i += 1
set_01 = {1,2,3,"nanhangjingcheng"}
for i in list:
print(i)
for i in set_01:
print(i)
(2)for 既能遍历有序的容器,也能遍历无序的
(3)不止能迭代容器,还可以完成普通循环 -->99乘法表
(4)range(): 生成一系列连续的整数
结构:
range(start,end,step)
range(num):[0,num) # 运行取值是左闭右开的取值
eg:
# 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,用for循环求0-100的和
s = 0
for i in range(0,101):
s += i
print("0-100的和",s)
2,打印侧直角三角形
layer = int(input("请输入打印的层数:"))
for i in range(1,layer+1):
space_nums = layer - i # 打印空格
for j in range(space_nums):
print(" ",end="")
for j in range(i): # 打印*
print("*",end="")
print()
3,用while循环实现1-100的和的计算
index = 1
sum = 0
while index <= 100:
sum += index
index += 1
print("1-100的和为:",sum)
4,打印直角三角形
n = 1
m = int(input("请输入要打印的层数:"))
while n <= m:
j = 1
while j <= n:
print("*",end="")
j += 1
print()
n += 1
作业
1,用循环嵌套打印九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{j}*{i}={i*j}\t",end="")
j += 1
print()
i += 1
2,用for循环打印99乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f"{j}*{i}={i*j}\t",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)
4,打印三角形
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()