博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python全栈之路系列之赋值与运算符
阅读量:5114 次
发布时间:2019-06-13

本文共 1886 字,大约阅读时间需要 6 分钟。

 

在继续下面的文章之前我们先来浏览一下Python为我们提供的几种运算符,定义两个变量,分别是a和b,a的值是10,b的值是20。

算术运算符

运算符 描述 实例
+ 加,两个对象相加 a+b=30
- 减,两个对象相减,可能会得到负数 a-b=-10
* 乘,两数相称或是返回一个被重复若干次的字符串 a*b=200
/ 除,两个对象相除 b/a=2
% 取膜,返回除法的余数 b%a=0
** 幂,返回x的y次幂 a**b=100000000000000000000L
// 整除余,返回商的整数部分 a//b=0

比较运算符

运算符 描述 实例
== 等于,比较两个对象是否相等 a==b返回False
!= 不等于,比较两个对象是否不相等 a!=b返回True
<> 不等于,比较两个对象是否不相等 a<>b返回True
> 大于,比较x是否大于y, a>b返回False
< 小于,比较x是否小于y a<b返回True
>= 大于等于,比较x是否大于等于y a>=b返回False
<= 小于等于,比较x是否小于等于y a<=b返回True

赋值运算符

运算符 描述 实例
= 赋值运算符 c=a+b,将a+b的运算结果赋值给c
+= 加法赋值运算符 c += a等效于c = c + a
-= 减法赋值运算符 c -= a等效于c = c - a
*= 乘法赋值运算符 c *= a等效于c = c * a
/= 除法赋值运算符 c /= a等效于c = c / a
%= 取模赋值运算符 c %= a等效于c = c % a
**= 幂赋值运算符 c **= a等效于c = c ** a
//= 取整除赋值运算符 c //= a等效于c = c // a

逻辑运算符

运算符 描述 实例
and “与” a and b返回true
or “或” a or b返回true
not “非” no(a and b)返回false

成员运算符

运算符 描述
in 如果在指定的序列中找到值返回True,否则返回False
not in 如果在指定的序列中没有找到值返回True,否则返回false

赋值语句的语法

运算 解释
spam=’Spam’ 基本形式
spam, ham=’yum’, ‘YUM’ 元组赋值运算
[spam, han]=[‘yum’, ‘YUM’] 列表赋值运算
a,b,c,d=’spam’ 序列赋值运算,通用性
a, *b=’spam’ 扩展的序列解包
spam = ham = ‘hello’ 多目标赋值运算
spams += 42 增强赋值运算

实例

序列运算

>>> nudge = 1>>> wink = 2 >>> A, B = nudge, wink >>> A,B (1, 2) # 嵌套的方式 >>> ((a, b), c) = ('SP', 'AM') >>> a, b, c ('S', 'P', 'AM')

扩展的序列解包

一个列表赋给了带星号的名称,该列表收集了序列中没有赋值给其他名称的所有项。

先定义一个seq序列用于测试:

>>> seq = [1, 2, 3, 4]

a匹配序列中的第一项,b匹配剩下的内容

>>> a, *b = seq >>> a, b (1, [2, 3, 4])

b匹配序列中的最后一项,a匹配序列中最后一项之前的所有内容

>>> *a, b = seq >>> a,b ([1, 2, 3], 4)

第一项和最后一项分别赋值给了ac,而b获取了二者之间的所有内容。

>>> a, *b, c = seq >>> a,b,c (1, [2, 3], 4)

带星号的名称可能只匹配单个的项,但是,总会向其赋值一个列表,如果没有剩下的内容可以匹配那么会返回一个空列表:

>>> a,b,c,*d = seq >>> print(a,b,c,d) 1 2 3 [4] >>> a,b,c,d,*e = seq >>> print(a,b,c,d,e) 1 2 3 4 []

多目标赋值语句就是直接把所有提供的变量名都赋值给右侧的对象

>>> a = b = c = 'As' >>> a,b,c ('As', 'As', 'As') # 所引用的值也都是同一个 >>> id(a),id(b),id(c) (4331109208, 4331109208, 4331109208)

转载于:https://www.cnblogs.com/ethereala/p/8688382.html

你可能感兴趣的文章
利用React/anu编写一个弹出层
查看>>
飞信安装
查看>>
Bitmap 多语言实现及应用
查看>>
浏览器的加载顺序与页面性能优化
查看>>
树---数据结构
查看>>
ajax用get刷新页面元素在IE下无效解决~~
查看>>
[.NET] : 设定Windows Service启动类型
查看>>
Log4NET SQL配置
查看>>
Linux网络配置
查看>>
分享精心收藏的前台开发素材网站,都是干货
查看>>
Shell脚本修改Nginx upstream配置文件
查看>>
转_博弈论知识汇总
查看>>
进程的状态
查看>>
游戏外挂基本原理及实现
查看>>
计算数字1至10的总和
查看>>
动态合并Repeater控件数据列
查看>>
EF6 Codefirst+MySql 数据库迁移
查看>>
blasphemy - 题解
查看>>
不用js也能创建silverlight
查看>>
SPFieldLookupValue
查看>>