【剑指offer】算法、Python笔记

文章目录

  • 1.算法
    • 1.1 原码、反码、补码
  • 2.Python
    • 2.1 字符转ASCII码
    • 2.2 string模块:26个字母,数字,标点符号,空白
    • 2.2 if not 符合条件的情况
    • 2.3 关于二进制(与、或、异或;>>=和<<=)

1.算法

1.1 原码、反码、补码

原码、反码、补码知识详细讲解

2.Python

2.1 字符转ASCII码

A-Z对应的ASCII码为65-90,a-z对应的ASCII码值为97-122

字符转ASCII码:

ord()


ASCII码转字符:

chr()


(支持字母、中文、符号等)

2.2 string模块:26个字母,数字,标点符号,空白

In [8]: import string

In [9]: dir(string)

In [10]: string.ascii_letters
Out[10]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

In [11]: string.ascii_lowercase
Out[11]: 'abcdefghijklmnopqrstuvwxyz'

In [12]: string.ascii_uppercase
Out[12]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

In [13]: string.digits
Out[13]: '0123456789'

In [14]: string.punctuation
Out[14]: '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

In [15]: string.whitespace
Out[15]: '\t\n\x0b\x0c\r '

2.2 if not 符合条件的情况

None,False,0,空列表[],空字典{},空元祖(),都相当于false

所以谨慎使用if not

2.3 关于二进制(与、或、异或;>>=和<<=)

与、或、异或运算
注意,参加运算的两个对象,按二进制位进行运算。

>> 和 <<都是位运算,对二进制数进行移位操作。
<< 是左移,末位补0,类比十进制数在末尾添0相当于原数乘以10,x<<1是将x的二进制表示左移一位,相当于原数x乘2。比如整数4在二进制下是100,4<<1左移1位变成1000(二进制),结果是8;
>>是右移,右移1位相当于除以2。
而>>=和<<=,就是对变量进行位运算移位之后的结果再赋值给原来的变量,可以类比赋值运算符+=和-=可以理解。比如x>>=2, 就是把变量x右移2位,再保留x操作后的值。

你可能感兴趣的:(Python)