python课堂整理day07
作者:互联网
今日内容概要
- 运算符补充
- 流程控制理论
- 流程控制详细语法(很重要!)
今日内容详细
知识补充
输入输出在python2和python3中的区别
1.输入的区别
python3只有一个input(),并且都转成字符串类型
python2有两个获取用户输入的方式
1.input()输入的数据必须自己加上数据的特征,输啥就是啥
name = input('name>>>:')
name>>>:123
>>> type(name)
<type 'int'>
还能够识别一些简单的代码(了解即可)
2.raw_input() 等价于python3里面的input,接收的数据都会转成字符串
2.输出的区别
python3只有print()一种用法
python2有两种用法 print print()
运算符补充
1.逻辑运算符
1.逻辑运算符
and 与
or 或
not 非
上述三个运算符都是用来配合条件一起使用
and链接的多个条件必须都成立结果才成立(True),两个为真才为真
or链接的多个条件有一个成立结果就成立(True),两个为假才为假
not将条件取反(原本是对的就变成错的,如果是错的多就变成对的),真变假,假变真
2.实战演练
1.and
1 == 1 and 2 > 10 and 3 != 6 and true and 10 < 2
如果所有的连接符号都是and,那么判断的时候非常简单,只要有一个不符合,后面都不需要再看,结果肯定不成立
举例
print(2>0 and 5>0)
print(2>0 and 5<0)
print(2<0 and 5>0)
print(2<0 and 5<0)
终端输出
True
False
False
False
记忆口诀:两个为真才为真
2.or
1 != 1 or 2==2 or false or 3 < 2 or 10 < 1
如果所有的连接符号都是or,那么判断的时候非常简单,只要有一个符合,后面也不用看了,结果肯定成立
举例
print(2>0 or 5>0)
print(2>0 or 5<0)
print(2<0 or 5>0)
print(2<0 or 5<0)
终端输出
True
True
True
False
记忆口诀:两个为假才为假
3.not
举例
print(not True)
print(not False)
终端输出
False
True
记忆口诀:真变假,假变真
3.注意事项
三者如果混合使用,其实是有优先级的!
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) # 合理
2.成员运算符
1.成员运算符
in 在什么什么之内
not in 不在什么什么之内
2.实战演练
l1 = ['jason', 'kevin', 'tony', 'oscar', 'jerry']
# 判断某个人名在不在班级学生名单中(判断某个个体在不在某个群体内)
print('jason' in l1) # True
print('ja' in l1) # False
print('jason kevin' in l1) # False
'''列表在做成员运算的时候最小单位是数据值整体 不能再拆分也不能合并'''
s1 = 'hello big baby!'
print('h' in s1) # True
print('he' in s1) # True
print('hell' in s1) # True
print('hello' in s1) # True
'''字符串在做成员运算的时候最小单位是单个字符 也可以增加字符个数'''
d1 = {'name': 'jason', 'pwd': 123}
print('jason' in d1) # False
print(123 in d1) # False
print('name' in d1) # True
print('pwd' in d1) # True
'''字典在做成员运算的时候只有K会参与运算 V默认不暴露给外界'''
not in是in的逆运算,其使用语法与in类似,只是结果相反
3.身份运算
1.身份运算
is 判断数据值的内存地址是否一致
== 判断数据值得值是否一致,地址无所谓
2.知识储备
id() 该方法会返回一串数字,相当于内存地址
3.实战演练
l1 = [11, 22, 33, 44]
l2 = [11, 22, 33, 44]
print(id(l1)) # 2768135836544
print(id(l2)) # 2768135831424
print(l1 == l2) # True 只判断值
print(l1 is l2) # False 判断内存地址
值相等 内存地址可能不等
内存地址相等 值肯定相等(单次程序中)
4.python内存优化
# l1 = 10
# l2 = 10
# print(id(l1)) # 140707857893312
# print(id(l2)) # 140707857893312
"""python针对数据量比较小的并且经常使用的数据会做内存优化:小整数池"""
l1 = 9999999
l2 = 9999999
print(id(l1), id(l2)) # 1271940823728 1271940823728
"""有时候IDE编辑工具也会做更多的优化处理(上述代码使用解释器直接运行 地址不一样)"""
流程控制理论
流程控制的概念
本质就是事物的执行流程,事物的执行流程总共就三种
1.顺序结构:就是让程序按照从头到尾的顺序依次执行每一条 Python 代码,不重复执行任何代码,也不跳过任何代码
2.分支结构:就是让程序“拐弯”,有选择性的执行代码;换句话说,可以跳过没用的代码,只执行有用的代码
3.循环结构:就是让程序“杀个回马枪”,不断地重复执行同一段代码
储备知识
1.python中使用代码的缩进来表示代码的从属关系,缩进的代码是否运行取决于上面没有缩进的父代码(结尾有冒号)
2.缩进量其实没有要求,只要缩进了即可,但是为了美观一般推荐使用四个空格
3.并不是所有的代码都可以拥有子代码
if关键字 else关键字 elif关键字 (elif else不能单独使用)
4.同属于一个父代码的多行子代码应该保证相同的缩进量,如果代码缩进了,那就必须往上找一个缩进量比它小的代码作为父代码,这个父代码如果可以拥有子代码,那么没有问题,不可以则直接报错
5.相同缩进量的代码彼此之间没有主次之分,都是按照顺序依次执行
流程控制之分支结构
在python中如果想要编写分支结构,那么需要使用关键字if
1.单if分支
if条件:条件成立执行执行的代码(子代码)
条件可以是布尔值,也可以是表达式
判断的条件可以是一个,也可以是由逻辑运算符连接的多个
实战演练
1.定义女人的年龄
age = 28
2.判断女人的年龄
if age < 30:
print('小姐姐你好呀!!!')
2.if...else分支
if条件:条件成立之后执行的子代码
else:条件不成立执行的子代码
判断的条件可以是一个,也可以是由逻辑运算符连接的多个
1.获取用户名和密码
name = input('name>>>:')
pwd = input('pwd>>>:')
2.判断用户名和密码是否正确(目前只能写死)
# if name == 'jason' and pwd == 123: # 这样错误
if name == 'jason' and pwd == '123': # python中不同数据类型之间无法直接做比较
print('贵宾一位')
else:
print('没钱滚蛋')
3.if...elif...else分支
if 条件1:
条件1成立执行的子代码
elif 条件2:
条件1不成立,条件2成立执行的子代码
elif 条件3:
条件1和2都不成立,条件3成立执行的子代码
else:
上述所有的条件都不成立执行的子代码
if elif else三者连用,永远只会走一个分支
elif 和 else都不能单独使用,必须结合if
score = int(input('请输入学生的成绩:'))
#input获取的都是字符串,做类型转换
if score/100 >= 90:
print('好学生')
elif score/100 >=80:
print('中等生')
elif score/100 >=60:
print('中下等学生')
else:
print('差学生')
4.if的嵌套使用
在大街上看到一个漂亮的背影 上去要微信
如果要微信成功了 则邀请她去看电影(她可能拒绝 也可能接受)
如果接受了则继续吃饭 逛街 等待天黑!!!
1.先定义出各种条件
is_wechat = True
is_movie = True
is_agree = False
is_xxx = True
2.条件判断
if is_wechat:
print('要微信成功了')
if is_movie:
print('要去看电影了 找个后排座位 视野好')
if is_agree and True:
print('吃饭 逛街 天黑了!!!')
else:
print('你个臭流氓!!!')
else:
print('看电影多无聊!!!')
else:
print('你个癞蛤蟆!!!')
作业1
作业2
作业3
标签:name,python,代码,day07,else,l1,print,课堂,True 来源: https://www.cnblogs.com/wanjinalei/p/16398518.html