运算符 赋值 let a = 2 操作符 a + b a += a //swift4 废弃++ a +=2 a * b a / b //b不能为0 a % b // b 不能为0 let d = <names.count { names[i] } 逻辑运算符 ! a //非 a && b //与 a || b //或 区别“位运算符” a & b //按位与 a | b //按位或 字符串 String和Character //变量与常量字符串 var str1 = "aaa" let str2 = "bbb" //创建空字符串 var emptyString = "" var str2 = String() //字符串遍历 var str = "hello str.append(ch) //在字符串后面拼接一个字符 //字符串之间拼接 var str2 = "!!!" str += str2 //hello!!!!
5.7自我总结 1.数字类型内置方法(省略数字类型定义,作用,基本运算) 1.数字类型定义,作用,基本运算 https://www.cnblogs.com/pythonywy/p/10797559.html 详细的内容,还有些不足地方下面链接中有说明 https://www.cnblogs.com/pythonywy/p/10800876.html补充说明 2.无内置运算 3.一个值或者多个值 一个值 4. 字符串类型内置方法(省略数字类型定义,作用,基本运算) 1.数字类型定义,作用,基本运算 https://www.cnblogs.com/pythonywy/p/10797559.html详细的内容,还有些不足地方下面链接中有说明 https://www.cnblogs.com/pythonywy/p/10800876.html补充说明 2.运算 1.必须掌握 a)按索引取值 a = 'yang' #取其中的y print(a[ print(name[1]) 9.请输出 name 变量对应的值的前 3 个字符? print(name[:3]) 10.请输出 name 变量对应的值的后 2 个字符?
制表符\t python允许用r表示内部的字符串默认不转义 运算符 位运算符: 按位运算符是把数字看出二进制数来进行计算 & 按位与运算符 print(5 & 7) 结果为5 相应位数有一个为 1 时,就为 1 ^ 按位异或运算符 print(5 ^ 7) 结果为 2 相应位数不同时,才为 1 ~ 按位取反运算符 print( ~5) 右移动运算符 各二进制位向右各移动若干位 print(5>>1) 2 101 ——》 10 逻辑与运算符 and : 表达式1 and 表达式2 表达式中有一个为假 ,则全部为假 or : 表达式1 or 表达式2 表达式全为假时,才为假 not : not 表达式 如果表达式为真,则整体逻辑非表达式为假 成员运算符 in a = "very good" print(a[2 : 6]) 判断一个字符串是否在另一个字符串内 a = "very good" print("good" in a) 判断是否为闰年小算法:
下表列出了常用的字符串运算符,假定变量 a 为 “abc”,变量 b 为 “efg”: 运算符 说明 举例 = 检测两个字符串是否相等,相等返回 true。 = 检测两个字符串是否不相等,不相等返回 true。 [ $a != $b ] 返回 true。 -z 检测字符串长度是否为0,为0返回 true。 [ -z $a ] 返回 false。 字符串运算符实例如下: #! "$a : 字符串不为空" else echo "$a : 字符串为空" fi 执行脚本,输出结果如下所示: abc = efg: a 不等于 b abc ! = efg : a 不等于 b -z abc : 字符串长度不为 0 -n abc : 字符串长度不为 0 abc : 字符串不为空
下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python": 操作符 描述 实例 + 字符串连接 >>>a + b 'HelloPython' * 重复输出字符串 >>>a * 2 ' HelloHello' [] 通过索引获取字符串中字符 >>>a[1] 'e' [ : ] 截取字符串中的一部分 >>>a[1:4] 'ell' in 成员运算符 - 如果字符串中包含给定的字符返回 True >>>"H" in a True not in 成员运算符 - 如果字符串中不包含给定的字符返回 True >>>"M" not in a True r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用 usr/bin/python # -*- coding: UTF-8 -*- a = "Hello" b = "Python" print "a + b 输出结果:", a + b print "a * 2 输出结果:", a * 2 print "a[1] 输出结果:", a[1] print "a[1:4] 输出结果:", a[1:4] if( "H" in a) : print "H 在变量
那么明白了左移和右移之后就可以做这道题了 方法一:保持原来的数不动,用 1 去左移,再和原来的数做 & 运算。 举个栗子: 1左移之后和要比对的数字做 & 运算,如果是 1 就等于 1,记录一次。 &运算不会的可以去看上一节奥: 位运算的妙用1 方法二: 与方法一类似,这次我们选择右移要比对的数字,1 保持不动 同理,&运算之后为 1 就表示找到了一个1. 方法三: 这个方法就需要仔细的去理解,方法就是用这个数的二进制减一,如果该位置是 0 的话就需要去借位,只不过二进制借位表示的是2, 减去之后再和原来的数字做& 运算,参与借位的部分就都变为了 0 , ,能不能相到位运算,在二进制中,2的整数次方其实也就是只有一个 1 ,想到这个之后是不是就瞬间明白了,其实也就是上面的第三个方法,只做一次减一相与判断 Scanner scanner =
前言: 本文的主题是位运算,通过四道题目讲解,一道是判断字符是否唯一,一道是只出现一次的数字III,一道是比特位计数,一道是丢失的数字。 链接分别为: 338. 当然了,这道题目可以使用鸽巢原理进行优化,一共才26个英文字符,如果字符串的长度超过了26,直接返回false即可。 第四种解法,异或的运算律,数组的下标和数异或,看谁空出来了就可以了。 那么我们利用这个特点,将数组中的每个数组和最低位的数字一&运算一下,就可以得到结果了,因为没有要求顺序,所以我们可以直接输出。 ans2 }; } }; 以上就是位运算的多个题目解析。
四则运算如下: --加减乘除(+、-、*、\、%)取余运算 SELECT --加法运算 3+5 AS 加法结果1, 3.5+6 AS 加法结果2, --减法运算 10-2.5 AS 减法结果 1, 15.5+5.5 AS 减法结果2, --乘法运算 5*3 AS 乘法结果1, 1.5*2 AS 乘法结果2, --除法运算 25/6 AS 除法结果1, 35*3.5 AS 除法结果2, --取余运算 逻辑运算: --逻辑(AND、OR、NOT)运算 IF(10 > 3 AND 2<=1 OR NOT 10>11) --优先级顺序:NOT、AND、OR SELECT 'TRUE' ELSE SELECT 字符连接运算: --字符连接(+)运算 DECLARE @s1 varchar(10) SET @s1 = 'ABC' SELECT @s1+'123' DECLARE @s2 varchar(10) SET @s2 = 'ABC' --右边是数字时必须作转换再连接 SELECT @s2+CONVERT(varchar(10),123) 结果: ?
算数运算符(+、-、*、/、%、++、--) +:表示正数,做加法运算,和字符串类型搭配使用做连接符 -:表示负数,做减法运算。 *:做乘法运算。 /:做除法运算(两个整数相除,结果去整数,只要除法中有小数,则结果为小数。如:int num = 7 / 5;输出结果为1.) %:取模运算,获得两个数相除的余数。(如: 5%3 结果为2). 正数的无符号右移位:如m>>>n,向右移动n位,结果为m/2^n 三目运算: 语法:条件表达式?表达式1:表达式2 如:int num =num >10 ? num += 1: num-=1; 字符串的比较 使用equals()方法: 如 int 1 = "3",num2 = "4"; num1.equals(num2); 返回结果为true,则表示字符串 1与字符串2内容相同 返回结果为false,则表示字符串1与字符串2内容不同
逻辑运算符 and 单词and是“并且”的意思。 需要同时满足多个条件时,可以使用逻辑运算符and连接。 多个条件仅需要满足其中一个条件时,可以使用逻辑运算符or连接多个条件。 任意一个条件成立,整个条件成立; 所有条件不成立,整个条件不成立。 print(2)是第一个if语句的下级代码,不受第二个if语句的控制; 如果第一个if语句条件成立,那么print(2)就一定会执行。 php color = 'red' name = 'xiaowangzi' if color == 'red' and name == 'xiaowangzi': print(1) 使用逻辑运算符 由于外循环次数为2,所以外循环的下级代码,会被重复执行2次。 上面代码最终输出结果是:我是小王子/王子你好你好你好/王子你好你好你好/再见 1.外层循环执行1次,内层循环会全部执行1遍。
运算符优先级 从高到低的顺序: ^ not - (unary) * / + - .. < > <= >= ~= == and or eg: -- 运算符优先级 print( 2+3 * 2 ^ 2 .."!") 字符串 string.gsub(mainString,findString,replaceString,num) 在字符串中替换,mainString为要替换的字符串, findString 为被替换的字符 ", "%d+ %a+") 2 questions = string.format("%d, %q", string.match("I have 2 questions for you. ", "(%d+) (%a+)")) 2, "questions"
比如 A = torch.Tensor([a1, a2]) A + 2. = torch.Tensor([a1+2., a2+2.]) 3.1.1 张量的四则运算 ---- torch.add(input , torch.tensor(3))的运算实际上是1+2*3=7。 还有特殊的运算: torch.addcdiv(input, tensor1, tensor2, *, value=1, out=None),对应的运算规则为: torch.addcmul(input, tensor1, tensor2, *, value=1, out=None),对应的运算规则为: 3.1.2 指数、对数、幂函数的运算 ---- 两个指数函数: torch.exp(input, : torch.log1p(input, out=None) 自然对数运算: torch.log2(input, out=None) 以 2 为底的对数运算: torch.log10(input, out
这里给出的样例程序是有关浮点向量运算的例子。 其中函数_mm_add_ps()实现的是浮点向量(4个数)加法运算。样例程序中使用了若干有关avx2的函数。 使用AVX2指令实现向量运算,由于使用的是SIMD指令,其优点在于各个分量是并行计算的,计算速度相对比较快。 浮点向量运算样例程序1: /* 浮点向量运算 */ #include <iostream> #include <immintrin.h> #include <avx2intrin.h> using %lf\n", result[2]); printf("3: %lf\n", result[3]); return 0; } 运算结果: 0: 8.000000 1: 6.000000 2: 4.000000 3: 2.000000 浮点向量运算样例程序2: /* 浮点向量运算 */ #include <iostream> #include <immintrin.h> #include
样例输入 3 2 1 2 3 4 5 6 10 10 -20 -20 30 30 6 5 4 3 2 1 4 0 -5 样例输出 480 240 0 0 -2200 -1100 答题 注意数值范围用 int已经不行了,必须要用long long 而且矩阵运算涉及到三层循环,可以利用cache机制减少取值时间,先将右矩阵转置再计算 最关键的是由于d远远小于n,所以先计算KTV得到的dxd大小的矩阵要远远小于先计算
( = += -= *= /= ) //2.赋值运算符 a = 50;//把50赋值给a变量 System.out.println(a); a += 2;//相当于a = a + 2; System.out.println(a); a -= 2;//相当于a = a - 2; System.out.println (a); a *= 2;//相当于a = a * 2; System.out.println(a); a /= 2;//相当于a = a / 2; (a); a -= 2;//相当于a = a - 2; System.out.println(a); a *= 2;//相当于a = a * 2; System.out.println(a); a /= 2;//相当于a = a / 2; System.out.println(a); //3.自增/减运算符
运算符 下表是java运算符的优先级表,按照从高到低排列。同一行中的运算符具有相同的优先级,除了赋值运算符之外的所有双目运算符都是从左到右求值,赋值运算符是从右向左求值。 instanceof Parent: " + (obj2 instanceof Parent)); System.out.println("obj2 instanceof Child: " + (obj2 instanceof Child)); System.out.println("obj2 instanceof MyInterface instanceof Parent: true obj2 instanceof Child: true obj2 instanceof MyInterface: true >>> 在讲">>>"运算符之前 在JavaSE和JavaEE中,移位运算符很少被使用,在JavaME中可能会被经常使用(实际上,就是嵌入式开发场景才会经常使用移位运算符) 由于符号位在高位,“有符号”左移运算符(<<)按位左移之后,后面的位补上
然后我们就直接把args这个名字给重构了,but,把 throw new ArgumentNullException("args"); 给忘了(resharper重构可能会同时重构这个名字),因为它仅仅是个字符串 那么nameof运算符的目的就是来解决这个问题的。 2. nameof 运算符 nameof是C#6新增的一个关键字运算符,主要作用是方便获取类型、成员和变量的简单字符串名称(非完全限定名),意义在于避免我们在代码中写下固定的一些字符串,这些固定的字符串在后续维护代码时是一个很繁琐的事情 3. nameof 注意事项 nameof可以用于获取具名表达式的当前名字的简单字符串表示(非完全限定名)。注意当前名字这个限定,比如下面这个例子,你觉得会输出什么结果? 12 } 13 } 14 } 第一个语句输出"CC",因为它是当前的名字,虽然是指向System.ConsoleColor枚举的别名,但是由于CC是当前的名字,那么nameof运算符的结果就是
实现原理:C++ 的 std::string 类重载了 += 运算符,因此可以直接用来追加字符串。 // 输出:hello world return 0; } 运行结果: hello hello world 2. << s1 << endl; // s1 本身没有改变 // 示例 3:头部拼接 string s2 = "hello"; s2 = "world " + s2; // 使用 + 操作符拼接 cout << s2 << endl; // 输出:world hello return 0; } 运行结果: hello world hello 第三部分: string s2 = "hello"; s2 = "world " + s2; cout << s2 << endl; 实现了字符串的头部拼接,生成的新字符串赋值给 s2。 3.
大家好,上节介绍比较运算符和逻辑运算符,本节主要介绍字符串运算符和通配符,(有的书中将like是作为特殊运算符,这里不细究,重要的是了解用法。) 当查找文件夹时,可以使用它来代替一个或多个真正字符。 ?:表示任意一个字符,如“刘??”就表示字符是以“刘”开头的,长度为3的字符串。“?月”就表示字符是以“月”为结尾的长度为2的字符串。 在Access数据库中有两种字符串运算符,文本连接符&和文本比较运算符Like。 文本接连接符&在Excel函数中非常常用,是可以将文本和字符串连接。 三、 示 例 下面通过示例来介绍通配符和字符串运算符的用法。 1、示例一 以图书表为例,显示书号、书名、作者和单价字段。要求书号和书名连接为一个字段。 2、示例二 查询图书中,作者姓氏为“司马”的图书的名称和单价。 这个查询问题就是模糊查询,在条件中设置like "司马*"为查询条件。
【matlab】混合字符串和数值变量运算 函数功能 代码例子 注意事项 1.表达式无效。请检查缺失的乘法运算符、缺失或不对称的分隔符或者其他语法错误。要构造矩阵,请使用方括号而不是圆括号。 函数功能 同一行中混合显示字符串和数值变量 eval()函数的功能:将括号内的字符串视为语句并运行,多在循环中使用,可以对多个名字有规则的变量或文件进行操作 num2str():将数字转换为字符串 代码例子 for k= 2:n k img=img+im2; str3=[ 'img=img+im' num2str(k) ';' ]; eval(str3) end 注意事项 请检查缺失的乘法运算符、缺失或不对称的分隔符或者其他语法错误。要构造矩阵,请使用方括号而不是圆括号。 错误 修改 注意空格