Python顺序执行及while循环(第七讲)

在这里插入图片描述

1.集合(set)

1.集合介绍(掌握)

    集合( set )是一个 无序不重复 元素的集,基本功能包括关系测试和消除重复元素。是可变数据类型
    集合数据类型的 核心 在于 自动去重

2.集合创建(掌握)

    集合使用 大括号 {} 框定元素,并以 逗号 进行分隔。

  • s = {ele1,ele2,ele3…}
  • s = set()
  • s = set(iterable)
        注意:
  • {} 并 不是创建 空集合,而是空字典。创建 空集合 需使用 set()
s = set('hello word')
print(s) # {'d', 'h', ' ', 'w', 'e', 'o', 'l', 'r'};去重,无序

3.添加元素(熟悉)

    通过 set.add(key) 方法可以 添加元素set
    注意:

  • 可以重复添加,但是会 自动去重,所以无效果
  • 不能添加可变对象
s = set([1, 2, 3, 4, 5])
s.add(6)
print(s) # {1, 2, 3, 4, 5, 6}

4.集合更新(熟悉)

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

s = {1, 2, 3, 4}
s.update('hello')
# 将hello每个拆开添加到集合中,会去重
print(s) # {1, 2, 3, 4, 'e', 'h', 'o', 'l'}

5.删除元素(熟悉)

  • set.remove(key):删除指定元素
s = {1, 2, 3, 4, 5}
s.remove(3)
print(s) # {1, 2, 4, 5};指定删除
  • set.pop():随机删除元素(注意:无参数)
s = {1, 2, 3, 4, 5}
s.pop()
print(s) # 随机删除

    注意:

  • 集合不能取出某个元素,因为集合既不支持下标索引也不支持字典那样的通过键值对获取。

2.顺序执行(了解)

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

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

3.程序主入口

1.程序主入口(熟悉)

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

if __name__ == '__main__':
    pass

4.条件判断

1.条件判断(掌握)

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

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

2.条件判断嵌套

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

5.循环控制

1.循环控制介绍

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

2.while循环表达式

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

3.break 与 continue 语句

  • break:
    循环 执行的过程中想要 退出循环体,就可以使用到 break 语句
  • continue:
    continue 语句用于 跳过 当前循环体 剩余部分的代码,直接 开始下一轮循环。它 不会退出和终止循环
  • while 循环中,拥有 breakcontinue 语句,那 for 循环中也有 breakcontinue 语句,并且 作用一致
    问题:
  • 怎么跳出双层循环?
    实现:
  • 第一层循环建立标志
  • 第二层循环改变标志,达到退出循环效果

4.while循环表达式

    练习:

  • 打印 5 次 hello amy
i = 1
while i <= 5:
    print('hello amy')
    i += 1
  • 求1-100之间的和
i = 1
n = 0
while i <= 100:
    n += i
    i += 1
print(n)

    新任务:

  • 当 n = 8 时终止循环
while i <= 100:
    if i == 8:
        break
    n += i
    i += 1
  • 当 n = 8 时跳出当前循环,进入下次循环
i = 1
n = 0
while i <= 100:
    n += i
    i += 1

    if i == 8:
        continue
    print(i)

5.while 的 else 从句

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

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

6.while循环嵌套使用

    if 判断可以嵌套,while 当然也可以嵌套。但是建议大家不要嵌套 3 层以上,那样的效率会很低。
    练习:

  • 打印输出如下:
*
**
***
'''嵌套实现
*
**
***
'''
row = 1 # 行数
while row <= 3: # 循环条件;只要小于等于三就会无限循环
    starts = 1 # 星星个数
    while starts <= row: # 当星星数量小于行数就会无限循环
        print('*', end="") # 打印*,并使其不换行
        starts += 1 # 星星计数加一
    print('') # 星星每打印完一行就换行
    row += 1 # 行数加一

7.for循环表达式

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

  • for … in …: 属于固定格式
  • iterable 表示 可迭代的对象
  • i变量名(可更改),代表可迭代对象里面的每
    个元素

练习

  • ch_num = [‘零’,‘壹’,‘贰’,‘叁’,‘肆’,‘伍’,‘陆’,‘柒’,‘捌’,‘玖’]
  • ch = [‘圆’,‘拾’,‘佰’,‘仟’,‘萬’]
  • 实现当 输入数字 时,将 数字 转为 汉字大写输出。
ch_num = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
ch = ['圆', '拾', '佰', '仟', '萬']
num = input('请输入:')
len_1 = len(num)
pass
for i in num:
    len_1 -= 1
    # print(, end='')
    # print(ch[len_1], end='')
    print(f'{ch_num[int(i)]}{ch[len_1]}',end='')

8.for循环嵌套

练习

    打印输出九九乘法表

# 九九乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print('{}x{}={}\t'.format(j, i, i*j), end='')
    print()

作业

作业一

生成了N个1~1000之间的随机整数(N<=1000),N是用户输入的,对于其中重复的数字,只保留一个,把其余相同的数字去掉,然后再把这些数从小到大排序。
(注意:此处需要使用random模块取随机整数。可课后拓展了解random模块具体方法;)

import random

num = input('生成多少个:')
num_1 = 1
b = set()
if str.isdigit(num):
    if float(num) <= 1000:
        while num_1 <= int(num):
            a = random.randint(0, 1000)
            b.add(a)
            num_1 += 1
    else:
        print('请输入小于一千的数')
else:
    print('请输入全数字')
print(b)

作业2

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

import math

for i in range(100, 1000):
    x = math.floor(i / 100)  # 获得百位数
    y = math.floor((i - x * 100) / 10)  # 获得十位数
    z = i - math.floor(i / 10) * 10  # 获得个位数
    if i == x ** 3 + y ** 3 + z ** 3:
        print(i, end=', ')

作业3

实现学习调研系统,效果如下。
在这里插入图片描述
在这里插入图片描述

while True:
    study = input('最近学习了吗?输入yes/no')
    if study == 'yes':
        print('very good')
        print('1.python')
        print('2.高数')
        print('3.退出')
        study_1 = int(input('请输入学习选项:'))
        if study_1 == 1:
            print('python真不戳')
            break
        elif study_1 == 2:
            print('我待高数如初恋,高数掠我千万遍')
            break
        elif study_1 == 3:
            print('退出')
            break
        else:
            print('输入有误')
            break
    elif study == 'no':
        print('年轻人耗子尾汁')
        break
    else:
        print('输入有误')
        break
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值