运算符优先级

一张图认识Python(附基本语法总结)

南楼画角 提交于 2019-11-29 16:29:05
一张图带你了解Python,更快入门, 一张图认识Python(附基本语法总结) Python基础语法总结: 1.Python标识符 在 Python 里,标识符有字母、数字、下划线组成。 在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 Python 中的标识符是区分大小写的。 以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入; 以双下划线开头的 foo 代表类的私有成员;以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 init__() 代表类的构造函数。 2.Python有五个标准的数据类型 Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) Python支持四种不同的数字类型: int(有符号整型) long(长整型[也可以代表八进制和十六进制]) float(浮点型) complex(复数) python的字串列表有2种取值顺序: 从左到右索引默认0开始的,最大范围是字符串长度少1 从右到左索引默认-1开始的,最大范围是字符串开头 List(列表) 是 Python 中使用最频繁的数据类型。

Java运算符和表达式

泪湿孤枕 提交于 2019-11-29 16:06:08
一、什么是表达式? 表达式就是由一系列运算符和操作数组成的 二、算数运算符与赋值运算符 其中需要注意的是:++ -- i++/-- 先运算,再自增/自减 ++/--i 先自增/自减,在运算 三、关系运算符 四、逻辑运算符 五、条件运算符 六、运算符的优先级 来源: https://www.cnblogs.com/mpp0905/p/11521658.html

操作符和表达式

落花浮王杯 提交于 2019-11-29 15:50:44
操作符 算术操作符 +,-,*,/,% ,除了 % 操作符其它几个操作符既可以用于浮点型,也可以用于整型。 / 的两个操作数是整型时它执行整除运算,其它气矿下执行浮点运算。 % 操作符的两个操作数必须是整型。 移位操作符 左移时,值最左边的几位被丢弃,右边多出来的几个空位由0补齐。 右移时,左边移入的新位有两种填充方案: 逻辑移位:左边移入的位用0填充。 算术移位:左边移入的位的值由原先该值的符号决定,符号位为1则移入的位都是1,符号位为0则移入的位都是0,这样可以保证原数的正负形式不变。 移位操作的操作数必须是整数。 标准中说对于无符号数,所有的移位操作都是逻辑移位,对于有符号数,移位操作采用逻辑移位还是算术移位是由编译器所决定的。如果一个程序使用了有符号数的移位操作,那么它是不可移植的。 单目操作符 ~ 操作符对整型类型的操作数执行求补操作,即操作数原来为1 的位变成0,原来为0的位变成1。 sizeof 操作符判断它的操作数的类型长度,以字节为单位。 (类型) 操作符被称为强制类型转换操作符,它用于显示把表达式的值转换为另外的类型。 前缀++/-- ,操作数的值被增加/减少,表达式的值就是操作数增加/减少后的值。 后缀++/-- ,操作数的值被增加/减少,表达式的值就是操作数增加/减少之前的值。 逻辑操作符 && , || 都具有短路特性: && 首先会对左操作数求值

Python的二进制位运算

时光怂恿深爱的人放手 提交于 2019-11-29 15:13:45
Python语言能够对整数进行逐位操作,它支持的运算符及含义如下所示: &:按位与 |:按位或 ^:按位异或 ~:取反 <<:左移 >>:右移 对于整型数据,各种位操作是对该数据的补码进行的(正数的补码与原码相同,下面举例皆以正数为例);对于长整型数据,由于其位宽不定,所以进行位运算时,认为其补码的符号位向外无限扩展。下面对各运算符进行举例说明: (1)首先看取反 >>> ~1 -2 >>> ~0x0001 -2 >>> 正整数1,int型是32位的,就是00000000 00000000 00000000 00000001 求反变为11111111 11111111 11111111 11111110,这正好是-2的补码。同样十六进制的0x0001结果是一样的。 (2)按位与 >>> 1&2 0 >>> 1&3 1 >>> 对于按位与,就是对参加运算的两个整数的补码逐位进行逻辑与运算,即参加运算的两个运算量,如果两个相应位都为1,则该位的结果为1,否则为0。 (2)按位或 >>> 1|1 1 >>> 1|2 3 >>> 对于按位或,就是对参加运算的两个数字的补码逐位进行逻辑或运算,即参加运算的两个运算量,只要两个相应位中有一个为1,那么该位的结果为1;只有两个相应位都为0时,该位的结果才为0。 (3)按位异或 >>> 1^1 0 >>> 1^2 3 >>> 对于按位异或

Java基础-运算符(二)

核能气质少年 提交于 2019-11-29 15:12:24
位运算符 位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。 如果操作的对象是char、byte、short,位移动作发生前其值会自动晋升为int,运算结果 也为int 代码示例 package com . cwl . base . day01 ; /** * @program: java_base * @description: 位运算符 * @author: ChenWenLong * @create: 2019-11-05 15:09 **/ public class TestOperator04 { public static void main ( String [ ] args ) { int a = 3 ; int b = 4 ; System . out . println ( a & b ) ; System . out . println ( a | b ) ; System . out . println ( a ^ b ) ; System . out . println ( ~ a ) ; //移位 int c = 3 << 2 ; System . out . println ( c ) ; System . out . println ( 12 >> 1 ) ; } } 条件运算符 语法格式 x ? y : z

Java 基础-运算符

久未见 提交于 2019-11-29 15:09:19
Java运算符 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 运算符优先级 1. 算术运算符 运算符 运算 范例 结果 + 正号 +3  3 - 负号 b=4;-b -4 + 加 5+5 10 - 减 6-4 2 * 乘 3*4 12 / 除 5/5 1 % 取模(取余) 7%5 2 ++ 自增(前) a=2;b=++a; a=3;b=3 -- 自减(前) a=2;b=--a; a=1;b=1 ++ 自增(后) a=2;b=a++; a=3;b=2; -- 自减(后) a=2;b=a--; a=1;b=2; 2. 赋值运算符 运算符 运算 范例 结果 = 赋值 a=3; a=3; += 加等于 a=3;b=2;a+=b a=5;b=2; -= 减等于 a=3;b=2;a-=b; a=1;b=2; *- 乘等于 a=3;b=2;a*=b; a=6;b=2; /= 除等于 a=3;b=2;a/=b; a=1;b=2; %= 模等于 a=3;b=2;a%=b; a=1;b=2; 3. 比较运算符 运算符 运算 范例 结果 == 相等于 4==3 false != 不等于 4!=3 true < 小于 4<3 false > 大于 4>3 true <= 小于等于 4<=3 false >= 大于等于 4>=3 true 4. 逻辑运算符 ^:有且只有一个为 true,结果为

JavaScript 算术

荒凉一梦 提交于 2019-11-29 14:57:58
处理数值的典型情景是算数。 ㈠JavaScript 算数运算符 算术运算符对数值(文字或变量)执行算术运算。 ㈡算数运算符 典型的算术运算会操作两个数值。 ⑴这两个数可以是字面量: var x = 7 + 8; ⑵变量: var x = a + b; ⑶表达式: var x = (7 + 8) * a; ㈢运算符和操作数 ⑴在算术运算中,数被称为操作数。 ⑵(两个操作数之间执行的)运算由运算符定义。 ㈣加法 加法运算符( +)加数: <!DOCTYPE html> <html> <body> <h1>+ 运算符</h1> <p id="demo"></p> <script> var x = 7; var y = 8; var z = x + y; document.getElementById("demo").innerHTML = z; </script> </body> </html> 结果:15 ㈤减法 减法运算符( -)减数。 <!DOCTYPE html> <html> <body> <h1>- 运算符</h1> <p id="demo"></p> <script> var x = 7; var y = 8; var z = x - y; document.getElementById("demo").innerHTML = z </script> </body> <

运算符重载

こ雲淡風輕ζ 提交于 2019-11-29 14:21:47
运算符重载 1.重载 重载是指赋予新的含义 c++允许在同一作用域内的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载 函数重载: 可以让一个函数名有多重功能,在不同情况下进行不同的操作 运算符重载: 赋予同一个运算符多重不同功能 在同一作用域内可以声明多个功能类似的同名函数,但是这些函数的形参(个数、类型、顺序)必须至少有一样不同,不能是返回值不同。 2.运算符重载 并不是所有运算符都可以被重载 可重载 运算符 + - * / % ^ & | ~ ! = < > += -= *= /= %= ^= &= |= << >> <<= >>= == != <= >= && || ++ -- , -> () [] new new[] delete delete[] 不可重载 的运算符 sizeof :? . .* ->* :: # 重载不能改变运算符的 优先级 和 结合性 重载运算符不会改变 用法 运算符重载函数不能有 默认参数 运算符重载函数既可以作为类的 成员函数 ,也可以作为 全局函数 一般情况下,单目运算符最好重载为类的 成员函数 ,双目运算符最好重载为友员函数** 类型转换函数 只能定义为一个类的成员函数而不能定义为类的友员函数 若一个运算符的操作需要 修改对象的状态 ,选择重载为成员函数比较好 若运算符所需操作数(尤其是第一个操作数)希望有 隐式类型转换

操作符重载

亡梦爱人 提交于 2019-11-29 13:49:17
C++中,不同类型的数据有很多的运算符,如加减乘除等。当我们在定义两个不同类结构体时,我们发现,两个对象之间是不能进行这些操作的,如: #include<iostream> using namespace std; struct Point { int x, y; Point(int x = 0, int y = 0) :x(x), y(y) {}; }; ostream& operator << (ostream & out, const Point & p) { out << "(" << p.x << "," << p.y << ")"; return out; } int main() { Point a, b(1, 2); a.x = 3; cout << a + b << "\n"; return 0; } 运行结果: 所幸,C++允许用户把运算符添加到自己的类中,以方便运算 经过查阅我们发现,运算符重载分为重载为类的非成员函数与重载为成员函数,在此简略将其语法形式归为: 返回类型 operator 运算符(形参表) { 函数体 } 那么放在本代码里就是: 1 //应添加 2 Point operator +(const Point& A ,const Point& B) { 3 return Point(A.x + B.x, A.y + B.y); 4 }

自由练习-简单计算器

巧了我就是萌 提交于 2019-11-29 13:44:55
Q:读入一个只包含+-*/的非负整数计算表达式,计算该表达式的值。 样例输入:4+2*5-7/11 分析:利用堆栈对表达式求值是数据结构中典型的例子,算法分析如下: 1.设立两个堆栈,一个存储运算符,一个存储数字 2.表达式首尾添加标记运算符,且此运算符优先级最低。 3.从左到右遍历表达式,若为数字,则压入数据栈。 4.若为运算符,则与栈顶运算符进行优先级比较,如果当前运算符优先级高于(不低于)栈顶运算符,则当前运算符压入运算符栈;反之,则弹出栈顶运算符,同时连续弹出数字栈顶数字两次,计算后将结果压入数字栈,将当前运算符压入运算符栈。 5.重复3,4步,直到遇到标志运算符。 代码如下: #include<stdio.h> #include<stack> #include<string> #include<stdlib.h> #define optsize 6 using namespace std; char opt[optsize]={'+','-','*','/','#','='};//运算符集 int optcmp[optsize][optsize]= {1,1,0,0,1,1, 1,1,0,0,1,1, 1,1,1,1,1,1, 1,1,1,1,1,1, 0,0,0,0,0,0, 0,0,0,0,0,0};//运算符比较结果,若小于则为0 bool judgeopt