课堂知识:
常见的运算符:
算术运算符:
+
-
*
/
% # 求余数
// # 整除,地板除法
** # 幂次方,相当也有了开根号
关系(比较)运算符:
>
<
>=
<=
==
!=
返回结果是一个布尔类型
逻辑运算符:
与 and # 并且关系
或 or # 或者关系
非 not # 不是、取反
所属运算符
in # 判断某个值是否在一个容器中
not in # 判断某个值是否不在一个容器中
注意:python中没有自加和自减运算符!!!!
i++ ++i i-- --i # 没有
赋值符:
= # 将等号右侧的值,赋值到左侧,等于赋值符的优先级别非常低
二元赋值符:
+= # a += 1 <=> a = a + 1
-= ……
*=
/=
**=
//=
%=
三目运算符:
其他编程语言中: 表达式 ? 值1 : 值2
python中三目运算符:
值1 if 表达式 else 值2
案例:
a = 20
b = 10
c = "liujianhong" if a > b else "Jianhong Liu"
# 最后结果就是c的值是"liujianhong"
位运算符:
bit:计算机中最小的单位
byte:字节,计算机中的基本单位,一个字节=8个位
& # 与运算
| # 或运算
^ # 异或运算
~ # 按位取反
<< # 左移运算
>> # 右移运算
------------------------------------------------------------------------------
如下操作都是一个字节运算的
【注意:目前讲解的都是整数】
n1 = 10 # 0000 1010
n2 = 11 # 0000 1011
n1 + n2 = 21
0000 1010
0000 1011 +
---------------
0001 0101 # 21
一旦引入负数,为了表示正负(+-)符号,固定最高位称为符号位,用来表示正负
符号位:0表示正数
1表示负数
n3 = -1 # 1000 0001
n4 = -2 # 1000 0010
n3 + n4 = -3
1000 0001
1000 0010 +
-------------------
10000 0011 溢出一个位,因此结果是:0000 0011 = 3
在二进制,如果数值是正数,进行运算,和十进制一样,结果正常
但是如果引入负数,结果的错误!!!
为了解决这个问题,计算机学家,如下的三个概念:
原码:就是数字的二进制位
反码:符号位不变,其余各位都统统取反
补码:反码 + 1
1000 0001 1111 1110 1111 1111 (-1的补码)
1000 0010 1111 1101 1111 1110 (-2的补码)
计算机中所有二进制都是以补码运算的(解决负数问题)
1111 1111
1111 1110 +
---------------
1111 1101 (补码!!!)
1111 1100 反码
1000 0011 -3
与运算 &
n1 = 10 # 0000 1010
n2 = 11 # 0000 1011
n1 | n2
0000 1010
0000 1011 |
------------------
0000 1010 10
或运算 &
0000 1010
0000 1011 &
------------------
0000 1011 11
异或运算 ^ 相反为真
0000 1010
0000 1011 &
------------------
0000 0001 1
按位取反 ~
~0000 1010
左移 <<
右移 >>
注意:python中的右移都是无符号右移,不存在有符号右移
-----------------------------------------------------------------------
早晨内容回顾:
1、数据类型已经数据类型的转换
自动数据类型转换
强制类型转换
|-- str()
|-- int()
|-- float()
2、字符串几种创建格式化
都必须掌握
3、常见的运算符
算术运算符
逻辑运算符
关系(比较)运算符
全局函数:
print() # 标准输出
input() # 标准输入
type() # 类型判断函数
int() # 将数值或布尔转换字符串
float() # 将字符串转换为整数
str() # 将字符串转换为浮点数
程序控制流程
控制语句之间的关联关系,实现逻辑性的
|-- 顺序
从上到下、从左到右执行流程
|-- 选择
单分支:
if 条件:
# 缩进体就是符合条件,需要执行的暧昧
双分支:
if 条件:
# 条件成立时,要执行的代码
else:
# 条件不成立的时候,需要执行的代码
多(三)分支:
if condition1:
# 条件1成立时,要执行的代码
elif condition2:
# 条件2成立时,要执行的代码
……
[else:
# 剩余条件
]
|-- 循环
课后作业:
作业1:两个数交换,要求使用异或法完成
作业2:判断一个数,是否是2的指数
2的指数
0000 0010 0000 0001
0000 0100 0000 0011
0000 1000 0000 0111
0001 0000 0000 1111
提示:所有2的指数:n&(n - 1) == 0
作业3:给定成绩,判断用户成绩的档次
100:提示满分
90~100:优秀
80~100:良好
70~80:还可以,多多努力
60~70:合格
0~60:不合格
0:鸡蛋
作业3:有1、3、5、7、9组成的所有不重复的四位数之和是多少?( )
A、666700 B、666600
C、678860 D、665500
作业4:一个会议有12个员工,假设已有8个员工是女性,求所有员工都是女性的概率( )
A、11/23 B、12/35
C、2/9 D、1/8
作业5:
在控制台上,输入如下信息
a a^2 a^3
1 1 1
2 4 8
3 9 27
作业6:下列哪一项是“4是奇数或-9为正数”的否定( )
A、4是偶数或-9不是负数
B、4是奇数或-9不是负数
C、4是偶数和-9是负数
D、4是奇数和-9不是负数
作业7:如果A是“10110110”,B是“11100000”,C是“10100000”,下面成立的是( )
A、 C=A|B
B、 C=~A
C、 C=~B
D、 C=A&B
作业8:判断一个整数是奇数还是偶数,至少有两种方式实现(位运算已经讲解的话)
作业10:求矩形的面积和周长
作业11:根据天数(从控制台上输入)计算周数和剩余的天数
作业12: 根据已知圆的半径radius(从控制台上输入),求其面积和周长(PI可以使用Math.PI,也可以使用3.14)
作业完成结果:
操作题截图如下:
选择题结果:
cdcd