运算符与流程控制及数据内置
昨日内容回顾
-
数据类型
针对不同类型的数据用不同形式的方式对应 -
数据类型之整型与浮点型
-
数据类型之字符串(str)
'''引号引起来的内容''' 三种定义方式 '单引号' "双引号" '''三引号''' #字符中也含有引号,所有需要多种引号来确定引起的范围 -
数据类型之列表(list)
[]中括号括起来的内容 中括号内可存放多个元素,元素元素之间用逗号分开,元素可以是任意类型的数据 # 索引取值 从零开始取值,在计算机中起始值是0 -
数据类型之字典(dict)
大括号括起来的{} 大括号内部可以存放多个元素,元素的形式是Key:Value键值对,key是对value的描述性数据,一般情况下都是字符串,value可以使任意的数据类型 # 需要按键取值 字典内是无序的无法按索引取值 -
数据类型之布尔值(bool)
用于判断对错,真假 True False 1.布尔值默认为False 0,None,'',[],{},... 2.存储布尔值的变量名名一般都是习惯is开头 is-rught=True is-delete=False -
数据类型之元组
小括号括起来的内容() 小括号内部可以存放多个元素,元素与元素之间逗号隔开,并且元素只能是不可变类型 -
数据类型之集合
大括号括起来的内容 大括号内部可以存放多个元素,元素与元素之间逗号隔开,并且元素只能是不可变类型 -
输入与输出
input print -
格式化输出
占位符 %s %d %s可以替换任意数据类型 %d只可以替换数字 #打破规则需要特殊方式 -
运算符
数学运算 比较运算 增量赋值 链式赋值 解压赋值 # 程序员要尽可能的简化自己的操作
# 今日内容概要
- 运算符之逻辑运算
- 运算符之成员运算
- 运算符之身份运算
- 流程控制(重点)
- 数据类型常用内置方法
# 今日内容详细
## 运算符之逻辑运算
```python
逻辑运算用于连接多个条件,进行关联判断,会返回布尔值True或者false
与 and
或 or
非 not
and 连接多个条件判断都需要满足
2>1 and 1==1 and True and 3>2
# True
2>3 and 1==1 and True and 3>2
# False
or 连接多个条件只要有一个满足就输出 True
2>1 or 1==1 and True and 3>2
# True
2>3 or 1==2 and False and 3>4
# False
not 取反对结果反向取值
not 1 == 1
# False
not 2>10
# True
'''
上述三个逻辑顺序符组合在一起使用,是有先后顺序的
3>4 and 4>3 or 1==3 and 'x' == 'x' or 3>3
但是我们一般不应该考虑先后顺序,而应该主动使用括号的形式
明确使用的先后顺序
联想小学学习的加减乘除
通过使用括号打破顺序
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3>3)
'''
运算符之成员运算
判断个体是否属于某个群体内
in 存在
not in 不存在
names=['jason','tony','jerry']
name1='tom'
print(n in names)
# False
name2= 'jason'
print(name2 in names)
# True
# 取反
print(name1 not in names)
# True
name2= 'jason'
print(name2 not in names)
# False
逻辑运算之身份运算
值是否想等
# ==
内存地址是否相等
# is
l1 = [11,22,33,44]
l2 = [11,22,33,44]
print(l1 == l2)
# True
print(l1 is l2)
# Fales
print(id(l1),id(l2))
'''
内存地址命令 id
值相等内存地址可能不等
内存地址相等值一定相等
'''
流程控制
流程控制既是控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:
顺序结构
之前我们写的代码都是顺序结构
分支结构
用到if判断
循环结构
用到while与for
流程控制之分支结构
依据条件的真假进行判断做什么(让计算机模仿人类的思维模式)
使用
if
elif
else
判断运算的流程,三者只会有一个执行(执行了if就不会执行elif和else...同理...)
# 代码结构
if 条件1: # 如果条件1的结果为True,就依次执行:代码1、代码2,......
代码1
代码2
......
elif 条件2: # 如果条件2的结果为True,就依次执行:代码3、代码4,......
代码3
代码4
......
elif 条件3: # 如果条件3的结果为True,就依次执行:代码5、代码6,......
代码5
代码6
......
else: # 其它情况,就依次执行:代码7、代码8,......
代码7
代码8
......
'''条件可以使单个 也可以是用逻辑运算符链接的多个条件的组合'''
age=36
if age > 35:
print('阿姨好')
else:
print('小姐姐好')
用户的登录功能
# 获取用户的用户名和密码
username = input('username>>>:')
password = input('password>>>:')
# 判断用户名密码是否正确
if username == 'jason' and password == '123':
print('登陆成功')
else:
print('用户名或密码错误')
流程控制之循环结构(while循环)
人类某些时候需要重复的去做某件事
在程序中也要应该有响应的机制来控制计算机具备人的这种循环做事的能力
循环结构就是重复执行某段代码块
while 条件:
代码1
代码2
代码3
...
# while的运行步骤:
# 步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3、......
# 步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、......,如果条件为False,则循环终止
count = 0
whlie count < 5:
print('循环了')
count += 1
如何主动结束本层循环
break
# 只能结束距离它上方最近的一个whlie
while True:
# 获取用户的用户名和密码
if username == 'jason' and password == '123':
# 后续条件将换成数据库
print('登陆成功')
while True:
cmd = input('请输入你的指令>>>:')
if cmd == 'q':
break
# 结束本层循环
print('正在执行你的指令:%s'%cmd)
else:
print('用户名或密码错误
如何主动打破本次循环(直接结束本次循环,开始下一次循环)
continue
# 循环打破0-10
count = 0
while count < 11:
print(count)
count += 1
count = 0
while count < 11:
if count == 6:
count += 1
continue
# 借宿本次循环
print(count)
count +=1
循环结构之for循环
for循环能做到的while循环都能做到
但是 for 更简单,代码更加的精简
for 变量名 in 可迭代对象: # 此时只需知道可迭代对象可以是字符串\列表\字典
代码一
代码二
...
# 1.for循环列表元素
for item in ['a','b','c']:
print(item)
# 运行结果
a
b
c
# 参照例1来介绍for循环的运行步骤
# 步骤1:从列表['a','b','c']中读出第一个值赋值给item(item=‘a’),然后执行循环体代码
# 步骤2:从列表['a','b','c']中读出第二个值赋值给item(item=‘b’),然后执行循环体代码
# 步骤3: 重复以上过程直到列表中的值读尽
# 2.可以循环对象
列表
字符串
字典
代码的缩进
1.在python中,我们通过代码的缩进来标识代码的从属关系
if age> 35:
print('阿姨好!')
上述的代码中print('阿姨好')缩进了,那么就表示它属于上面的if
2.并不是所有的代码都可以拥有子代码
if
while
for
...
3.如果出现多行代码属于一个关键字,那么该多行代码必须是相同的缩进量
4.缩进的代码 到底缩进几位合适?
python中合适的是4个空格键
#tab键
'''
代码是否需要缩进你可以根据一个特殊符号来判断
>>>:冒号
一行代码的结尾如果是冒号,那么下一行代码肯定需要缩进
'''
'''可以多个'''
用户的登录功能
username=input('username>>>:')
补充(range方法)
相当于一个序列
for i in range(5)
等价于
for i in [0,1,2,3,4]
'''
range方法括号内可以放三个数字
一个数字
range(5)
两个数字
range(1,5)
三个数字
range(1,5,2)
'''
数据类型内置之整型与浮点型
数据类型转换
res='123'
print(type(res))
# <class 'str'>
res1=int(res)
print(res1)
# 将字符串的123转换成数字123
# <class 'int'>
int方法只能转化纯整数数字(有小数点不行)
float方法可以识别小数点
数据类型之字符串内置方法(重点)
'''python中不同数据类型之间无法直接做操作'''
res='hello world'
1.索引取值
print(res[1])
# e
print(res[-1])
# d
2.切片操作
print(res[1:4])
# ell
3.步长(间隔)
print(res[1:8:2])
# el o
4,统计长度(经常使用)
print(len(res))
# 11
5.类型转换
str(123) str(1.11) str([1,2,3,4]) str({'username':'jason'})
# 所有类型的数据都可以转换为字符串,加引号就行
6.移除字符串首位的空格
res1 = ' jason '
print(len(res1))
res2 = res1.strip()
print(len(res2))
res3 = '$$jason&&'
# 可以指定移除的字符
print(res3.strip('$'))
print(res3.strip('&'))
# 仅限移除字符串的首尾,且括号内只能指定一个对象
username = input('username>>>:').strip()
if username == 'jason':
print('jason你好')
else:
print('jason你被盗号啦')
作业
一定要先把今日内容好好复习一遍
1.利用分支结构完成
'''
jason --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
'''
获取用户输入的用户名,打印出对应的身份
2.利用循环结构while完成猜年龄游戏程序编写(有难度)
获取用户猜测的年龄,如果用户猜错了提示(猜大了 猜小了)
如果用户猜对了直接退出程序
如果用户猜错了只能有三次机会(三次之后程序结束)
# 拔高题:用户猜错三次之后询问用户是否继续猜,如果继续再给三次机会

浙公网安备 33010602011771号