2.22
上午
上节课复习
-
计算机基础
三大核心硬件:CPU,内存,硬盘
由硬盘读到内存,再由cpu取出程序的指令去运行
操作系统:控制程序,控制计算机底层硬件运行
一个完整的计算机体系结构分为3层
- 应用程序(暴风影音)
- 操作系统(windows,Linux)
- 计算机硬件
平台 = 操作系统 + 计算机硬件
-
python程序运行的三个步骤
-
先启动一个python解释器:从硬盘读到内存
-
解释器将py文件由硬盘读入内存
-
解释器去解释执行py文件的内容,识别python语法
-
-
布尔类型
-
输入输出,格式化输出
-
基本运算符
-
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
死循环:条件永远为真,循环无法结束,写程序是要避免
如何中止循环
-
定义一个变量存储循环运行的条件,改变变量,完成一次循环后,下一次循环,判断条件不成立,则中止循环
tag = True while tag: print('ok') tag = False
-
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也会执行