1.三方交换原则
注:选中代码,CTRL+/ 快速注释
%s 表字符串
优点:简单
缺点:浪费内存空间
2.数学法(加减总和除自身交换原则,乘积除自身交换原则。 ) 优点:不占内存
缺点:抽象
3.python独有
调用了临时寄存器,隔离了空间
4.异或运算法
注:如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),
1)数值型:整数型(int) 浮点数(float)复数(虚数)
2)布尔类型:真 (True) 假(False)
3)字符串:单引号:‘字符串’
双引号:“字符串”
三引号:"""字符串"", '''字符串'''(注:可以换行写)
4)None:表空,没有
对象,万物皆对象 list set dict tuple .......
注:input 默认接收到的数据类型为字符串
为什么要数据类类型转换?
因为不同的数据类型相运算,可能会报错
1)自动类型转换
整数和小数自动向高精度转换
如果不尔类型和数值类型运算,布尔类型自动转换为数值类型
True转为1,false转为0
2)强制类型转换
int(字符串) #将字符串转为整数
float(字符串) #将字符串转为 浮点数
str(数值) #将其他类型转为 字符串
1)通过%s(%f,%d)占位
2){}占位输出
3)将其他类型全部转换为字符串,通过+拼接,统一输出
4)f"{a}+{b}={a+b}”
5)通过逗号显示变量
补:print(“a={}”.format{a})
cls 清屏命令,exit()退出命名
浮点数存储问题;把小数换成整数运算,近视值,所以python中0.1+0.5!=0.6
1) 算数运算符(+,-,/,*,%,**(幂次方),//(整除))
注:从右向左运算,有括号先算括号里面的
关系(比较)运算符(and,or,not(不是,取反的意思))
2)逻辑运算符(<,>,<=,>=,==,!=)注:结果是布尔值
3)赋值运算符
= #将右侧的结果赋值给左侧(优先级别极低)
+= #a+=10 等价于(<===>)a=a+10
-=
*=
/=
//=
**=
%=
注;python中没有自加和自减运算,用+=和-=来替代
4)三目运算符
c,java语言中
变量=表达式?结果1:结果2;
例如:
a = 10 > 3 ? 20 : 100;
if (10 > 3) {
a = 20;
} else {
a = 100;
}
python语言中:
变量 = 结果1 if 表达式 else 结果2
5)位运算符
位(bit):它是计算机中的最小的单位
&(与运算)
|(或运算)
^(异或运算)
~(按位取反)
<<(左移运算)
>>(右移运算)
所属运算符(in,not in )
10 1010
11 1011
与运算符
10 & 11 = 10
1010
1011 &
-------------
1010
或运算符
10 | 11 = 11
1010
1011 |
-------------
1011
异或运算
(如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1))
10 ^ 11 = 1
0000 1010
0000 1011 ^
-------------
0000 0001
按位取反
~
~0000 1010
-----------
1111 0101
左移运算
<<
右移运算符
>>
-2 + 2 = 0
0000 0010
1000 0010 +
--------------
1000 0100
注;
&& 和 || 分别为 "短路与 "和" 短路或"
&& 若前面的表达式结果为false,整个逻辑表达式的结果就为false,所以后面的表达式无论true或者false都无法影响整个逻辑表达式的结果,所以为了提高代码执行效率,后面的表达式就不会执行。
同理,若前面的表达式为true,则后面的表达式也无需计算。
& 和 | 为 不短路与 和 不短路或
无论什么情况,前面的和后面的表达式都要执行
————————————————
版权声明:上方红色注文为CSDN博主「清宵尚温。」的原创文章,遵循CC 4.0 BY-SA版权协议,转载附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Dreamboy_w/article/details/112424885
符号位:取最高位
0为正,1为负
列:0111 1111 +127
1111 1111 -127
共 254个
还有0000 0000(0),1000 0000(128)
如下的三个概念,全部都是因为负数二进制运算出错,为解决而提出
原码:原始的二进制
反码:符号位不变,其余位取反
补码:反码加1
程序控制流程:
顺序:从左到右,自上而下
选择结构:
单分支
if 条件: #条件成立,执行缩进代码
双分支
if condition:
# 条件成立,执行缩进代码
else:
# 条件不成立,执行else中代码
if 条件1:
# 条件1成立,执行缩进的代码
elif 条件2:
# 条件2成立,执行缩进的代码
……
elif 条件n:
# 条件n成立,执行缩进的代码
[else:
# 剩余条件
注:tab和空格建不能混用(符号表示不一样),要报错
中括号[]中表示可写,可不写的代码
\t 的作用:输出空格
\n 的作用:换行