0-7 Python 集合、顺序执行、条件判断、循环控制
提示:Python 随堂笔记
0-7 Python 集合、顺序执行、条件判断、循环控制
集合
集合介绍 [掌握]
集合( set )是一个 无序不重复 元素的集,基本功能包括关系测试和消除重复元素。是 可变数据类型。
集合数据类型的 核心 在于 自动去重。
集合创建 [掌握]
集合使用 大括号 {} 框定元素,并以 逗号 进行分隔。
s = {
ele1,ele2,ele3...}
s = set()
s = set(iterable)
注意:
{} 并 不是 创建 空集合,而 是空字典。创建 空集合 需使用 set()
添加元素 [熟悉]
通过 set.add(key)
方法可以 添加元素
到 set 中
注意:
可以重复添加,但是会 自动去重,所以无效果
不能添加可变对象
集合更新 [熟悉]
可以通过 set.update()
方法,将另一个对象 更新 到 已有的集合中,这一过程同样会进行 去重
删除元素 [熟悉]
set.remove(key)
: 删除指定元素
set.pop()
: 随机删除元素(注意:无参数)
注意:
集合不能取出某个元素,因为集合既不支持下标索引也不支持字典那样的通过键值对获取
示例代码: 【熟悉集合】
# set() # 类 方法
print(type(set())) # 得到:<class 'set'>
# 集合没有下标
# 创建set类型 -> 集合
# 集合的特点:全部拆开,无序的,自动去重的 例:
s2 = set("hello world")
print(s2) # 得到:{'d', ' ', 'w', 'o', 'e', 'l', 'r', 'h'}
# 添加更新元素
# 1. set.add(key) # 添加元素 只能添加不可变对象 例:
s2 = set([1, 2, 3, 3])
s2.add((1, 2, 3)) ## 添加元素 得到:{1, 2, 3, (1, 2, 3)}
# 2. set.update() #更新进集合中 例
s2 = set([1, 2, 3, 3])
s2.update("hello") ## 更新进入 得到:{1, 2, 3, 'l', 'o', 'e', 'h'}
# 删除元素
# 1. set.remove() # 删除指定元素 元素不存在时报错 例:
s2 = set([1, 2, 3, 3])
s2.remove(3) # 删除指定元素5 得到:{1, 2}
# 2. set.pop() # 删除随机元素 例:
s2 = set([1, 2, 3, 3])
s2.pop() # 无序随即删除一个 ()无参数
# 3. del 删除整个集合 例:
s2 = set([1, 2, 3, 3])
del s2
# print(s2)
总结数据类型哪些为可变的哪些为不可变的
什么是可变不可变
定义变量的时候,是先创建一块内存空间,将值放进去,然后变量名里存放着该内存空间的内存地址。现在我们就可以解释了。
- 可变类型:就是这个数据类型的值在不改变这一块内存空间,而去改变这个数据类型的值。
- 不可变类型:当改变值得时候,会申请一块新的内存空间,不再是原来的那一块内存空间了。
不可变类型
- 数值
- 字符串
- 字节
- 元祖
可变类型
- 列表
- 字典
- 集合
顺序执行与程序主入口
顺序执行 [了解]
Python代码在执行过程中,遵循下面的基本原则:
- 普通语句,直接执行;
- 碰到函数,将函数体载入内存,并不直接执行
- 碰到类,执行类内部的普通语句,但是类的方法只载入,不执行
- 碰到if、for等控制语句,按相应控制流程执行
- 碰到@,break,continue等,按规定语法执行
- 碰到函数、方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码
程序主入口 [熟悉]
-
一个 .py,除了可以被直接运行外,还可以作为模块,
被其他 .py文件导入。不管是直接运行还是被导
入,.py 文件的最顶层代码都会被运行(Python 用缩
进来区分代码层次) -
但是当一个 .py 文件作为模块被导入时,我们可能不
希望一部分代码被运行。那么就可以将这部分代码的
调用写在主程序中
if __name__ == '__main__': # 主函数/程序主入口
条件判断 [掌握]
条件判断是通过一条或多条判断语句的执行结果(True 或者 False)来决定执行的代码块。在
Python 语法中,使用 if 、 elif 和 else 三个关键字来进行条件判断。
条件判断使用原则:
- 每个条件后面要使用 冒号 作为 判断行的结尾,表示接下来是 满足条件(结果为True)后要
执行的语句块。- 除了 if 分支 必须有,elif 和 else 分支都可以根据情况 省略。
- 使用 缩进 来 划分语句块,相同缩进数的语句在一起组成一个语句块。
- 顺序判断每一个分支,任何一个分支首先被命中并执行,则其后面的所有分支被忽略,直接
跳过!- 可以有多个 elif ,但只能有一个 else
- 在 Python 中 没有 switch – case 语句。
条件判断嵌套
if…elif…else 语句可以嵌套,也就是把 if…elif…else 结构放在另外一个 if…elif…else 结构中
举个栗子:
代码:
name = input('请输入你的名字')
if name == 'Jenny':
print(name)
elif name == 'Anne':
print('不是安妮是詹妮哦~')
else:
age = input('看来你忘记名字了,那你的年龄呢?')
if age == '18':
print('对你是:'+ age +'岁')
条件判断可以多个elif 也可以套娃.
循环控制
循环控制,就是让 程序循环运行某一段代码 直到 满足退出的条件,才 退出循环
Python 用关键字 for 和 while 来进行循环控制
while 循环表达式
当程序从上至下执行时,遇到 while 循环语句,则会判断表达式 是否成立 ,当 成立
时 则会进入 while 循环体内,执行 循环体内部执行的代码块。直到判断表达式 不成
立时 ,则 终止循环
做个小练习吧:
# 打印 5 次 hello amy
i =0
while i < 5:
print('hello amy')
i+=1
输出:
hello amy
hello amy
hello amy
hello amy
hello amy
# 求 1-100 之间的和
i = 1
s = 0
while i < 100:
s = s + i
i+=1
print(s)
输出:
4950
# 新任务:当 n = 8 时终止循环
一:
n = 0
while True:
print(n)
n += 1
if n == 8:
break
二:
n =0
while n < 8:
print(n)
n += 1
输出相同:
0
1
2
3
4
5
6
7
# 当 n = 8 时跳出当前循环,进入下次循环
n = 0
while n < 10:
n += 1
if n == 8:
continue
print(n)
输出:
1
2
3
4
5
6
7
9
10
break 与 continue 语句
break :
当 循环体 执行的过程中想要 退出循环体,就可以使用到 break 语句。
continue :
continue 语句用于 跳过 当前循环体 剩余部分的代码,直接 开始下一轮循环。它 不会退出和终止
循环
while 的 else 从句
while 循环还可以增加一个 else 从句。当 while 循环 正常执行 完毕,会执行 else 语句。
注意:
else 与 while 平级的缩进方式
如果是被 break 等机制 强制 提前 终止 的循环,不会执行 else 语句。
while 循环嵌套使用
if 判断可以嵌套,while 当然也可以嵌套。但是建议大家不要嵌套 3 层以上,那样的效率会很低。
for 循环表达式
虽然与 while 一样都是循环的关键字,但 for 循环通常用来遍历 可迭代 的对象
注意:
- for … in …: 属于固定格式
- iterable 表示 可迭代的对象
- i 是 变量名(可更改),代表可迭代对象里面的每
个元素
课后作业
作业1
答案:
s = set()
import random # 随机模块
frequency = int(input('请输入生成个数:'))
for i in range(1, frequency+1):
random_number = random.randint(1, 3)
s.add(random_number) # 向集合s添元素加
print(sorted(s)) # 内置排序方法
作业2
for i in range(100, 10000):
s = str(i)
num = int(s[0])**3 + int(s[1])**3 + int(s[2])**3
if num == i:
print(i)
# 或者
for i in range(100,1000):
i1 = i//100
i2 = i%100//10
i3 = i%10
s = i1**3 + i2**3 + i3**3
if s ==i:
print(i)
结果相同:
153
370
371
407
作业3
# 1. 当输入为 yes 时,给出选项 2. 当选项为 3 ,则退出系统 3. 当选项不在选择范围内 , 则提示重新选择
option = input('年轻人最近学习了吗? yes/no')
print('你选择了' + option)
while True:
if option == 'yes':
option_1 = input('选项1:python\n选项2:php\n选项3:没有,滚蛋!\n请输入你学习的选项:')
print('你选择了:' + option_1)
if option_1 == '1':
print('真棒!')
break
elif option_1 == '2':
print('php也很不错哦~')
break
elif option_1 == 3:
break
else:
print('请做出选项!')
else:
print('年轻人,耗子尾汁!')
break
图示:
如果文章对你有帮助,记得一键三连哦~
原创不易 感谢支持 未经允许禁止转载!
转载:https://blog.csdn.net/weixin_45561522/article/details/111995216