五、运算符的补充与if语句
1、可变不可变类型
指:对前面所学类型做一个可变和不可变类型的分类
可变类型:值改变,ID不变,证明改的是原值,原值是可以被改变的
不可变类型:值改变,ID也变了,证明是产生新的值,压根没有改变原值,所以证明原值是不可以被修改的
列:
x=10
print(id(x))
x=11
print(id(x)) #最终结果为不同的ID ,所以整型是不可变类型
列:
l=['aaa','bbb','ccc']
print(id(l))
l[0]='AAA'
print(id(l)) #最终结果为相同的ID ,所以列表是可变类型
小结:整型,浮点,字符串都被设计成了不可分割的整体,不能够改变
列表和字典类型是可变类型
布尔是不可变类型
关于字典补充:
定义:{}内用逗号分隔开key:vlaue,其中value可以是任何类型,但是key必须是不可变类型。
列:
msg={[aaa]:malin}
print(msg) #这是语法错误,解释器执行不了,会报错
2、条件
因为我们要判断一个条件是否成立需要一个值去对应它,而这个值就是bool值,因为可以根据它进行判断是
否执行下面的代码。
显式布尔值:True,False
条件可以是:比较运算符
列:
age=18
print(age>16) #条判断之后会得到一个布尔值
条件可以是True,False
列:
is_beautiful == True #直接用True和False作为判断条件
隐式布尔值:所有数据类型,其中0,None,空(空字符串,空列表,空字典)代表的值为False,
其余的都为真
列:
is_beautiful == 0 #代表is_beautiful为假
is_beautiful == 1 #代表is_beautiful为真
3、逻辑运算符
逻辑运算符用于连接多个条件,进行关联判断,会返回True或False有and,or,not。
3.1 not
not把紧跟其后的那个条件结果取反,比如not True为假,not False为真
print(not 16 > 13) #结果为假
print(not 10) #结果为假
print(not 0) #结果为真
print(not None) #结果为真
ps:not与紧跟其后的那个条件是一个不可分割的整体
3.2 and:逻辑与
用来连接左右两个条件,两个条件同时为True,结果才为True。
可以用and连接多个条件会按照从左到右的顺序
依次判断,一旦某个条件为False,则不会再往右
判断,可以立即判定最终结果就为False,只有在
所有条件的结果都为True的情况下,最终结果才
为True。
列:
True and 1 and 10>1 #条件全为真,最终结果为真
not True and 9 #有一个为假,最终结果为假
3.3 or:逻辑或
用来间接左右两个条件,两个条件但凡有一个为True,
最终结果就为True。
可以用or连接多个条件,会按照从左到右的顺序
依次判断,一旦某个条件为True,则不会再往右判
断,可以立即判定最终的结果就为True,只有在所
有条件的结果都为False的情况下,最终结果才为
False。
列:
True or false or 8=1 #其中有一个条件为真,最终的结果就为真
9<3 or not True or 3>9 #只有所有条件都为假,最终的结果采为假
3.4优先级
ps:如果单独就只是一串and连接,或者说单独就只
一串or连接,按照从左到右的顺序一次运行
如果是混合使用就要考虑优先级了
次序:not>and>or
(1) not的优先级最高,就是把紧跟其后的那个条件
结果取反,所以not与紧跟其后的条件不可分割
(2) 如果语句中既有and也有or,那么先用括号把
and的左右两个条件给括起来,然后再进行运行
4、成员运算
in 可以判断某一个对象包含与另外一个对象则返回True否则False
nor in 可以判断某一个对象没有包含
于另外一个对象则返回True否则返回False
适用于字符串,列表,字典
列: print("egon" in "hello egon") # 判断一个字符串是否存在于一个大字符串中
5、身份运算符
is 比较的是ID,两个对象的ID相同则返回True
列:
age=25
age1=22
print(age is age1) #它们的内存地址不同,所以最终结果为False
is not 在两个对象ID不同时会返回True
列:
age=25
age1=22
print(age is not age1) #在这里则会返回True
6、流程控制之if判断
一 引子:
流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构)、分支结构(用到if判断)、循环结构(用到while与for)
二 分支结构
2.1 什么是分支结构
分支结构就是根据条件判断的真假去执行不同分支对应的子代码
2.2 为什么要用分支结构
人类某些时候需要根据条件来决定做什么事情,比如:如果今天下雨,就带伞
所以程序中必须有相应的机制来控制计算机具备人的这种判断能力
if判断是用if关键字来实现分支结构。在if判断中所有的数据类型也都会自动转换成布尔类型
语法一:只有if条件
列:
age=19
if age>16 and age<25:
print('你好')
语法二:if和else搭配
列:
age=19
if age>16 and age<25:
print('你好')
else:
print('走开')
语法三:if,elif搭配
列:
score=int(input('请输入你的成绩'))
if score >90:
print('优秀')
elif score >70:
print('良好')
elif score >50:
print('很差')
语法四:完整搭配if,elif,else
列:
score=int(input('请输入你的成绩'))
if score >90:
print('优秀')
elif score >70:
print('良好')
elif score >50:
print('很差')
else:
print('非常糟糕')
其他:if嵌套if
age = 17
is_beautiful = True
star = '水平座'
if 16 < age < 20 and is_beautiful and star == '水平座':
print('开始表白。。。。。')
is_successful = True
if is_successful:
print('两个从此过上没羞没臊的生活。。。')
else:
print('阿姨好,我逗你玩呢,深藏功与名')
print('其他代码.............')
五、运算符的补充与if语句的更多相关文章
- Lua的五种变量类型、局部变量、全局变量、lua运算符、流程控制if语句_学习笔记02
Lua的五种变量类型.局部变量.全局变量 .lua运算符 .流程控制if语句 Lua代码的注释方式: --当行注释 --[[ 多行注释 ]]-- Lua的5种变量类型: 1.null 表示 ...
- SQL连接查询、变量、运算符、分支、循环语句
连接查询:通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 常用的两个链接运算符: 1.join on 2.union 在关系数据库 ...
- SQL变量、运算符、分支、循环语句
变量: SQL语言也跟其他编程语言一样,拥有变量.分支.循环等控制语句. 在SQL语言里面把变量分为局部变量和全局变量,全局变量又称系统变量. 局部变量: 使用declare关键字给变量声明,语法非常 ...
- 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等
[源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native ...
- MySql(五)SQL优化-优化SQL语句的一般步骤
MySql(五)SQL优化-优化SQL语句的一般步骤 一.优化SQL语句的一般步骤 1.1 通过show status命令了解各种SQL的执行频率 1.2 定位执行效率较低的SQL语句 1.3 通过e ...
- 五个知识体系之-SQL语句大全
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...
- 学JAVA第六天,运算符、表达式、if语句以及for、while、都循环
今天老师讲的内容有点多,但是都是在学C#时学过的,用法都差不多,所以很好理解. 算术运算符:+, - ,* , / ,% ,++ ,-- 关系运算符:>,<,>=,<=,== ...
- 《Python基础教程》 读书笔记 第五章(上)条件语句
5.1 print和import的更多信息 5.1.1使用逗号输出 打印多个表达式也是可行的,只要将它们用逗号隔开就好: >>>print'age:',42 age: 42 要同时输 ...
- C#面向过程之类型转换、算术运算符、关系运算符、逻辑运算符、if-else语句、switch-case、循环结构(while、for)、三元表达式
数据类型转换: int.parse()只能转换string类型的 当参数为null时会报异常int i =Convert.ToInt32(false) 运行结果是0int i =Convert.ToI ...
随机推荐
- WiredTiger运行时参数优化
MongoDB的WiredTiger存储引擎,用了一段时间,遇到了一些问题,通过优化WT参数,也解决了一些问题,做个小结. cache_size 指定WT存储引擎内部cache的内存用量上限. 需要注 ...
- JavaScript的封装和继承
提到JavaScript"面向对象编程",主要就是封装和继承,这里主要依据阮一峰及其他博客的系列文章做个总结. 继承机制的设计思想 所有实例对象需要共享的属性和方法,都放在这个对象 ...
- 使用C#开发pdf阅读器初探(基于WPF,没有使用开源库)
前言 pdf是最流行的版式格式文件标准,已成为国际标准.pdf相关的开源软件非常多,也基本能满足日常需要了.相关商业软件更是林林总总,几乎应有尽有!似乎没必要自己再独立自主开发!但,本人基于以下考虑, ...
- P1097 统计数字
P1097题库链接:https://www.luogu.org/problem/P1097 难度:普及- 算法标签:模拟,排序,概率论 1.桶模拟 O(n) 得分20 由于题目让统计数出现的次数,并按 ...
- PKI详解
预备: 一.密码基元 二.密钥管理 三.PKI本质是把非对称密钥管理标准化 PKI 是 Public Key Infrastructure 的缩写,其主要功能是绑定证书持有者的身份和相关的密钥对(通过 ...
- 关于css 的垂直居中
对于元素的水平居中,我根据我自己之前的一些学习来进行一些总结,如果有不对的地方,欢迎指正~ 一.让大小不固定的元素垂直居中 因为:表格的单元格的特别属性:垂直居中等: `div.parent { di ...
- Ubuntu16.04如何安装bazel?
官方文档:https://docs.bazel.build/versions/master/install-ubuntu.html 我没有使用二进制的安装方法,以下是二进制的安装方法: Install ...
- Kubernetes-PersistentVolumeClaim(PVC)介绍
1 PVC介绍 PVC是用户层面,作为对存储资源的需求申请,主要包括了存储空间大小.访问模式.PV的选择条件.存储类别等信息的设置. 2 PVC的参数详解 2.1 PVC的yaml模板 apiVe ...
- SSM动态切换数据源
有需求就要想办法解决,最近参与的项目其涉及的三个数据表分别在三台不同的服务器上,这就有点突兀了,第一次遇到这种情况,可这难不倒笔者,资料一查,代码一打,回头看看源码,万事大吉 1. 预备知识 这里默认 ...
- seo搜索优化教程10-黑帽SEO
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第十课 学习黑帽SEO并不是教大家如何作弊,而是想让大家避免使用黑帽SEO手法,从而导致被搜 ...