1:可变不可变类型

2、什么是条件?什么可以当做条件?为何要要用条件?
显式布尔值:True、False
隐式布尔值:所有数据类型,其中0、None、空为假

3:逻辑运算符:用来
# not、 and 、 or
# 区分优先级:not > and > or

4、成员运算符

5、身份运算符

6、流程控制之if判断

# 一、可变不可变类型

# 可变类型:值改变,id不变,证明改的是原值,证明原值是可以被改变的
# 不可变类型:值改变,id也变了,证明是产生新的值,压根没有改变原值,证明原值是不可以被修改的

# 2、验证
# 2.1 int是不可变类型
# x=10
# print(id(x))
# x=11 # 产生新值
# print(id(x))

# 2.2 float是不可变类型
# x=3.1
# print(id(x))
# x=3.2
# print(id(x))

# 2.3 str是不可变类型
# x="abc"
# print(id(x))
# x='gggg'
# print(id(x))

# 小结:int、float、str都被设计成了不可分割的整体,不能够被改变

# 2.4 list是可变类型
# l=['aaa','bbb','ccc']
# print(id(l))
# l[0]='AAA'
# print(l)
# print(id(l))

# 2.5 dict
# dic={'k1':111,'k2':222}
# print(id(dic))
# dic['k1']=3333333333
# # print(dic)
# print(id(dic))

#2.6 bool不可变

# 关于字典补充:
# 定义:{}内用逗号分隔开多key:value,
# 其中value可以是任意类型
# 但是key必须是不可变类型

# dic={
# 'k1':111,
# 'k2':3.1,
# 'k3':[333,],
# 'k4':{'name':'egon'}
# }
#
# dic={
# 2222:111,
# 3.3:3.1,
# 'k3':[333,],
# 'k4':{'name':'egon'}
# }
# print(dic[3.3])

# dic={[1,2,3]:33333333}
# dic={{'a':1}:33333333}

# 二、什么是条件?什么可以当做条件?为何要要用条件?
# 第一大类:显式布尔值
# 2.1 条件可以是:比较运算符
# age = 18
# print(age > 16) # 条件判断之后会得到一个布尔值

# 2.1 条件可以是:True、False
# is_beautiful=True
# print(is_beautiful)

# 第二大类:隐式布尔值,所有的值都可以当成条件去用
# 其中0、None、空(空字符串、空列表、空字典)=》代表的布尔值为False,其余都为真

# 三:not、and、or的基本使用
# not:就是把紧跟其后的那个条件结果取反
# ps:not与紧跟其后的那个条件是一个不可分割的整体
# print(not 16 > 13)
# print(not True)
# print(not False)
# print(not 10)
# print(not 0)
# print(not None)
# print(not '')

# and:逻辑与,and用来链接左右两个条件,两个条件同时为True,最终结果才为真
# print(True and 10 > 3)

# print(True and 10 > 3 and 10 and 0) # 条件全为真,最终结果才为True
# print( 10 > 3 and 10 and 0 and 1 > 3 and 4 == 4 and 3 != 3) # 偷懒原则

# or:逻辑或,or用来链接左右两个条件,两个条件但凡有一个为True,最终结果就为True,
# 两个条件都为False的情况下,最终结果才为False
# print(3 > 2 or 0)
# print(3 > 4 or False or 3 != 2 or 3 > 2 or True) # 偷懒原则

# 二:优先级not>and>or
# ps:
# 如果单独就只是一串and链接,或者说单独就只是一串or链接,按照从左到右的顺讯依次运算即可(偷懒原则)
# 如果是混用,则需要考虑优先级了

# res=3>4 and not 4>3 or 1==3 and 'x' == 'x' or 3 >3
# print(res)
#
# # False False False
# res=(3>4 and (not 4>3)) or (1==3 and 'x' == 'x') or 3 >3
# print(res)

res=3>4 and ((not 4>3) or 1==3) and ('x' == 'x' or 3 >3)
print(res)

# 四.成员运算符与身份运算符
# 1、成员运算符
# print("egon" in "hello egon") # 判断一个字符串是否存在于一个大字符串中
# print("e" in "hello egon") # 判断一个字符串是否存在于一个大字符串中

# print(111 in [111,222,33]) # 判断元素是否存在于列表

# 判断key是否存在于字典
# print(111 in {"k1":111,'k2':222})
# print("k1" in {"k1":111,'k2':222})

# not in
# print("egon" not in "hello egon") # 推荐使用
# print(not "egon" in "hello egon") # 逻辑同上,但语义不明确,不推荐

# 2、身份运算符
# is # 判断的是id是否相等 还有 is not
x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False

x = 5
d = 5
print(x is d)

# 五.流程控制之if判断

# print(1)
# print(2)
# print(3)
# if 条件:
# 代码1
# 代码2
# 代码3
# print(4)
# print(5)
'''
语法1:
if 条件:
代码1
代码2
代码3

'''
# age = 60
# is_beautiful = True
# star = '水平座'
#
# if age > 16 and age < 20 and is_beautiful and star == '水平座':
# print('我喜欢,我们在一起吧。。。')
#
# print('其他代码.............')

'''
语法2:
if 条件:
代码1
代码2
代码3
else:
代码1
代码2
代码3
'''

# age = 60
# is_beautiful = True
# star = '水平座'
#
# if age > 16 and age < 20 and is_beautiful and star == '水平座':
# print('我喜欢,我们在一起吧。。。')
# else:
# print('阿姨好,我逗你玩呢,深藏功与名')
#
# print('其他代码.............')

'''
语法3:
if 条件1:
代码1
代码2
代码3
elif 条件2:
代码1
代码2
代码3
elif 条件2:
代码1
代码2
代码3
'''
# score=73
# if score >= 90:
# print('优秀')
# elif score >= 80 and score < 90:
# print('良好')
# elif score >= 70 and score < 80:
# print('普通')

# 改进
# score = input('请输入您的成绩:') # score="18"
# score=int(score)
#
# if score >= 90:
# print('优秀')
# elif score >= 80:
# print('良好')
# elif score >= 70:
# print('普通')

'''
语法3:
if 条件1:
代码1
代码2
代码3
elif 条件2:
代码1
代码2
代码3
elif 条件2:
代码1
代码2
代码3
...
else:
代码1
代码2
代码3
'''
# score = input('请输入您的成绩:') # score="18"
# score=int(score)
#
# if score >= 90:
# print('优秀')
# elif score >= 80:
# print('良好')
# elif score >= 70:
# print('普通')
# else:
# print('很差,小垃圾')
#
# 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('其他代码.............')

day06可变与不可变类型,if判断,运算符的更多相关文章

  1. Python编程Day5——可变与不可变类型、数据类型整合

    一.可变与不可变类型1.可变类原值型:只改变,但id不变,证明就是在改变原值,是可变类型2.不可变类型:值改变,但id也跟着改变,证明是产生了新的值,是不可变类型 x= print(id(x)) x= ...

  2. iOS中怎么判断可变和不可变的坑(更正版)

    iOS中怎么判断可变和不可变的坑 怎么判断NSString和NSMutableString呢 看题 BOOL result = [" isKindOfClass:[NSMutableStri ...

  3. 可变与不可变类型数据,列表的copy方法

    我们先来了解一下可变与不可变类型的数据 (1)可变类型:列表,字典(内存中的数据允许被修改) 不可变类型:数字,字符串,元组(内存中的数据不允许被修改) 接着我们通过一个实例来看一看可变与不可变类型数 ...

  4. Python可变与不可变类型及垃圾回收机制

    1. 可变与不可变类型 1.1  可变类型 在id不变的情况下,value可以改变,则称之为可变类型.列表.字典与集合是可变的. l1 = [,,,,] print(id(l1)) l1[] = #改 ...

  5. 通过char与varchar的区别,学习可变长的字符类型

    转自http://www.uphtm.com/database/232.html 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

  6. python基础之pip、.pyc、三元运算、进制、一切皆对象、可变与不可变类型

    一.pip(下载工具==yum) 1.重点(必须掌握的) 列出已安装的包 pip list 安装要安装的包 pip install xxx 安装特定版本 pip install django==1.1 ...

  7. python中的可变与不可变对象

    Python中的可变对象和不可变对象 什么是可变/不可变对象 不可变对象,该对象所指向的内存中的值不能被改变.当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一 ...

  8. python 基础使用list、dict、set、可变与不可变对象

    参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017104324028448 dict是字典,可以储存键值对类型的值,set与dict ...

  9. python引用在函数传参时的体现以及可变与不可变对象的对比

    今天偶然看到 vamei 老师的博客 http://www.cnblogs.com/vamei/archive/2012/07/10/2582795.html 讲的是python动态类型以及引用的事儿 ...

  10. 关于:1.指针与对象;2.深浅拷贝(复制);3.可变与不可变对象;4.copy与mutableCopy的一些理解

    最近对深浅拷贝(复制)做了一些研究,在此将自己的理解写下来,希望对大家有所帮助.本人尚处在摸索阶段,希望各位予以指正. 本文包括如下方向的探索: 1.指针与对象: 2.深/浅拷贝(复制): 3.可变/ ...

随机推荐

  1. springboot shiro ehcache redis 简单使用

    引入相关pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  2. Caused by: java.io.FileNotFoundException: class path resource [../../resources/config/spring.xml] cannot be opened because it does not exist

    在尝试使用Spring的Test的时候遇到了这个错误 原来的代码: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(loca ...

  3. BCM93349DCM 手动升级 Fireware 指导

    PC:Personal Computer(这里用的Win7) CM:Cable MODEM(芯片:BCM93349DCM) 一.预置条件 1.PC上已安装TFTP Server,比如tftpd32: ...

  4. android记帐本、涂鸦、仿腾讯新闻、仿bilibili、Markdwon便签、资讯APP等源码

    Android精选源码 kotlin版仿哔哩哔哩动画Android客户端源码 android实现图片涂鸦效果源码 Android 开源记账本项目源码 android高仿腾讯新闻app源码 androi ...

  5. SQL数据库的查询方法

    简单查询: 一.投影 select * from 表名 select 列1,列2... from 表名 select distinct 列名 from 表名 二.筛选 select top 数字 列| ...

  6. 收集到的技术相关网址——python

    1.Python中常用数据库访问接口模块 专用数据库连接模块——MySQL.SQLite.PostgreSQL.Oracle.IBM DB2.Infomix.Interbase.Sybase.SQL ...

  7. python学习笔记(2)数据类型-字符串

    字符串是 Python 中最常用的数据类型.我们可以使用引号( ' 或 " )来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' ...

  8. SPSS|Data|Transfer|Analysis|Label|One sample test|Testval|Criables|

    生物统计与实验设计-使用SPSS Data用于整合:Transfer用于预处理:Analysis用于数据的二维呈现:Label是在报表中呈现的名字: 给离散值编码: 对于离散值做数学计算: 均值比较用 ...

  9. python3下scrapy爬虫(第二卷:初步抓取网页内容之直接抓取网页)

    上一卷中介绍了安装过程,现在我们开始使用这个神奇的框架 跟很多博主一样我也先选择一个非常好爬取的网站作为最初案例,那么我先用屌丝必备网站http://www.shaimn.com/xinggan/作为 ...

  10. Win32双缓冲画图原理

    网上有许多文章讲述了如何使用Visual C++程序实现双缓冲,都是用C++面向对象语言写的,可能对很多没有接触过面向对象语言的C语言初学者来说理解起来有些困难,并且有些好心人也只是把源代码贴上去,不 ...