本章内容概要

1.运算符

2.流程控制

本章内容详解

1.运算符

什么是运算符?
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+“

1.1 算数运算符

* ** // % == != 等 详情看上章
x = x + 1 # x += 1
x = x - 1 # x -= 1

1.2 比较运算符

> < == >= <= != 等
x == y
x != y

1.3 赋值运算符

简单赋值
x +=y 等效于 x = x + y
x -=y 等效于 x = x - y
链式赋值:
#赋值多个变量名
x = 10
y = x
z = y
链式赋值一行代码解决:x = y = z =10
交叉赋值:
m = 1
n = 2
#m n 交换
q = m
m = n
n = q
交叉赋值一行代码解决:m,n = n,m
解压赋值:
a, b, c = [11, 22, 33] # 遵循左右两边个数一致
a, *args = [1, 2, 3, 4, 5] # 不遵循

1.4 逻辑运算符

逻辑运算符用于连接多个条件,进行关联判断,会返回布尔值True或False 
and 与
or 或
not 非
and 链接的多个条件必须都成立结果才成立(True)
or 链接的多个条件有一个成立结果就成立(True)
not 将条件取反(原本是对的就变成错的 如果是错的就变成对的)

and

可以用and连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为False,则无需再往右判断,可以立即判定最终结果就为False,只有在所有条件的结果都为True的情况下,最终结果才为True。

1 == 1 and 2 > 10 and 3!=6 and True and 10 < 2
# False

or

可以用or连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为True,则无需再往右判断,可以立即判定最终结果就为True,只有在所有条件的结果都为False的情况下,最终结果才为False

1 != 1 or 2==2 or False or 3 < 2 or 10 < 1
# True

not

print(not True)
print(not False)
# False
# True

混用and、or、not

# 三者如果混合使用 其实是有优先级的!!!用()来区分优先级
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) # 合理

1.5 成员运算符

in                在什么什么之内
not in 不在什么什么之内
例:    
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默认不暴露给外界'''

1.6 身份运算符

is      判断数据值的内存地址是否一致
== 判断数据值得值是否一致 地址无所谓
id() 该方法会返回一串数字 相当于内存地址
例:  
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 判断内存地址
"""
值相等 内存地址可能不等
内存地址相等 值肯定相等(单次程序中)
"""
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编辑工具也会做更多的优化处理(上述代码使用解释器直接运行 地址不一样)"""

2.流程控制

2.1 流程控制理论

流程控制的概念

本质就是事物的执行流程 事物的执行流程总共就三种

1.顺序结构

从上往下依次执行,之前我们写的代码都是顺序结构

2.分支结构

根据条件的不同执行不同的代码,用到if判断

3.循环结构

根据条件的判断绝对是否一直做某件事,用到while与for

2.2 流程控制结构

1.python中使用代码的缩进来表示代码的从属关系
缩进的代码是否运行取决于上面没有缩进的父代码(结尾有冒号)
2.缩进量其实没有要求 只要缩进了即可
但是为了美观 一般推荐使用四个空格
3.并不是所有的代码都可以拥有子代码
if关键字 else关键字 elif关键字 ( elif else不能单独使用)
4.同属于一个父代码的多行子代码应该保证相同的缩进量
如果代码缩进了 那就必须往上找一个缩进量比它小的代码作为父代码
这个父代码如果可以拥有子代码 那么没有问题 不可以则直接报错
5.相同缩进量的代码彼此之间没有主次之分 都是按照顺序依次执行

2.2.1 顺序结构

 从上往下依次执行,之前我们写的代码都是顺序结构

流程图

2.2.2 分支结构

在python中如果想要编写分支结构 那么需要使用关键字if,分支结构就是根据条件判断的真假去执行不同分支对应的子代码

2.2.2.1 单if 分支
if 条件:
条件成立执行执行的代码(子代码)
# 条件可以是布尔值 也可以是表达式
# 判断的条件可以是一个 也可以是有逻辑运算符连接的多个
例:
# 1.定义女人的年龄
age = 28
# 2.判断女人的年龄
if age < 30:
print('小姐姐你好呀!!!')
2.2.2.2 if...else 分支
if 条件:
条件成立之后执行的子代码
else:
条件不成立执行的子代码
# 判断的条件可以是一个 也可以是由逻辑运算符连接的多个
例:
# 模拟用户登录功能
# 1.获取用户名和密码
name = input('name>>>:')
password = input("password>>>:")
# 2.判断用户名和密码是否正确(目前只能写死)
# if name == 'zhang' and password == 123: # python中不同数据类型之间无法直接做比较
if name == 'zhang' and password == '123':
print("贵宾一位")
else:
print("滚蛋")

流程图

2.2.2.3 if...elif...else 分支
if...elif...else分支
if 条件1:
条件1成立执行的子代码
elif 条件2:
条件1不成立 条件2成立执行的子代码
elif 条件3:
条件1和2都不成立 条件3成立执行的子代码
else:
上述所有的条件都不成立执行的子代码
# if elif else三者连用 永远只会走一个分支
# elif 和 else都不能单独使用 必须结合if
例:
# 如果成绩大于90打印优秀 大于80打印良好 大于70打印一般 大于60打印及格 其他打印挂科
score = 92
if score > 90:
print("优秀")
elif score > 80:
print("良好")
elif score > 70:
print("一般")
elif score > 60:
print("及格")
else:
print("挂科")

流程图

2.2.2.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.女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨好

# 1.定义女人年龄,身高,体重
age = 18
height = 180
weight = 90
is_beautiful = True
# 2.判断
if 18 <= age < 22 and height > 170 and weight < 100 and is_beautiful:
print("表白")
else:
print("阿姨好")

2.根据用户输入内容打印其权限
'''
jason --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
'''

# 1.定义用户
name = input("请输入您的用户名>>>:")
# 2.判断
if name == 'jason':
print("超级管理员")
elif name == 'tom':
print("普通管理员")
elif name == 'jack' or name == 'rain':
print("业务主管")
else:
print("普通用户")

3.编写用户登录程序

要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
eg:black_user_list = ['jason','kevin','tony']
如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
eg: oscar 123

# 先定义黑名单
black_name_list = ['jason', 'kevin', 'tony']
# 获取用户名
username = input("username>>:")
# 判断
if username not in black_name_list:
password = input("password>>:")
if username == 'zhang' and password == '123':
print("登录成功")
else:
print("账号或密码错误")
else:
print("你已加入黑名单")

【python基础】第06回 运算符和流程控制 1的更多相关文章

  1. 『Python基础』第6节:流程控制之while循环

    在生活中经常遇到循环的事情, 比如循环列表播放歌曲等. 在Python中, 也有循环, 就是其流程控制语句while. 1. 基本循环 while 条件: 循环体 # 如果条件为真, 那么就执行循环体 ...

  2. Python基础一(格式化输出、流程控制)

    (1)格式化输出(%% 第一个% 转译) # 格式化 输入 输出 name = input("Name:") age = input("Age:") job = ...

  3. 【python基础】第07回 运算符和流程控制 2

    本章内容概要 1.逻辑运算符补充 2.循环结构 本章内容详解 1.逻辑运算符补充 两边都不为0的情况 or 直接取前面的值 and 直接取后面的值如果存在0的情况 and 直接取0 or 直接取非0 ...

  4. python基础02—运算符与流程控制

    运算符与流程控制 运算符 赋值运算 用'='表示,'='的左边只能是变量 算术运算 +.-.*:加.减.乘 /:除法运算,运算结果为浮点数 //:除法运算,运算结果为整数(商) %:求余 **:求幂 ...

  5. Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)

    I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量                env:环境变量 常用系统变量: path pwd lang home his ...

  6. Python基础篇(格式化输出,运算符,编码):

    Python基础篇(格式化输出,运算符,编码): 格式化输出: 格式:print ( " 内容%s" %(变量)) 字符类型: %s  替换字符串      %d 替换整体数字  ...

  7. 第二十二节:Java语言基础-详细讲解位运算符与流程控制语句

    位运算符(二进制位运算) 运算符 运算 例子 << 左移 3 << 2 = 12 --> 3 * 2 * 2 =12 >> 右移 3 >> 1 = ...

  8. python 运算符与流程控制

    运算符与流程控制 运算符 赋值运算 用'='表示,'='的左边只能是变量 算术运算 +.-.*:加.减.乘 /:除法运算,运算结果为浮点数 //:除法运算,运算结果为整数(商) %:求余 **:求幂 ...

  9. 格式化输出的三种方式,运算符及流程控制之if判断

    ''' 格式化输出的三种方式,运算符及流程控制之if判断 ''' # 格式化输出的三种方式 # 一.占位符 程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式 比如要求用户输入用户名和年龄 ...

随机推荐

  1. zabbix监控SSL证书有效期

    想给公司网站加上证书的监控,发现agent无此监控项.科普之后发现需要自行添加脚本以及一些操作. 环境信息 系统版本: Ubuntu20.04 zabbix server版本:5.4 (这个自定义貌似 ...

  2. css 实现输入效果

    <template>   <h1>Pure CSS Typing animation.</h1> </template> <script> ...

  3. 网络协议自动化逆向工具开山鼻祖discoverer 分析

    本文系原创,转载请说明出处:信安科研人 也可关注微信公众号:信安科研人 原论文发表在2007年的USENIX上,链接如下:https://www.usenix.org/legacy/event/sec ...

  4. es6 class解析

    直入主题.源代码如下: class A{ aName = 'A' constructor(aAge){ this.aAge = aAge } static aStatic = 'aStatic' } ...

  5. Java语言学习day37--8月12日

    今日内容介绍1.List接口2.Set接口3.判断集合唯一性原理 ###01List接口的特点 A:List接口的特点: a:它是一个元素存取有序的集合. 例如,存元素的顺序是11.22.33.那么 ...

  6. Ranchar中PostgreSQL容器异常 53100: could not resize shared memory segment ... bytes: No space left on device

    问题: 客户查报表时描述查询一天的报表能出来,查询一个月的报表不能出来 分析原因: 从下图的异常中分析是PostgreSQL 的共享内存过小,容器默认的/dev/shm大小为64M 解决方案:调整ra ...

  7. 普罗米修斯!Ubuntu下prometheus监控软件安装使用

    *Prometheus* 是一个开源的服务监控系统和时间序列数据库 官方网站:prometheus.io 一.安装prometheus cd /usr/local/        #进入安装目录 wg ...

  8. 跟我读CVPR 2022论文:基于场景文字知识挖掘的细粒度图像识别算法

    摘要:本文通过场景文字从人类知识库(Wikipedia)中挖掘其背后丰富的上下文语义信息,并结合视觉信息来共同推理图像内容. 本文分享自华为云社区<[CVPR 2022] 基于场景文字知识挖掘的 ...

  9. 记将一个大型客户端应用项目迁移到 dotnet 6 的经验和决策

    在经过了两年的准备,以及迁移了几个应用项目积累了让我有信心的经验之后,我最近在开始将团队里面最大的一个项目,从 .NET Framework 4.5 迁移到 .NET 6 上.这是一个从 2016 时 ...

  10. Linux中文件/文件系统的压缩、打包和备份总结(基于rhel7)

    文件/文件系统的压缩.打包 Linux有哪些压缩工具可供选择 按压缩比:xz>bzip2>gzip,按压缩时长:gzip>bzip2>xz,另外还有zip可以选择. gzip只 ...