Python数值运算与赋值的快捷方式
一种比较常见的操作是对一个变量进行一项数学运算并将运算得出的结果返回给这个变量,因此对于这类运算通常有如下的快捷表达方式:
a = 2a = a * 3
同样也可写作:
a = 2a *= 3
要注意到 变量 = 变量 运算 表达式 会演变成 变量 运算 = 表达式。
求值顺序8
如果你有一个诸如 2 + 3 * 4 的表达式,是优先完成加法还是优先完成乘法呢?我们的高中数学知识会告诉我们应该先完成乘法。这意味着乘法运算符的优先级要高于加法运算符。
下面将给出 Python 中从最低优先级(最少绑定)到最高优先级(最多绑定)的优先级表。这意味着,在给定的表达式中,Python 将优先计算表中位列于后的较高优先级的运算符与表达式。
为了保持完整,下表是从Python教程 参考手册 中引用而来。你最好使用圆括号操作符来对运算符与操作数进行分组,以更加明确地指定优先级。这也能使得程序更加可读。你可以阅读改变运算顺序来了解更多的细节。
lambda:Lambda 表达式
if - else :条件表达式
or:布尔“或”
and:布尔“与”
not x:布尔“非”
in, not in, is, is not, <, <=, >, >=, !=, ==:比较,包括成员资格测试(Membership Tests)和身份测试(Identity Tests)。
|:按位或
^:按位异或
&:按位与
<<, >>:移动
+, -:加与减
*, /, //, %:乘、除、整除、取余
+x, -x, ~x:正、负、按位取反
**:求幂
x[index], x[index:index], x(arguments...), x.attribute:下标、切片、调用、属性引用
(expressions...), [expressions...], {key: value...}, {expressions...}:表示绑定或元组、表示列表、表示字典、表示集合
我们还没有遇到的运算符将在后面的章节中加以解释。
在上表中位列同一行的运算符具有相同优先级。例如 + 和 - 就具有相同的优先级。
改变运算顺序
为了使表达式更加易读,我们可以使用括号。举个例子,2 + (3 4) 自是要比 2 + 3 4 要更加容易理解,因为后者还要求你要了解运算符的优先级。和其它的一切一样,使用括号同样也要适度(而不要过度),同时亦应不要像 (2 + (3 * 4)) 这般冗余。
使用括号还有一个额外的优点——它能帮助我们改变运算的顺序。同样举个例子,如果你希望在表达式中计算乘法之前应先计算加法,那么你可以将表达式写作 (2 + 3) * 4。
结合性9
运算符通常由左至右结合。这意味着具有相同优先级的运算符将从左至右的方式依次进行求值。如 2 + 3 + 4 将会以 (2 + 3) +4 的形式加以计算。
表达式
案例(将其保存为 expression.py):
length = 5breadth = 2area = length * breadth
print('Area is', area)
print('Perimeter is', 2 * (length + breadth))
输出:
$ python expression.py
Area is 10Perimeter is 14
它是如何工作的
矩形的长度(Length)与宽度(Breadth)存储在以各自名称命名的变量中。我们使用它们并借助表达式来计算矩形的面积(Area)与周长(Perimeter)。我们将表达式 length breadth 的结果存储在变量 area 中并将其通过使用 print 函数打印出来。在第二种情况中,我们直接在 print 函数中使用了表达式 2 (length + breadth) 的值。
同时,你需要注意到 Python是如何漂亮地打印出 输出结果的。尽管我们没有特别在 Area is 和变量 area 之间指定空格,Python 会帮我们加上所以我们就能得到一个整洁的输出结果,同时程序也因为这样的处理方式而变得更加易读(因为我们不需要在用以输出的字符串中考虑空格问题)。这便是一个 Python 是如何让程序员的生活变得更加便捷美好的范例。
总结
我们已经了解了如何使用运算符、操作数与表达式——这些是我们构建任何程序的基本块。接下来,我们将看到如何在程序中善加利用这些语句。
Python数值运算与赋值的快捷方式的更多相关文章
- Python数值运算
算术运算 a=10 b=2 + 加-两个对象相加 a+b输出结果12 - 减-得到负数或是一个数减去另一个数 a - b输出结果8 * 乘-两个数相乘或是返回一个被重复若干次的字符串 a * b输出结 ...
- python数值运算 四则运算
数值运算 描述 获得用户输入的一个字符串,格式如下: ...
- 1.9 Python基础知识 - 数值运算
一.数值运算 在Python中有丰富的算术运算,这使得Python在科学计算领域有着很高的地位,Python可以提供包括四则运算在内的各种算术运算. 算术运算符 运算符 含义 说明 优先级 实例 ...
- 数值运算内建函数(core python programming 2nd edition 5.6.2)
数值运算内建函数 函数 功能 abs(num) 返回 num 的绝对值 coerce(num1, num2) 将num1和num2转换为同一类型,然后以一个元组的形式返回. divmod(num1, ...
- python实现图片色素的数值运算(加减乘除)和逻辑运算(与或非异或)
目录: (一)数值运算(加减乘除) (二)逻辑运算(与或非异或) 正文: (一)数值运算(加减乘除) opencv自带图片色素的处理函数------相加:add() 相减:subtract() ...
- python变量和变量赋值的几种形式
动态类型的语言 python是动态类型的语言,不需要声明变量的类型. 实际上,python中的变量仅仅只是用来保存一个数据对象的地址.无论是什么数据对象,在内存中创建好数据对象之后,都只是把它的地址保 ...
- LinuxShell脚本编程基础2-变量与数值运算、父shell和子shell
1.变量和数值运算 Shell脚本的变量不需要声明的 对变量赋值有两种方式, 直接用“=” 或者用键盘输入值 #!/bin/bash name1="Jack" echo $name ...
- Numpy数值类型与数值运算-03
什么是NumPy? NumPy是Python中科学计算的基本软件包.它是一个Python库,提供多维数组对象,各种派生对象(例如蒙版数组和矩阵) 以及各种例程,用于对数组进行快速操作,包括数学,逻辑, ...
- Shell基础(二):Shell中的数值运算、条件测试操作、使用if选择结构
一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78 ...
随机推荐
- 润乾填报页面导入excel后增加js动作
当页面从excel中导入数据之后,自动加入js的检查功能,下面是如何在导入excel后直接引入js的功能实例: var _orgImportExcel = report1_importExcel ...
- ui-sref的参数传递
例如:路由配置如下: $stateProvider.state('admin.userList', { url: '/listUser?type&role', //参数必须先在这边声明 tem ...
- 3.如何在Maven项目中引入自己的jar包
1.一般情况下jar包都可以使用pom.xml来配置管理,但也有一些时候,我们项目中使用了一个内部jar文件,但是这个文件我们又没有开放到maven库中. 我们会将文件放到我们项目中.(以下以java ...
- WWF3.5SP1 参考源码索引
http://www.projky.com/dotnet/WF3.5SP1/System/Runtime/Serialization/FormatterServicesNoSerializableCh ...
- oracle使用索引和不使用索引性能分析
首先准备一张百万条数据的表,这样分析数据差距更形象! 下面用分页表数据对表进行分析,根据EMP_ID 字段排序,使用索引和不使用索引性能差距! sql查询语法准备,具体业务根据具体表书写sql语法: ...
- Script:when transaction will finish rollback
------------------------------------------------------------------------------- -- -- Script: rollin ...
- 转:.net设计模式之工厂模式
原文:http://terrylee.cnblogs.com/archive/2006/01/04/310716.html 概述 在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对 ...
- POST请求上传多张图片并携带参数
POST请求上传多张图片并携带参数 在iOS中,用POST请求携带参数上传图片是非常恶心的事情,HTTPBody部分完全需要我们自己来配置,这个HTTPBody分为3个部分,头部分可以携带参数,中间部 ...
- [UI] 精美UI界面欣赏[7]
精美UI界面欣赏[7] 视频地址: http://v.youku.com/v_show/id_XOTM0MDUzNTg0.html UI介绍地址: http://www.zhihu.com/quest ...
- Redis学习---CentOs/RedHat下Redis的安装
redis是C语言开发,建议在linux上运行,本教程使用Centos6.4作为安装环境. 安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gc ...