Python作业及笔记整理(4)

作业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,如果写了,那就传递的值走

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值