python小白——进阶之路——day3天-———运算符
(1)算数运算符: + - * / // % **
(2)比较运算符: > < >= <= == !=
(3)赋值运算符: = += -= *= /= //= %= **=
(4)成员运算符: in 和 not in (针对于容器型数据)
(5)身份运算符: is 和 is not (检测两个数据在内存当中是否是同一个值)
(6)逻辑运算符: and or not
(7)位运算符: & | ~ ^ << >>
# 1. 算数运算符: + - * / // (地板除) % **(幂运算)
var1 = 7
var2 = 4
# +
res = var1 + var2
print(res)
# -
res = var1 -var2
print(res)
# *
res = var1 * var2
print(res)
# / (结果是一个小数)
res = var1 / var2
res = 8 / 8
print(res)
# // (取整数) 两个数在进行地板除的时候,有一个数是小数,就在最后的结果上加.0
res = var1 // var2
res = 8 // 8
res = 28.7 // 5
print("<===>")
res = 28 // 5.3
print(res)
# %
res = var1 % var2
res = 99 % 7
# -1 + 7 = 6 (余数)
res = -99 % 7
# 1 + (-7) = -6 (余数)
res = 99 % -7
print(res)
# ** var1 * var1 * var1 7*7*7 **是所有运算符 优先级最高的一个
res = var1 ** 3
print(res)
# ###(2)比较运算符: > < >= <= == !=
'''比较运算符只会产生2个结果 要么True 要么False'''
# >
var1 = 15
var2 = 18
res = var1 > var2
print(res)
# <
res = var1 < var2
print(res)
# >= 只要满足一个条件即为真
res = var1 >= 15
print(res)
# <=
res = var1 <= 15
print(res)
# == *****
res = var1 == var2
print(res)
# != *****
res = var1 != var2
print(res)
# ### 3.赋值运算符 = += -= *= /= //= %= **=
# = 所有运算符当中 等号的优先级最低
var1 = 9
var2 = 5
res = var1
# print(res)
# +=
# var1 += var2
'''var1 = var1 + var2'''
# print(var1)
# -=
# var1 -= var2
'''var1 = var1 - var2'''
# print(var1)
# *=
# var1 *= var2
'''var1 = var1 * var2'''
# print(var1)
# /=
# var1 /= var2
'''var1 = var1 / var2'''
# print(var1)
# //=
# var1 //= var2
'''var1 = var1 // var2'''
# print(var1)
# %=
# var1 %= var2
'''var1 = var1 % var2'''
# print(var1)
# **=
var1 **= var2
'''var1 = var1 ** var2'''
print(var1)
# ###4.成员运算符 in not in 针对于容器类型数据
# str 字符串需要是一个连续的片段
strvar = "如果遇到你是一种错,我宁愿一错再错"
res = "你" in strvar
res = "遇到" not in strvar
res = "我一" in strvar
print(res)
# list tuple set
listvar = ["张胜男","张三","李四"]
res = "达到" in listvar
print(res)
tuplevar = "张三","李四","王五"
res = "王大" not in tuplevar
print(res)
setvar = {'王五','张三"'}
res = "王五" in setvar
print(res)
# dict 注意 : 判断的是键 不是值
dictvar = {"zdx":"王五","gss":"张三","mlh":"李四"}
res = "李四" in dictvar
res = "mlh" not in dictvar
print(res)
# ### 身份运算符 is is not
"""
var1 = 56
var2 = 56
res = var1 == var2 (判断两个值是否相等)
res = var1 is var2 (判断两个值得地址是否相等)
"""
# Number
# int -5 ~ 正无穷
var1 = 56
var2 = 56
res = var1 is var2
print(res)
# float 非负数
var1 = -99
var2 = -99
print(var1 is not var2)
# bool
var1 = True
var2 = False
print(var1 is var2)
# complex
var1 = 5+6j
var2 = 5+6j
print(var1 is not var2)
# 容器类型数据 () 相同的字符串 剩下所有的容器类型数据地址都不一样
var1 = ()
var2 = ()
print(var1 is var2)
var1 = "机"
var2 = "机"
print(var1 is not var2)
# ### 6. 逻辑运算符 (and or not)
# (1)and 逻辑与
'''全真则真,一假则假'''
res = True and True
res = False and True
res = False and False
res = True and False
print(res)
# (2)or 逻辑或
'''全假则假,一真则真'''
res = True or True
res = True or False
res = False or True
res = False or False
print(res)
# (3)not 逻辑非 相当于取反
res = not True
res = not False
print(res)
# (4)逻辑短路
'''
False and 布尔 在and左边如果时False 逻辑短路 右侧不执行
True or 布尔 在or左边如果是True 逻辑短路 右侧不执行
在开发当中 ,当成"开关"使用
# res = False and False
'''
False and print(123) #逻辑短路
True or print(456) #逻辑短路
True and print(789)
# res = print(456)
# print(res)
# 逻辑运算符的优先级
''' () > not > and > or '''
# res = 6 and 7
# res = True and True
# print(res)
# res = 5 or 6 and 7
# res = 5 or True
# res = 5 or True
# (1)
res = 5 or 6 and 7
print(res)
# (2)
res = (5 or 6) and 7
print(res)
# (3)
res = not(5 or 6) and 7
print(res) # False
'''
5 or 6 => 5
not 5 and 7
False and 7
'''
# (4)
res = 3>1 or 4<5 and 6>9 or 8==10
# True or True and False or False
# True or False or False
# True or False
print(res)
# 数据类型的判断 isinstance
'''
isinstance(要判断的值,(数据类型1,数据类型2,数据类型3,.....))
最终的返回值要么是True 要么是False
int float bool complex str list set tuple dict
'''
var1 = 6
res = isinstance(var1,int)
print(res)
var2 = "你好"
# 只要类型元组里面含有这个数据类型,即为真
res = isinstance(var2,(set,list,tuple))
print(res)
# ### 7.位运算符 (& | ^ << >> ~)
# 按位与 &
var1 = 19
var2 = 15
res = var1 & var2
print(res)
"""
000000010011
000000001111
000000000011
"""
# 按位或 |
res = var1 | var2
print(res)
'''
000000010011
000000001111
000000011111
'''
# 按位异或 ^ "如果两者不相同,返回真,两者相同返回假
res = var1 ^ var2
print(res)
'''
000000010011
000000001111
000000011100
'''
# << 相当于 5 乘以 2的2次幂
res = 5 << 2
res = 4 << 3
print(res) # 20
"""
000000101
000010100
"""
# >> 相当于 5 除以 2的1次幂
res = 5 >> 1
print(res)
"""
0000101
0000010
"""
# ~ 按位非 (针对于补码来进行操作 ,连符号位都要改变) 公式 -(n+1)
res = ~19
print(res)
"""
000000000010011 (补码)
111111111101100 (按位非)
111111111101100 (给补码求原码)
100000000010011 (反码)
100000000010100 (原码) => -20
"""
res = ~(-19)
print(res)
'''
100000000010011 (原码)
111111111101100 (反码)
111111111101101 (补码)
按位非操作的是补码
111111111101101 (补码)
000000000010010 (按位非得值)
000000000010010 (原码 == 反码 == 补码)
'''
"""
所有运算符的优先级:
(1) 小括号的优先级最高 () => (3+3)*5
(2)
一元运算符:同一时间操作一个数的 ( ~ , - ) -6
二元运算符: 同一时间操作二个数的
** 符号优先级最高
= 符号优先级最低
整体来说,一元运算符优先级大于二元运算符 , ** 除外
乘,除 > 加减
() > not > and > or
(<< >> ) > & > ^ > |
除此之外剩下的运算符参考以下:
算术运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符
赋值运算符单独拿出来 , 用来把最后的结果进行赋值的
"""
"""
res = 5+5 << 6 // 3 is 40 and True
res = 5+5 << 2 is 40 and True
res = 10 << 2 is 40 and True
res = 40 is 40 and True
res = True and True
res = True
print(res)
"""
python小白——进阶之路——day3天-———运算符的更多相关文章
- python小白——进阶之路——day3天-———容器类型数据+Number类型强制类型转换
-->Number 部分 int : 整型 浮点型 布尔类型 纯数字字符串 float: 整型 浮点型 布尔类型 纯数字字符串 complex: 整型 浮点型 布 ...
- python小白——进阶之路——day2天-———数据类型和Number类型和str字符串
### -python的六大标准数据类型(1)Number 数字类型(int float bool complex)(2)String 字符串类型(3)List 列表类型(4)Tuple 元组类型(5 ...
- python小白——进阶之路——day1天---认识python和变量、注释
###-python的认知 89年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido) (1)版本: python2.x原码不规范,重复较多 python3x:原码 ...
- python小白——进阶之路——day4天-———流程控制while if循环
# ### 代码块: 以冒号作为开始,用缩进来划分作用域,这个整体叫做代码块 if 5 == 5: print(1) print(2) # 注意点: 要么全部使用4个空格,要么全部使用1个缩进 ,这样 ...
- python小白——进阶之路——day2天-———变量的缓存机制+自动类型转换
# ###同一文件,变量的缓存机制 ''' -->Number 部分 1.对于整型而言,-5~正无穷范围内的相同值 id一致 2.对于浮点数而言,非负数范围内的相同值 id一致 3.布尔值而言, ...
- python小白——进阶之路——day2天-———容器类型数据(list,set ,tuple,dict,str)
#容器类型数据 : list tuple # ###列表的特性:可获取,可修改,有序 # 声明一个空列表 listvar = [] print(listvar,type(listvar)) # (1) ...
- 小白进阶之路-python基本运算符
1.算数运算符(+.-.*./.%.**(幂 二次方.三次方).//(地板除,返回商的整数部分) 2.比较运算符(==.!=.<>(不等于).>.<.>=.<=) ...
- Python小白学习之路(二)—【Pycharm安装与配置】【创建项目】【运算符】【数据类型】
写在前面: 第二天的学习,感觉比昨天学习相对轻松一些,但是对于我这个编程语言功底很弱的人来说,还是稍稍微有些.....哈尔滨的天气一天天冷了下来,还飘着小雨,不过还是挺有意境的.充实而又忙碌的生活,让 ...
- 小白进阶之路—python脚本(1)判断是否是一个目录
#!/usr/bin/env python# -*- coding: utf-8 -*-import os dir = "/var/www/html/EnjoyWeekend/" ...
随机推荐
- ELK-ElasticSearch索引详解
1.使用_cat API检测集群是否健康,确保9200端口号可用: curl 'localhost:9200/_cat/health?v' 注意:绿色表示一切正常,黄色表示所有的数据可用但是部分副本还 ...
- ssh-login 一键密码加密登录工具
ssh-login 1. Feature 管理多个帐号,每个帐号一个易记的 tip name,支持 tab 进行 tip name 补全,一键 ssh 登录 密码 AES 加密,密文存储密码,且只需要 ...
- Java线程Thread的状态解析以及状态转换分析 多线程中篇(七)
线程与操作系统中线程(进程)的概念同根同源,尽管千差万别. 操作系统中有状态以及状态的切换,Java线程中照样也有. State 在Thread类中有内部类 枚举State,用于抽象描述Java线程的 ...
- Spring Boot(十二)单元测试JUnit
一.介绍 JUnit是一款优秀的开源Java单元测试框架,也是目前使用率最高最流行的测试框架,开发工具Eclipse和IDEA对JUnit都有很好的支持,JUnit主要用于白盒测试和回归测试. 白盒测 ...
- webpack4.0各个击破(3)—— Assets篇
目录 一. Assets资源的基本处理需求 二. webpack处理引用资源 2.1 资源打标 2.2 引用优化 2.3 sprites雪碧图合成 2.4 图片压缩及其他 webpack作为前端最火的 ...
- CSS引用样式
llink和@import引入外部样式的区别 •隶属上的差别 link属于HTML标签,而@import完全是CSS提供的一种方式. •@import次数限制 @import只能引入31次css文件. ...
- 学JAVA第七天,循环深入了解
因为星期五放假,所以今天补回. 上次已经解释过循环了,现在我们来进一步了解. 例如for循环:for( int i=0 : i<10 : i++ ){需要循环的内容},这样就会循环10次了 如果 ...
- 零基础学Python--------第7章 面向对象程序设计
第7章 面向对象程序设计 7.1 面向对象概述 面向对象(Object Oriented)的英文缩写是OO,它是一种设计思想.从20世纪60年代提出面向对象的概念到现在,它已经发展成为一种比较成熟的编 ...
- 17 , CSS 区块、浮动、定位、溢出、滚动条
1.CSS 中区块的使用 2.CSS 中浮动的使用 3.CSS 中定位的使用 4.CSS 中溢出的使用 5.CSS 中滚动条的使用 17.1 CSS 中区块的使用 属性名称 属性值 说明 width ...
- Selenium自动化 Xpath-元素定位
最近在教妹子做自动化测试,妹子基础差,于是想到很多初学自动化的朋友们学习的知识没有规范化,信息太过杂乱.所以,本文整理了一些自动化元素定位方式: 这次将讲Xpath定位! 什么是Xpath: Path ...