还是老规矩(详情见上篇)
我们来深入了解一下上一期的字典
我们先从字典底层原理看起
我们再来看看我们平时讲一个键值对放进字典在底层是怎么实现的
那我们根据键在字典中查找,底层做了什么呢?
字典用法总结:
好啦,那我们从这里继续了解Python的一些基础知识
集合
实例:
# 集合
a = ['a', 'b', 'c', 'b', 'e', 'f']
b = set(a) # 通过set可以使它变成一个集合
print(b)
# remove() 删除指定元素
b.remove("c")
print(a)
# clear() 清空整个集合
b.clear()
print(a)
# 集合相关操作 并集(把两个集合(数据)合起来,不包括重复的),交集(取出两个集合中相同的元素),差集(取出第一个集合中元素在另一个集合中不相同的)
a = {1, 3, "sxt"}
b = {'he', 'it', 'sxt'}
# 并集 两种方式 返回结果一致
print(a | b) # 返回结果: {1, 3, 'he', 'sxt', 'it'}
print(a.union(b)) # 返回结果: {1, 3, 'he', 'sxt', 'it'}
# # 交集 两种方式 返回结果一致
print(a & b) # 返回结果:{'sxt'}
print(a.intersection(b)) # 返回结果:{'sxt'}
# # 差集 两种方式 返回结果一致
print(a - b) # 返回结果:{1, 3}
print(a.difference(b)) # 返回结果:{1, 3}
控制语句
选择结构
单分支选择结构
实例:
# 控制语句
a = input("请输入一个小于10的数字")
# if语句
if int(a)<10: # 进行数学判断 需要用户输入的值为数字类型
print(a) # 输出结果:2
b = [] # 由于是空列表,是False
if not b: # b本身为空,是False,所以不会打印 加一个not 就是非的意思(意思倒过来) 就能进行打印
print("大傻逼") # 输出结果:大傻逼
c = "False" # 非空字符串 都为true 数字不为0的 都是True
if c: # 非空就打印
print("c") # 输出结果:c
# if 3<c and (c=20) # 条件判断语句不要写“赋值操作符(例如:=)” 否则直接报错
条件表达式详解
双分支选择结构
实例:
# 双分支语句 if else
a = input("请输入一个数字")
if int(a)<10:
print("这是一个小于10的数字")
else:
print("这是一个大于或等于10的数字")
# 输出结果:这是一个大于或等于10的数字
三元条件运算符
实例:
# 测试三元运算符
a = input("请输入一个数字")
print("大聪明" if int(a)<10 else "嘿嘿嘿") # 输出结果:嘿嘿嘿
多分支选择结构
实例:
a = input("请输入你家逆子的分数")
if int(a) > 80:
bx = "优秀"
elif int(a) > 50:
bx = "良好"
elif int(a) > 30:
bx = "差"
else:
bx = "要加油哦"
print("你的逆子分
选择结构嵌套
实例:
score = int(input("请输入一个0-100之间的数字"))
if score > 100 or score < 0:
score = int(input("请不要乱输入!请重新输入一个在0-100之间的数字"))
else:
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade ="滚滚滚,这么垃圾好意思吗"
print("分数为{0},等级为{1}".format(score, grade)) # 输出结果:分数为46,等级为滚滚滚,这么垃圾好意思吗
相对难一点的方式:
# 第二种方式 通过拿字符串长度来判断
score = int(input("请输入一个0-100之间的数字"))
degree = "ABCDE"
num = 0
if score > 100 or score < 0:
score = int(input("不要乱输入,请重新输入一个0-100之间的数字"))
else:
num = score//10
if num < 6:
num = 5
print("分数为{0},等级是{1}".format(score,degree[9-num]))
循环结构
while循环
实例:
# while循环
num = 0
while num < 100: # 条件满足就一直循环
print(num,end="\t") # 用空格拼接起来,没有则是默认换行
num += 1 # 每次加一 结果:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
# 打印1-100的和
# sum = 0
# num = 0
# while num <= 100: # 1-100的数字 大于100跳出循环
# sum = sum + num # 每次相加都是sum里面的值加上num当前的值
# num += 1;
# print("1-100的和为",sum)
for循环和可迭代对象遍历
实例:
# 元祖
for x in (10, 20, 30): # 依次输出元祖中的数
print(x*3) # 输出后乘以3
输出结果:
30
60
90
# 字符串
for y in "abcdefq": # 依次输出每一个字符串
print(y) # 这里可以用list转为列表
输出结果:
a
b
c
d
e
f
q
# 字典
a = {"name": "小明", "age": 18, "sex": "男"}
#打印所有的键
for z in a:
print(z)
# 输出结果:name
# age
# sex
# 打印所有的键
for z in a.keys():
print(z)
# 输出结果:name
# age
# sex
# 打印所有的值
for z in a.values():
print(z)
# 输出结果:小明
# 18
# 男
# 打印所有的键值对
for z in a.items():
print(z)
# 输出结果:('name', '小明')
# ('age', 18)
# ('sex', '男')
range对象
实例:
# 利用range对象操作
# 计算1-100相加
sum = 0
for a in range(101):
sum += a
print(sum)
# 计算1-100偶数相加
sum = 0
for a in range(101):
if a%2==0:
sum += a
print(sum)
# 计算1-100奇数相加
sum = 0
for a in range(101):
if a%2!=0:
sum += a
print(sum)
# 一次计算出1-100、奇数偶数和并打印
sum = 0 # 偶数和
sum1 = 0 # 奇数和
sum2 = 0 # 1-100的和
for a in range(101):
sum2 += a
if a%2==0:
sum+=a
else:
sum1+=a
print("1-100累加起来的和为{0},其偶数和为{1},奇数和为{2}".format(sum2,sum,sum1))
好啦,下期再见