【精华】Python基础知识精华

目录


标识符(如变量名等)

  • 第一个字符必须是字母或下划线 _
  • 标识符由字母、数字、下划线组成
  • 大小写敏感

Python保留字/关键字

不能用作任何标识符名称  ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

多层缩进

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数

【区别】is和==   type和isinstance

is 和 ==

  • is用于判断两个变量是否引用同一个内存地址(是否引用同一个对象)
  • ==用于判断引用变量的值是否相等

type(变量名) isinstance(变量名, 类型) 查询变量类型

  • type() 主要用于判断未知类型,其认为子类不是一种父类类型【子类 ≠ 父类】
  • isinstance() 主要用于判断A类是否继承于B类,认为子类也是一种父类类型【子类 == 父类】

标准数据类型(6个)

  • Number数字、String字符串、List列表、Tuple元组、Set集合、Dictionary字典
  • Python中的每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  • 允许同时为多个变量赋值:a = b = c = 1      a, b, c = 1, 2, "xxx"

Number数字类型

int整数、bool布尔、float浮点数、complex复数

数值的除法:/返回一个浮点数,//返回一个整数

2进制的数以0b开头                输出时:bin()

8进制的数以0o开头                输出时:oct()

16进制的数以0x开头              输出时:hex()

字符串截取:str[头 : 尾 : 步长]        注意头尾是左闭右开

Python推倒式

  • 列表推倒式:[ 表达式 for 变量 in 列表 if 条件 ]
  •                       [ 结果值1 if 判断条件 else 结果2  for 变量名 in 原列表 ]
  • 字典推倒式:{ key_expr : value_expr for value in collection if condition }
  • 集合推倒式:{ expression for item in Sequence if conditional }
  • 元组推倒式:( expression for item in Sequence if conditional )

Python运算符优先级

优先级上面最高,向下依次递减

(     )括号
x[ ]        x.attribute读取,切片,调用,属性引用
await xawait表达式
**乘方
+x        -x        ~x正,负,按位非 NOT
*   @   /   //   %乘,矩阵乘,除,整除,取余
+   -加,减
<<   >>移位
&按位与 AND
^按位异或 XOR
|按位或 OR
in, not in, is, is not, <   <=   >   >=   !=   =比较运算,包括成员/标识号检测
not x逻辑非 NOT
and逻辑与 AND
or逻辑或 OR
if -- else条件表达式
lambdalambda表达式
: =赋值表达式

二进制数中1的个数(练习题)

推荐使用第三种方法:n不为0时,计数器+1,n = (n-1) & n

class Solution:
    # bin函数:bin返回一个整数的二进制字符串,一0b开头
    # 如果一个数为负数,那么2**32 + n 然后在用bin返回的就是它的补码形式(补码 + 源码 = 2**32)
    def NumberOf1_1(self, n):
        '''法一:使用bin和count函数解决'''
        if n >= 0:
            return bin(n).count('1')
        else:
            return bin(2**32 + n).count('1')

    def NumberOf1_2(self, n):
        '''法二:使用位运算解决'''
        count = 0
        while n:
            if n & 1 == 1:    # 与(&)1,即可知道n的最后一位是否为1
                count += 1
            n >> 1
        return count

    def NumberOf1_3(self, n):
        '''法三:巧妙使用位运算'''
        count = 0
        if n < 0:
            n = n & 0xffffffff    # 这一步是为了让n显示32个1,否则默认按4位显示
        while n:
            count += 1
            n = (n - 1) & n    # 不断的撤掉最后一位有1的部分
        return count

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值