第七讲-集合、顺序执行与while循环

在这里插入图片描述

集合

集合介绍

集合的定义

  • 由不同元素组成的集合,集合是一组无序排列 可hash值,可作为字典的key。

集合的特性

  • 将不同的值放到一起,不同的集合间来做关系运算,集合中的元素必须是不可变类型,没有重复的元素

集合的创建

  • 集合使用大括号 {} 框定元素,并以逗号进行分隔。
  • {} 并不是创建空集合,而是空字典。创建空集合需使用 set()。

添加元素

通过 set.add(key) 方法可以 添加元素 到 set 中
需要注意的是:

  • 可以重复添加,但是会 自动去重,所以无效果
  • 不能添加可变对象

删除元素

  1. set.remove(key):删除指定元素。
  2. set.pop():随机删除元素(注意:无参数)
  3. set.discard():与remove()用法相同,但是如果元素不存在,不会报错。
    需要注意的是:
  • 集合不能取出某个元素,因为集合既不支持下标索引也不支持字典那样的通过键值对获取。

集合更新

可以通过 set.update() 方法,将另一个对象更新到已有的集合中,这一过程同样会进行去重。

顺序执行

Python代码在执行过程中,遵循下面的基本原则:

  1. 普通语句,直接执行;
  2. 碰到函数,将函数体载入内存,并不直接执行;
  3. 碰到类,执行类内部的普通语句,但是类的方法只载入,不执行;
  4. 碰到if、for等控制语句,按相应控制流程执行;
  5. 碰到@,break,continue等,按规定语法执行;
  6. 碰到函数、方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码。

程序的主入口

一个 .py,除了可以被直接运行外,还可以作为模块,被其他 .py文件导入。不管是直接运行还是被导入,.py 文件的最顶层代码都会被运行(Python 用缩进来区分代码层次)。但是当一个 .py 文件作为模块被导入时,我们可能不希望一部分代码被运行。那么就可以将这部分代码的调用写在主程序中。

条件判断

条件判断是通过一条或多条判断语句的执行结果(True 或者 False)来决定执行的代码块。在Python 语法中,使用 if、elif 和 else 三个关键字来进行条件判断。

条件判断使用原则:

  1. 每个条件后面要使用 冒号 作为 判断行的结尾,表示接下来是 满足条件(结果为True)后要执行的语句块。
  2. 除了 if 分支 必须有,elif 和 else 分支都可以根据情况 省略。
  3. 使用 缩进 来 划分语句块,相同缩进数的语句在一起组成一个语句块。
  4. 顺序判断每一个分支,任何一个分支首先被命中并执行,则其后面的所有分支被忽略,直接跳过!
  5. 可以有多个 elif ,但只能有一个 else。
  6. 在 Python 中 没有 switch – case 语句。

条件判断嵌套

if…elif…else 语句可以嵌套,也就是把 if…elif…else 结构放在另外一个if…elif…else 结构中。

循环控制

循环控制介绍

循环控制,就是让程序循环运行某一段代码直到满足退出的条件,才退出循环。Python 用关键字for和while来进行循环控制。

while循环表达式

当程序从上至下执行时,遇到while循环语句,则会判断表达式是否成立 ,当 成立时则会进入while循环体内,执行循环体内部执行的代码块。直到判断表达式不成立时 ,则终止循环。

break 与 continue 语句

  • break:当循环体执行的过程中想要 退出循环体,就可以使用到 break 语句。
  • continue:continue 语句用于跳过当前循环体剩余部分的代码,直接开始下一轮循环。它不会退出和终止循环。

while 的 else 从句

while 循环还可以增加一个 else 从句。当 while 循环正常执行完毕,会执行 else语句。
需要注意的是:

  • else 与 while 平级的缩进方式
  • 如果是被 break 等机制强制提前终止的循环,不会执行 else 语句。

while循环嵌套使用

while可以嵌套。但是建议不要嵌套 3 层以上,那样的效率会很低。

for循环表达式

虽然与while一样都是循环的关键字,但 for循环通常用来遍历可迭代的对象。

break 与 continue 语句

在 while 循环中,拥有 break 与 continue 语句,那 for 循环中也有 break 与
continue 语句,并且作用一致。

作业3(扩展)

生成了N个1~1000之间的随机整数(N<=1000),N是用户输入的,对于其中重复的数字,只保留一个,把其余相同的数字去掉,然后再把这些数从小到大排序。

import random
a = int(input('请输入1~1000中任意一个数字:'))
num = set()
for i in range(a):
    num.add(random.randint(1,1000))
print(num)
print(sorted(num))

在这里插入图片描述

作业5

不可变:整数、浮点数、字符串、元祖、布尔值
可变:字典、列表、可变集合

作业2

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",5.1^3 + 5^3+ 3^3 = 153

for num in range(100,1000):
    x = num // 100
    y = num // 10 % 10
    z = num % 10
    if x ** 3 + y ** 3 + z ** 3 == num:
        print(str(num) + "是水仙花")

在这里插入图片描述

作业3

s1 = input('最近学习了吗?yes/no:')
if s1 == 'yes':
    print('very good')
    while True:
        print('1.python \n2.高数 \n3.退出')
        s2 = input('请输入学习选项:')
        if s2 == '1':
            print('python真不戳!')
            break
        elif s2 == '2':
            print('高数很厉害!')
            break
        elif s2 == '3':
            print('已退出')
            break
        else:
            print('选项有误,请重新选择!')
            continue
elif s1 == 'no':
    print('年轻人,耗子尾汁!')
else:
    print('输入有误')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值