【精华】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 x await表达式
** 乘方
+x        -x        ~x 正,负,按位非 NOT
*   @   /   //   % 乘,矩阵乘,除,整除,取余
+   - 加,减
<<   >> 移位
& 按位与 AND
^ 按位异或 XOR
| 按位或 OR
in, not in, is, is not, <   <=   >   >=   !=   = 比较运算,包括成员/标识号检测
not x 逻辑非 NOT
and 逻辑与 AND
or 逻辑或 OR
if -- else 条件表达式
lambda lambda表达式
: = 赋值表达式

二进制数中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

猜你喜欢

转载自blog.csdn.net/qq_52057693/article/details/126290663