python 的帮助系统.
以 Decimal 举例
import decimal
dir(decimal.Decimal) # 通过 dir 查看
Decimal的所有功能.
help(decimal.Decimal.from_float) # 通过 help 查看如何使用
还比较有用的内置函数
ord() 查某个字符对应的unicode字元
chr() 把对应整数(
unicode字元)转化为对应的 unicode 字符.
关键字:
-
and continue except global lambda pass while
-
as def False if None raise with
-
assert del finally import nonlocal return yield
-
break elif for in not True
-
class else from is or try
下划线 _ 一般用户国际化的翻译函数, 如 gettext模块中, gettext("翻译") 可以直接用 _
("翻译")代替.
python 内置 dir 函数, 返回对象属性列表, 包括对象可用的方法以及属性设置等内容.
-
>>> dir()
-
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
-
>>> x = "hello"
-
>>> dir(x)
-
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
-
>>> x.upper()
-
'HELLO'
-
>>>
__buildins__ 属性为一个存放所有python内置属性的模块. 包括了异常名,函数名和数据类型名等
-
>>> dir(__builtins__)
-
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
--------------------------------------------------------------------------------------------------------------------
整数:
i= 0b1010101 # binary 0B 也可以
o= 0o65342 # octal 0O 等效
h= 0xfc03 # hex 0X 亦可
运算 + - * %(取余) **(幂, 等效于 pow(x,y)) abs(x)
除法 / 返回浮点数.
除法 // 返回整除值.
divmod(x,y) 二元组返回 商与余数 (两个整数)
pow(x,y,z) 等效于 (x ** y) % z
round(x,n) 对浮点 x 取n位小数精度.
转换函数
bin(integer) 转成二进制字符串表示
hex(i)
转成16制字符串表示
oct(i)
转成8制字符串表示
int(str) 字符串转成整数
int(str, base) 字符串转成整数, base 为 2-36的基数
位逻辑操作
|或, ^异或, &与, <<左移, >>
右移, ~非 等操作
--------------------------------------------------------------------------------------------------------------------
浮点数. (sys.float_info.epsilon 代表当前机器上能区分两个浮点数的最小区别)
float(双精度), 如 5.4 或者 8.9e-4(指数表达方式,等效于0.00089), 有 is_integer(), as_integer_ratio() hex(), fromhex(str)等属性
complex 复数. 存放一对浮点数, 一个为实数部分, 一个为虚部. 表示方式为 z = 3.5+2j +代表虚部的符号, 虚部符号可以使用.conjugate()方法改变. python访问时使用 z.real z.imag
decimal.Decimal. (高精度,精度可指定) 通过decimal.Decimal(整数或者浮点数的字符串).
--------------------------------------------------------------------------------------------------------------------
字符串
1. 可以使用 '''''' 三引号定义字符串. python 使用换行符作为语句终结符, 但是如果
换行符出现在() [] {} 三引号内的例外, 在三引号内的字符串,可直接使用换行 ", ' 而无需格式化处理. 这在定义正则表达式时极为方便.
2. r"xxx" 由 r 引导的字符串代表字符串无需转义, 直接按照字面意思立即.
3. 超长字符串可以用 + \ 或者 定义在 () 里边.
-
t="1st line" + \
-
"2nd line"
-
-
s = ("1st line" #对多行文本 - 建议使用的方式.
-
"2nd line"
-
)
4. 化解unicode字符有多种表达方式的方案. import unicodedata 同时调用nfkd_str= unicodedata.normalize('NFKD', unicode_str)初始化.
5. 分片/步距原则
索引 正向 0 开始, 负项为 -1 开始.
分片 str[start:end:step] start包括, end 不包括, step正负值代表步进方向.
6. 字符串可以通过 + 来连接, 对于大量字符串,建议使用 s.join(字符串序列(列表或元组)), 则列表元素之间通过s进行分隔符进行连接, 如 t = ['1',"2","3"] 则 "+".join(t) --> "1+2+3"
7. * 操作符对于字符串来讲为复制功能. s="0" * 5 表示 "0"复制5次, 则 s="00000"
8. 字符串格式化 类似于
1. 位置参数 "{0}{1}".format(arg0,arg1) 产生一个新的串, 轻松实现字符串和其他类型的连接. 0/1/2等位置参数可以忽略, python自动按照顺序添加映射的内容.
2. 字段名 "{who} is {age} years.".format(who="ray", age=40) 位置参数和字段名混用时切记位置参数在前.
#locals() 会返回目前局部变量的字典.键为对象引用名, 值为对象引用. **作为映射拆分操作符可以产生一个键值对列表. 即使用 **locals() 即可产生类似于[who="ray", age=40]的内容, 但拆分**操作一定要做format的最后一个参数才可以.
3. 格式化参数可以使用集合类型或者字典类型.
days = ["1st", "2nd", "3rd"]
s = "mondy is the {0[0]} day".format(days)
或者使用字典
days=dict(monday="1st", friday="5th")
s = "mondy is the {0[mondy]} day".format(days)
4. 格式化参数也可以用模块中的属性或者方法
"pi=={0.pi}".format(math) 等同于 "pi=={0}".format(math.pi)
5. 格式规则
-
:fill align sign # 0 widht , .precision type
-
-
:格式规则通过 : 来引入.
-
fill 为填充字符, 默认为空格. 不能是 '}',
-
align 对齐规则. < 左对齐. >右对齐. ^中间对齐. = 代表在符号和数字之间填充.
-
sign + 强制输出符号 -需要的加入符号 " "等同-
-
# 0b 0o 0x 的前导符号
-
0 代表 0b 0x的意思. 如 "{0:#b}".format(5) => 0b101
-
width 最小宽度
-
, 分组的分隔符, 例如整数按照3位中间插入一个,逗号.
-
.precison 字符串/整数的最大宽度, 浮点数的精度
-
type 整数 b,c,d,n,o,x,X 浮点:e,E,f,g,G,n,% 如 "{0:b}".format(5) => 101 n为本地格式化字符, 例如中/英文表示的整数不同, 英文习惯于按照千位用逗号分隔
本地化运行环境设置也是很重要的, 一般在多线程中程序开始时在开始出统一设置
-
import locale
-
-
locale.setlocal(locale.LC_ALL,"") # "C", "en_US.UTF-8"
字符编解码:
-
a = "abcd"
-
b = a.encode("utf8") #编码名称大小不敏感, 且不缺分连字符和下划线. 返回一个字节序列,即bytes对象.
-
-
str = b.decode("utf8") # str = bytes.decode(b, "utf8")
阅读(1359) | 评论(0) | 转发(0) |