c开头的库

'''
chr(i)
返回 Unicode 码位为整数 i 的字符的字符串格式。
例如,chr(97) 返回字符串 'a',chr(8364) 返回字符串 '€'。
这是 ord() 的逆函数。
实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。
如果 i 超过这个范围,会触发 ValueError 异常。
'''
print(chr(97)) # a
print('-'*10,"分割线","-"*10)

'''
@classmethod
把一个方法封装成类方法。
一个类方法把类自己作为第一个实参,就像一个实例方法把实例自己作为第一个实参。
请用以下习惯来声明类方法:
'''
'''
class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...
'''
print('还有个@classmethod把方法封装成类方法,话说,方法和类方法不一样么,类方法第一个参数是类自身')
print('-'*10,"分割线","-"*10)

'''
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
将 source 编译成代码或 AST 对象。代码对象可以被 exec() 或 eval()执行。
source 可以是常规的字符串、字节字符串,或者 AST 对象。参见 ast 模块的文档了解如何使用 AST 对象。
filename 实参需要是代码读取的文件名;如果代码不需要从文件中读取,可以传入一些可辨识的值(经常会使用 '<string>')。

source -- 字符串或者AST(Abstract Syntax Trees)对象。。
filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
flags和dont_inherit是用来控制编译源码时的标志

mode 实参指定了编译代码必须用的模式。如果 source 是语句序列,可以是 'exec';
如果是单一表达式,可以是 'eval';如果是单个交互式语句,可以是 'single'。
(在最后一种情况下,如果表达式执行结果不是 None 将会被打印出来。)
'''
print('compile() 函数将一个字符串编译为字节代码')
str = "for i in range(1,5): print(i)"
# 编译为字节代码对象
c = compile(str,'','exec') # 这代码我不理解
print(c) # 这里返回空么,啥都打印不出来,也没有换行
print(exec(c)) # <code object <module> at 0x0000023369B51390, file "", line 1>
str1 = "1 * 2 + 3"
a = compile(str1,'','eval')
print(eval(a)) # 1 2 3 4 None 5 
print('-'*10,"分割线","-"*10)

'''
complex() 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。
如果第一个参数为字符串,则不需要指定第二个参数。。
class complex([real[, imag]])
real -- int, long, float或字符串;
imag -- int, long, float;
返回一个复数。
'''
print(complex(2, 3)) # (2+3j)
# 数字
print(complex(1)) # (1+0j)
# 当做字符串处理
print(complex("1")) # (1+0j)
# 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
print(complex("1+2j")) # (1+2j)
print('-'*10,"分割线","-"*10)


上一篇:数据结构第一章 绪论 基本概念与算法分析


下一篇:Python基础(二)