作业12:求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
作业13:合并两个有序数组,合并后还是有序列表
作业14:给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
作业15:将10进制数据转换为二进制,并且统计其中的0和1的数量
作业16:给定一个数组,已知数组中的元素都是成对出现,现在数组中只有一个元素没有成对,请找出这个元素。 [1,3,1,2,2,8,8]
笔记部分:1、常见运算符2、程序控制流程
常见的运算符:
算术运算符:
+
-
*
/
% # 求余数
// # 整除,地板除法
** # 幂次方,相当也有了开根号
关系(比较)运算符:
>
<
>=
<=
==
!=
返回结果是一个布尔类型
逻辑运算符:
与 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中的右移都是无符号右移,不存在有符号右移
程序控制流程
控制语句之间的关联关系,实现逻辑性的
|-- 顺序
从上到下、从左到右执行流程
|-- 选择
单分支:
if 条件:
# 缩进体就是符合条件,需要执行的暧昧
双分支:
if 条件:
# 条件成立时,要执行的代码
else:
# 条件不成立的时候,需要执行的代码
多(三)分支:
if condition1:
# 条件1成立时,要执行的代码
elif condition2:
# 条件2成立时,要执行的代码
……
[else:
# 剩余条件
]
|-- 循环
1、什么叫做循环
重复执行代码!!!
2、为什么需要循环
拒绝哪怕两行代码的重复!!!降低代码的维护成本
3、如何循环
while循环
while condition:
# 循环体
4、1~100的和:
循环累加的方式
break,continue关键字:
都是被使用在循环中的关键字
break:终止循环
continue:跳过本次循环,进入下次循环
python中while循环的完整流程:
while 条件:
# 循环体
[else:
# 程序正常执行结束后才会执行的代码
]
for循环:
python 提供的for循环,不是常规的其他编程语言中的for循环,它的本质是容器的迭代
for 临时变量 in 容器(可迭代对象):
# 每一次迭代出的成员,会放到临时变量中
range的全局函数:
表示一个整数的范围
range(num) # [0, num) 这个区间内的所有整数
range(start, end) # [start, end) 这个区间内的所有整数
range(start, end, step) # [start, end) 这个区间内的所有整数,第三个参数表示步长,默认是1,如果写了,那就传递的值走