4.14 day03 学习内容
昨日内容回顾
你的每一次进步都是一次赶鸭子上架的过程
-
代码注释
# 注释内容 '''注释内容''' """注释内容"""
-
变量与常量
1.变量名 赋值符号 变量值 重点掌握内部原理 2.变量名的命名规范 3.变量名的命名风格 4.常量 全大写
-
基本数据类型
整型 int age = 18 浮点型 float salary = 3.1 字符串 str name = 'jason' name = "jason" name = '''jason''' name = """jason""" 列表 list name_list = ['jason',11,11.11,[11,22,33]] 字典 dict info={'username':'jason','password':123} 布尔值 bool True、False 元组 name_list = ('jason','kevin','tony') 集合 num = {1,2,3,4,5,6}
-
运算符
# 增量赋值 x += 1 # 链式赋值 x = y = z = 1 # 交叉赋值 m, n = n, m # 解压赋值 x,y,z = [11,22,33] x,*_ = [1,2,3,4,5,6]
今日内容概要
- 运算符
- 流程控制(重点)
- 数据类型的内置方法
- 字符编码
- 文件操作(重点)
今日内容详细
运算符
# 逻辑运算符
and 与
链接多个条件 多个条件必须都成立结果才为True
or 或
链接多个条件 多个条件只要有一个成立结果就为True
not 非
取反
"""
当上述三者混合使用的时候 其实它们是有优先级之分的
我们在操作的时候通过人为加括号的形式来明确优先级
"""
# 成员运算
name_list = ['jason','egon','tony','kevin']
username = input("username>>>:")
print(username in name_list)
print(username not in name_list)
# 身份运算
is判断内存地址是否一致
==判断值是否一致
>>> x = 'jason jason jason'
>>> y = 'jason jason jason'
>>> id(x)
2120468678384
>>> id(y)
2120468678456
>>> x is y
False
>>> x == y
True
流程控制
程序的执行流程分为三种结构:
顺序结构
之前我们写的代码都是顺序结构 一条线流水下来的
分支结构
基于条件判断做出不同的响应
eg:根据天气决定是否带伞 根据心情决定是否出去嗨皮...
循环结构
循环着重复做某件事
eg:流水线操作工...
分支结构
多个分支只会走其中一个
# 如果年龄大于30岁 叫阿姨
age = 28
if age > 30:
print('阿姨好')
"""
代码的缩进
1.在python中 我们通过缩进来表示代码的从属关系(缩进一般使用四个空格)
2.并不是所有的代码都可以拥有子代码
判断代码是否缩进可以根据关键符号 冒号
3.子代码可以有多行 并且如果多个子代码属于一个父代码
那么它们的缩进必须是相同的
"""
# 如果年龄大于30岁 叫阿姨 否则叫小姐姐
age = 32
if age > 30:
print('阿姨好')
else:
print('小姐姐')
# 如果:成绩>=90,那么:优秀
# 如果成绩>=80且<90,那么:良好
# 如果成绩>=70且<80,那么:普通
# 其他情况:很差
score = input('score>>>:')
score = int(score) # 将字符串的分数转换成数字
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 70:
print('普通')
else:
print('很差')
语法结构总结
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
# 拔高 if嵌套
# 如果:女人年龄<28岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨
# 如果表白成功则去吃饭看电影 如果失败则走人
age = 24
height = 171
weight = 99
is_beautiful = True
is_success = True
if age < 28 and height > 170 and weight < 100 and is_beautiful:
print('小姐姐 加个微信呗')
if is_success:
print('吃饭 看电影 天黑了')
else:
print('去你妹的 流氓')
else:
print('不好意思 认错人了')
# 用户登录功能
# 先获取用户的用户名和密码
username = input('username>>>:')
password = input('password>>>:')
# 判断用户名和密码是否正确
if username == 'jason' and password == '123':
print('登录成功')
else:
print('用户名或密码错误')
循环结构
while True:
# 先获取用户的用户名和密码
username = input('username>>>:')
password = input('password>>>:')
# 判断用户名和密码是否正确
if username == 'jason' and password == '123':
print('登录成功')
else:
print('用户名或密码错误')
while 条件:
代码1
代码2
代码3
# while的运行步骤:
# 步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3
# 步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3,如果条件为False,则循环终止
# 结束本层循环
break
while True:
# 先获取用户的用户名和密码
username = input('username>>>:')
password = input('password>>>:')
# 判断用户名和密码是否正确
if username == 'jason' and password == '123':
print('登录成功')
while True:
cmd = input('请输入您的指令>>>:')
print('真正指向您的指令:%s'%cmd)
break # 只能结束离它最近的那一层父while循环
break
else:
print('用户名或密码错误')
# 结束本次循环
continue
# 循环大于1-10 但是不包含数字7
count = 1
while count < 11:
# 每次大于之前 先判断count是多少
if count == 7:
count += 1
# 结束本次循环 重新开始下一次循环
continue
print(count)
count += 1
for循环
for循环能够做到的事情 while循环都可以做到
但是for循环使用起来更加的方便(使用频率更高)
for 变量名 in 可迭代对象: # 此时只需知道可迭代对象可以是字符串\列表\字典
代码一
代码二
...
name_list = ['jason','kevin','tony','tom']
# 循环打印列表中的每一个元素
# while
# count = 0
# while count < 4:
# print(name_list[count])
# count += 1
# for
# for i in name_list:
# print(i)
# for循环的变量名 如果没有合适的 一般使用 i j k item等
res = '20岁超越30岁、40岁、50岁人的成就'
for i in res:
print(i) # 就是将字符串里面一个个字符挨个赋值给变量i
user_info = {
'username':'jason',
'password':123,
'hobby':['read','study']
}
for i in user_info:
print(i) # 循环字典只会挨个获取到字典的key
# range方法
# 默认从0开始到9结束
for i in range(10):
print(i)
# 从1开始到9结束
for i in range(1,10):
print(i)
# 从1开始到99结束 并且间隔20
for i in range(1,100,20):
print(i)
数据类型内置方法
"""
查看某个数据类型的内置方法 可以借助于编辑软件自动提示功能
数据类型关键字.
"""
1.整型
int()
2.浮点型
float()
3.字符串
str()
res = 'jasonNB'
1.计算字符串长度
print(len(res)) # 7
2.索引取值(从0开始)
print(res[2]) # s
3.切片操作
print(res[2:5]) # son
4.步长
print(res[2:5:2]) # sn
5.移除字符串首尾的指定字符
name = ' jason '
print(len(name))
res1 = name.strip()
print(res1,len(res1))
username = input('username>>>:').strip()
if username == 'jason':
print('欢迎jason')
else:
print('滚蛋')
name1 = '$$jason$$'
print(name1.strip('$'))
print(name1.lstrip('$'))
print(name1.rstrip('$'))
6.按照指定的字符切割字符串
info = 'jason|123|read'
res = info.split('|')
print(res) # ['jason', '123', 'read']
7.统计字符个数
res = 'jason jason kevin tony'
print(res.count('o'))
8.判断字符串是否是纯数字
print('123'.isdigit())
print('123a'.isdigit())
score = input('score>>>:')
if score.isdigit():
score = int(score) # 将字符串的分数转换成数字
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 70:
print('普通')
else:
print('很差')
else:
print('请输入纯数字')
9.替换字符串
res = 'jason is DSB jason jason jason'
print(res.replace('jason','tony'))
print(res.replace('jason','tony',2))
10.大小写转换及判断
res = 'JaSoN OlDBOy 666'
print(res.upper())
print(res.lower())
print(res.isupper()) # 是否是纯大写
print(res.islower()) # 是否是纯小写
# 列表
name_list = ['jason','egon','tony','kevin']
# 1.统计长度
# print(len(name_list)) # 4
# 2.索引取值 切片操作
# print(name_list[1],name_list[1:4],name_list[-1])
# 3.统计个数
# print(name_list.count('jason'))
# 4.添加元素(重点)
# name_list.append('jack')
# print(name_list) # 尾部追加元素
# name_list1 = ['aaa','bbb','ccc']
# name_list.extend(name_list1) # 扩展列表
# print(name_list)
# name_list.insert(0,'heiheihei')
# print(name_list)
# 5.修改元素
# name_list[0] = 'jasonNB'
# print(name_list)
# 6.删除元素
# name_list.pop() # 尾部弹出
# print(name_list)
# name_list.pop(0) # 自定义索引位置
# print(name_list)
# name_list.remove('tony')
# print(name_list)
# 7.排序
l = [11,77,55,33,66,99,22]
# l.sort() # 升序
l.sort(reverse=True) # 降序
print(l)
可变类型与不可变类型
可变类型
值改变内存地址不变
不可变类型
值改变内存地址肯定改变
res = '$$jason$$'
n = res.strip('$') # 产生了新的数据
print(n)
l = [11,22,33]
print(id(l))
l.append(44)
print(l,id(l))