第七讲:顺序执行和while循环
程序员文章站
2022-03-15 14:49:37
集合集合介绍无需不重复的元素的集,集合数据类型的核心在于自动去重创建集合以{}形式创建(字典也是用{}),但是直接用{}创建的是字典所以要用set()来创建自动去重注:对于字符串来说,拆开后去重并且是无序的添加元素set.add(),添加的元素可以使任意类型(注:添加已有的元素会自动去重)和字典一样,只能添加不可变对象,列表是可变对象,所以会报错集合更新set.update():将另一个对象更新到已有的集合中会把括号里的元素拆开后添加到集合中,并且仍然会自动...
集合
集合介绍
- 无需不重复的元素的集,集合数据类型的核心在于自动去重
创建集合
- 以{}形式创建(字典也是用{}),但是直接用{}创建的是字典
- 所以要用set()来创建
- 自动去重
注:对于字符串来说,拆开后去重并且是无序的
添加元素
- set.add(),添加的元素可以使任意类型(注:添加已有的元素会自动去重)
- 和字典一样,只能添加不可变对象,列表是可变对象,所以会报错
集合更新
- set.update():将另一个对象更新到已有的集合中
- 会把括号里的元素拆开后添加到集合中,并且仍然会自动去重
删除元素
-
set.remove():删除指定元素
删除不存在的元素时会报错 -
set.pop():删除随机元素
-
因为集合中的元素是无序的,所以不支持用索引来删除元素
可变类型与不可变类型
可变类型
- 改变数据本身,内存地址id()不变
- 列表list()
- 字典dict()
- 集合set()
不可变类型
- 改变数据,内存地址id()会改变
- 数值
- 字符串
- 字节
- 元组
顺序执行
- 对于普通语句,代码从上至下执行
- 函数没有调用的时候,代码不会执行
程序主入口
- 形式:if __ name __== ’ __ main __’:
- 在demo7中列出这样的代码,在demo71中导入demo7并运行,发现在demo7执行时fun1,2都执行了,但是在demo71中就只执行了fun1
- 也就是,如果不想被别的程序调用函数的话,可以把函数放在程序主入口中执行
- 如果在demo7中,__ name __ 等同于 __ main __,但是在demo71中执行的话,只是等同于demo7
条件判断
定义
- 条件判断是通过一条或多条判断语句的执行结果来决定执行的代码块,其用if、elif、else三个关键字来进行条件判断
小案例
- 两格缩进也可以执行,缩进并不强制要求,但是最好统一
- else后边不可以跟条件了
- elif可以有多个,但是else只可以有一个
条件判断嵌套
- if…elif,else可以放在另一个if…elif…else中
- 又是一个小案例
循环控制
循环控制介绍
- 让程序循环运行某一段代码直到满足退出的条件,才退出循环
while循环表达式
定义
- 当程序从上到下执行,遇到了while循环语句,就会判断表达式是否成立,当成立时会继续执行while语句,不成立时就终止循环了
练习
- 打印五次hello world
注:while后边跟上1也可以,但是建议是True
- 打印1-100之间的和
注:循环是不可逆的,只能一直往下执行
break语句
- 退出循环体,并终止循环
- 打印1-100的和的新要求: 当i=8的时候退出循环
注:此时i += 1的位置会产生影响
continue语句
- 用于跳过当前循环提升与部分的代码,直接开始下一轮循环,但不会退出和终止循环
注:此时i += 1必须在continue的上边,否则会无限循环
- 当循环正常结束的时候,会执行else
而如果是break的话,循环不是正常结束,break是强制结束,所以不会执行else
注:此程序中,else和while是平级的,而不是和if
while循环嵌套
- 练习:打印出如下形状
/*
/**
/***
/****
- 使用嵌套打印出上述图形
作业
本文地址:https://blog.csdn.net/ningning235/article/details/111902939