天池龙珠Python训练营-打卡笔记T02

走在前面的废话:好像每天跟进一次有点力不从心xwx

    接着上篇内容,应该到位运算了:

    感觉大部分高级语言中涉及位运算的部分比较少(?

位运算:原码、反码、补码:

        在最前面的是符号位(0为正1为负)

        原码:顾名思义,直接翻译成二进制(符号位在最前面)

        反码:负数反码只对数值位取反,正数的话全部取反。

        补码: 正数的补码就是原码,负数的补码是反码+1

(好像这部分是和计算机内部数据传输有关,不是很了解···)

    位运算符:按位非~,按位与&按位或|,按位异或^ ,左右位移<<,>>:

        位运算符适合用于特殊的数据处理

        以及部分便于在二进制中表达的操作:如取2^n倍(左右位移)快速交换变量值(^ =)

原理(?)筛选部分位置的数值(也可以屏蔽),如a&(-a)

 

python中处理这类二进制数据:bin()

为了获得负数补码,需要手动和0xffffffff按位与(0xffffffff 二进制下全是1)(有点运算中强制类型转换的味道)再输出

如果不这么做的话得到的只是数值的二进制,带个负号。

 

条件/分支语句:

       老朋友IF:

                if(条件):【缩进】表达式

        老朋友的老基友else:

                if(条件):【缩进】表达式

                else:【缩进】表达式

        *老朋友的新欢elif(C里面好像是else if)用法没啥差别 

         python里同样有逻辑短路机制。

【没有switch了哭哭】

assert关键词(断言)【我好像一点都不记得了】

assert(条件) , 如果为False,就崩溃,并抛出AssertionError(还是可以异常处理,存在意义不明)

 

循环语句:

        老朋友while():

             while(布尔表达式):【缩进】代码块

         生面孔while-else:

          while循环成功退出后会执行一次else,如果强制跳出(break)就会忽略else的内容

适合循环最后一步和前面不一样的情况(C里面深恶痛绝)

         不能再老的朋友for:

看起来平平常常,实际上是个很广泛的迭代循环:

        for 迭代变量(有循环变量的味道) in 可迭代对象:【缩进】代码块

这个迭代对象有够广的,字符串,列表元组字典()字典默认迭代key,以及枚举对象和生成器

迭代变量还可以拆包,多个变量一次对应一包数据

        for-else:和while-else一个模子里出来的

常用函数range([start,]stop,[step = 1]),从start开始到stop脚跟前停下

        生成一个range对象供迭代(它不是list!)

常用函数enumerate(可迭代对象,[初始索引 = 0])

        给可迭代对象加一个索引再迭代

其他有关关键词:break,pass,continue

 

推导式:

        数据有规律但是懒得初始化?试试推导式

        列表推导式:[expr for val in collection if condition]

        元组推导式:两边变括号---好像就是标准生成器吗(?

        字典推导式:expr 变成 key_expr : value_expr,两边变花括号

        集合推导式:只变花括号

都可以用next()拉取下一个对象,所以这是个语法糖···?

【可以推导式套推导式,但是会很晕···】

        

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值