疫情环境下的网络学习笔记 python Day 05

2.22

上午

上节课复习

  1. 计算机基础

    三大核心硬件:CPU,内存,硬盘

    由硬盘读到内存,再由cpu取出程序的指令去运行

    操作系统:控制程序,控制计算机底层硬件运行

    一个完整的计算机体系结构分为3层

    • 应用程序(暴风影音)
    • 操作系统(windows,Linux)
    • 计算机硬件

    平台 = 操作系统 + 计算机硬件

  2. python程序运行的三个步骤

    1. 先启动一个python解释器:从硬盘读到内存

    2. 解释器将py文件由硬盘读入内存

    3. 解释器去解释执行py文件的内容,识别python语法

  3. 布尔类型

  4. 输入输出,格式化输出

  5. 基本运算符

  6. if判断

    if 条件1:
    	子代码块1
    elif 条件2:
    	子代码块2
    else:
    	子代码块
    

    子代码块:具有相同的缩进

    indentation Error:unexpected indent 缩进错误

    不是所有软件的Tab都是4个空格

    else必须放在最后

补充

== 比较的是值,只能是同样数据类型之间的比较

短路运算基本原则

and的左边为False,右边不会再执行判断;当 or 的左边为True,右边不会再进行判断

交叉赋值

a = 10
b = 20

想要把a,b的值互换

a,b = b,a

链式赋值

a = 1
b = a
c = b

等同于

a = b = c = 1

解压赋值

取列表开头或结尾的值(***)

sal = [1, 2, 3]
x = sal[0]
y = sal[1]
z = sal[2]

等同于

x,y,z = sal

解压赋值正常情况下,左边变量名的个数应与右边包含的个数相同,多或少都不行

如果左边的变量要少于右边,可以加 *

sal = [1, 2, 3, 4, 5]
x, y, *z = sal
  • x,y 会对应列表sal的前2个值,然后 * 会把剩余的值存放一个列表,然后赋值给 z

  • *匹配所有剩余变量的值

*z, a, b = sal

​ a,b取后两个值,前面所有的值存成列表赋值给z

两边同时取值也可也,在中间放*

要取中间的值还是要用索引

解压赋值:字典

由于字典是 key:value 形式,解压赋值字典得到的都是key

逻辑运算符的优先级

优先级:() > not > and > or

  • not与紧跟其后的那个条件是不可分割的,把not后条件看成一个整体看就可以

  • 如果条件语句全部由纯 and纯 or 连接,则没有优先级之分,由左到右依次计算即可

  • 对于既有 and 又有 or 连接的语句:以 and 为中心,左右条件用括号括起来

短路运算

实际上可以看作 and 和 or 的偷懒原则

所有数据类型的值都自带布尔值,所以值可以直接被当成是条件使用

  • 0 , None , 空 ,三种值对应的布尔值为False,其余全为True

    • 空:'', [], {} 空字典,空列表,空字符串
  • and 运算符会返回当前计算位置的值

    res = 0 and 111   #返回结果 0 
    res = 1 and 111   #返回结果 111 
    

    例题

    1 or 0				#返回 1
    0 and 2 or 1		#返回 1
    0 and 2 or 1 or 4   #返回 1
    

新课

循环

什么是循环?

​ 循环就是重复做一件事

为何要用循环?

​ 为了让计算机能够像人一样去做重复事情

如何用循环

while循环

又称为条件循环,运行直到条件不成立

while 条件:
	子代码块1
	子代码块2

死循环:条件永远为真,循环无法结束,写程序是要避免

如何中止循环

  1. 定义一个变量存储循环运行的条件,改变变量,完成一次循环后,下一次循环,判断条件不成立,则中止循环

    tag = True
    while tag:
    	print('ok')
    	tag = False
    
  2. break 立刻中止本层循环

while tag:
	print('ok')
    break
	print('不执行')

需求:嵌套多层循环,想一次性中止所有循环

  • 使用多个break,一个个跳出当层循环
  • 每层循环使用同样的条件,在最后一层循环改变条件

两种中止的方式区别:第一种直接跳出循环,break下代码不执行,第二种执行完本次代码块后再结束

下午

循环嵌套案例

需求1:编辑账号密码,重新输入重新验证

需求2:账号密码输错三次退出程序

需求3:输对账号密码后,登陆成功,可以循环接收用户输入的命令并执行

user_name = 'deimos'
password = '123'
count = 0
while count <3:
    input_user = input('input user name')
    input_pwd = input('input password')
    
    if input_user == user_name and input_pwd == password:
        print('登陆成功')
        while True:
            if cmd == 'quit':
                break
        	cmd =input('请输入命令,输入quit退出')
        	print('%s 正在执行'%cmd)
        break
        
    else:
        print('输入错误')
        count+=1

while + continue

continue后的代码不运行,结束本次循环,进入下一次循环

while + else

count = 1
while count < 6:
	print(count)
	count+ = 1
else:
	print('此处的代码执行')

else对应的子代码块在 while 循环结束后,并且不是在break结束的条件下,才会执行

count = 1
while count < 6:
	if count ==4:
		break
	print(count)
	count+ = 1
else:
	print('此处的代码不允许')

continue的代码,else也会执行

原文地址:https://www.cnblogs.com/telecasterfanclub/p/12345737.html