02python开发之基本运算符
02 python开发之基本运算符
2 基本运算符
2.1 算数运算符
2.1.1 种类
运算符 | 作用 | 运算符 | 作用 | 运算符 | 作用 | 运算符 | 作用 |
---|---|---|---|---|---|---|---|
+ | 相加 | - | 相减 | * | 相乘 | ** | 幂 |
/ | 相除 | % | 取模/余数 | // | 取整除/整数部分 |
2.1.2 用法
print(10 + 3) # 输出:13
print(10 - 3) # 输出:7
print(10 * 3) # 输出:30
print(10 / 3) # 输出:3.3333333333333335
print(10 ** 3) # 次方 输出:1000
print(10 % 3) # 取余 输出:1
print(10 // 3) # 地板除——保留整数 输出:3
- 字符串与字符串、列表与列表、字典与字典之间也可使用+和*
print([1, 2, 3] + [3, 4, 5]) # [1, 2, 3, 3, 4, 5]
print([1, 2, 3] * 3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
2.2 比较运算符
2.2.1 种类
运算符 | 作用 | 运算符 | 作用 | 运算符 | 作用 |
---|---|---|---|---|---|
== | 比较是否相等 | != | 比较是否不相等 | > | 是否大于 |
< | 是否小于(1真0假) | >= | 是否大于等于 | <= | 是否小于等于 |
2.2.2 用法
x = 20
y = 23
print(x == y) # ==是否相等,输出False
print(x != y) # !=是否不相等,输出True
- 同类型之间可以相互比较,不同类型比较会报错
x=22
b="123"
print(x > b)
# 报错:TypeError: '>' not supported between instances of 'int' and 'str'
# 字符串跟整型数值进行比较,类型不匹配导致报错
- str根据ASCⅡ码表进行比较,列表按照索引进行比较
print("abc" > "az") # 输出:False
print([1,2,3] < [1,3,4]) # 输出:True
2.3 赋值运算符
2.3.1 增量赋值
运算符 | 作用 | 运算符 | 作用 | 运算符 | 作用 | 运算符 | 作用 |
---|---|---|---|---|---|---|---|
= | 赋值运算符 | += | 加法赋值 | -= | 减法赋值 | *= | 乘法赋值 |
/= | 除法赋值 | %= | 取模赋值 | **= | 幂赋值 | //= | 取整除赋值 |
- 用法
age=10
age +=2 # age = age + 2
age -=2 # age = age - 2
age **=2 # age = age * age
age *=2 # age = age * 2
age /=2 # age = age / 2
2.3.2 链式赋值
# 方法一
x=10
y=x
z=y # 麻烦
# 方法二
x=y=z=10
print(id(x))
print(id(y))
print(id(z))
2.3.3 交叉赋值
x=10
y=20
# 第一种
temp=x # 把x再赋值一次给一个变量名
x=y
y=temp
# 第二种
x,y=y,x
print(x,y)
2.3.4 解压赋值
# 麻烦的方式
salary = [1.1, 2.2, 3.3, 4.4, 5.5]
mon1 = salary[0]
mon2 = salary[1]
mon3 = salary[2]
mon4 = salary[3]
mon5 = salary[4]
mon1, mon2, mon3, mon4, mon5 = salary
print(mon1, mon2, mon3, mon4, mon5)
# 变量名多一个不行少一个也不行,必须与值一一对应
# mon1, mon2, mon3, mon4, mon5, mon6 = salary
# mon1, mon2, mon3, mon4 = salary
# 报错:ValueError: not enough values to unpack(expected 6, got 5)
# 期望有5个返回值,但函数有6返回值
# 优化方案
salary = [1.1, 2.2, 3.3, 4.4]
month1, month2, *_ = salary
print(month1, month2) # 得到1.1 2.2
print(_) # 得到[3.3, 4.4]
dic = {'k1': 111, 'k2': 222, 'k3': 333}
x, *_ = dic
print(x) # 得到k1
2.4逻辑运算符
2.4.1 种类
运算符 | 作用 |
---|---|
not | 布尔"非",若x为True,则返回False |
and | 布尔"与",若x为False,x and y返回False,否则返回y的计算值 |
or | 布尔"或",若x为True,则返回True,否则返回y的计算值 |
2.4.2 优先级
# not > and > or
res = 3 > 4 and 4 > 3 or not 1 == 3 and 'x' == 'x' or 3 > 3
print(res) # True
2.4.3 用法
# not代表把紧跟其后的条件结果取反
print(10 > 3) # True
print(not 10 > 3) # False
# and连接左右两个条件,左右两个条件必须同时成立,最终结果才为True
print(True and 1 > 0 and "aaa" == "aaa") # True
print(False and 1 < 0 and "aaa" != "aaa") # False
# or连接左右两个条件,左右两个条件但凡有一个成立,最终结果都为True
print(True or 1 > 0 or "aaa" == "aaa") # True
print(False or 1 > 0 or "aaa" != "aaa") # True
# 短路运算
print(10 and 0 or '' and 0 or 'abc' or 'egon' == 'dsb' and 333 or 10 > 4) # abc
print((10 and 0) or ('' and 0) or 'abc' or ('egon' == 'dsb' and 333) or 10 > 4) # abc
2.4.4 补充
# 对于and运算符,两边的值都为真时最终结果才为真,但是只要其中有一个值为假,那么最终结果就是假:
# 如果左边表达式的值为假,不管右边表达式的值是什么最终结果都是假,此时and会把左边表达式的值作为最终结果。
# 如果左边表达式的值为真,那么最终值是不能确定的,and会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
# 对于or运算符,情况是类似的,两边的值都为假时最终结果才为假,只要其中有一个值为真,那么最终结果就是真:
# 如果左边表达式的值为真,不管右边表达式的值是什么最终结果都是真,此时or会把左边表达式的值作为最终结果。
# 如果左边表达式的值为假,那么最终值是不能确定的,or会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
print(1 and 3) # 得3
print(1 and 3 or 4) # 得3
print(0 and 2 or 1 or 4) # 得到1
print(0 or False and 1) # 得到False
2.5 身份运算
2.5.1 is
- is 比较的是id
2.5.2 ==
- == 比较的是值
2.5.3 总结
- is 相等值一定相等
- == 相等id不一定相等
02python开发之基本运算符的更多相关文章
- Python开发——数据类型【运算符】
算数运算符 比较运算符 赋值运算符 逻辑运算符 成员运算符
- Python开发:Python运算符
运算符 1.算数运算: 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返 ...
- 吴裕雄--天生自然 PHP开发学习:运算符
<?php $x=10; $y=6; echo ($x + $y); // 输出16 echo '<br>'; // 换行 echo ($x - $y); // 输出4 echo ' ...
- 吴裕雄--天生自然 JAVA开发学习:运算符
public class Test { public static void main(String[] args) { int a = 10; int b = 20; int c = 25; int ...
- python开发基础(二)-运算符以及数据类型
##运算符 算数运算符: ---> 赋值运算符 >>>返回结果为值 + # 加 - # 减 * # 乘 / # 除以 ** # 幂运算 % # 取余数 // # 取商 #### ...
- 微信小程序开发之三元运算符代替wx.if/wx.else
直接上代码 实现功能为:当fbphotoFirst为空时,src路径为“pic/信息反馈1-1_14.png“,并且点击事件uploadfbphotoFirst有效,否则为路径fbphotoFirst ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习:运算符
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 吴裕雄--天生自然 PYTHON3开发学习:运算符
#!/usr/bin/python3 a = 21 b = 10 c = 0 c = a + b print ("1 - c 的值为:", c) c = a - b print ( ...
- python开发基础(二)运算符以及数据类型之bool(布尔值))
# encoding: utf-8 # module builtins # from (built-in) # by generator 1.147 """ Built- ...
随机推荐
- Django( 学习第三部 Django的url路由层)
目录 url路由层 路由匹配(有名分组与无名分组) 反向解析 路由分发 名称空间(了解) Django版本区别 url 路由匹配 注意事项: url方法,第一个参数是正则表达式,只要第一个参数能够匹配 ...
- 020_Typora使用
目录 Typora使用 下载 安装 设置 使用 Typora使用 Typora插入本地图片为本地路径,网络上无法查看,所以建议只插入网络图片. 下载 百度搜索官网 下载 安装 设置 视图->显示 ...
- svg 进度条
先看理想效果 先上代码,在进行解释 <div id="app"> <svg width="230" height="230" ...
- 浅析软件测试人员如何对JVM进行内存溢出检测
一.什么是JVM,检测JVM的意义 JVM是java virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各 ...
- 16 String类
java中的所有的字符串文字(例如"abc","123")都可以看做是实现了此类的实例对象 eg: String str = new String(); str ...
- 基于 opencv 的图像处理入门教程
前言 虽然计算机视觉领域目前基本是以深度学习算法为主,但实际上很多时候对图片的很多处理方法,并不需要采用深度学习的网络模型,采用目前成熟的图像处理库即可实现,比如 OpenCV 和 PIL ,对图片进 ...
- 正式班D25
2020.11.09星期一 正式班D25 目录 13.7 LVM 13.7.1 lvm简介 13.7.2 lvm基本使用 13.7.3 在线动态扩容 13.7.4 在线动态缩容与删除 13.7.5 快 ...
- yum安装报睡眠错误的解决方法
可能是系统自动升级正在运行,yum在锁定状态中.可以通过强制关掉yum进程:#rm -f /var/run/yum.pid然后就可以使用yum了.
- 炸了!一口气问了我18个JVM问题!
前言 GC 对于Java 来说重要性不言而喻,不论是平日里对 JVM 的调优还是面试中的无情轰炸. 这篇文章我会以一问一答的方式来展开有关 GC 的内容. 不过在此之前强烈建议先看这篇文章深度揭秘垃圾 ...
- 完全卸载node.js
1.通过控制面板卸载node.js 2.删除安装所在文件夹下的nodejs文件夹[我的是 C:\Program Files\nodejs] 3.删除C:\Users\xxx(自己电脑的名字)下的.np ...