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)
努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。