注意:内置函数id()可以返回一个对象的身份,返回值为整数。这个整数通常对应与该对象在内存中的位置,但这与python的具体实现有关,不应该作为对身份的定义,即不够精准,最精准的还是以内存地址为准。is运算符用于比较两个对象的身份,等号比较两个对象的值,内置函数type()则返回一个对象的类型
#字符串可以提供的参数 's' None>>> format('some string','s')'some string'>>> format('some string')'some string'#整形数值可以提供的参数有 'b' 'c' 'd' 'o' 'x' 'X' 'n' None>>> format(3,'b') #转换成二进制'11'>>> format(97,'c') #转换unicode成字符'a'>>> format(11,'d') #转换成10进制'11'>>> format(11,'o') #转换成8进制'13'>>> format(11,'x') #转换成16进制 小写字母表示'b'>>> format(11,'X') #转换成16进制 大写字母表示'B'>>> format(11,'n') #和d一样'11'>>> format(11) #默认和d一样'11'#浮点数可以提供的参数有 'e' 'E' 'f' 'F' 'g' 'G' 'n' '%' None>>> format(314159267,'e') #科学计数法,默认保留6位小数'3.141593e+08'>>> format(314159267,'0.2e') #科学计数法,指定保留2位小数'3.14e+08'>>> format(314159267,'0.2E') #科学计数法,指定保留2位小数,采用大写E表示'3.14E+08'>>> format(314159267,'f') #小数点计数法,默认保留6位小数'314159267.000000'>>> format(3.14159267000,'f') #小数点计数法,默认保留6位小数'3.141593'>>> format(3.14159267000,'0.8f') #小数点计数法,指定保留8位小数'3.14159267'>>> format(3.14159267000,'0.10f') #小数点计数法,指定保留10位小数'3.1415926700'>>> format(3.14e+1000000,'F') #小数点计数法,无穷大转换成大小字母'INF'#g的格式化比较特殊,假设p为格式中指定的保留小数位数,先尝试采用科学计数法格式化,得到幂指数exp,如果-4<=exp >> format(0.00003141566,'.1g') #p=1,exp=-5 ==》 -4<=exp >> format(0.00003141566,'.2g') #p=1,exp=-5 ==》 -4<=exp >> format(0.00003141566,'.3g') #p=1,exp=-5 ==》 -4<=exp >> format(0.00003141566,'.3G') #p=1,exp=-5 ==》 -4<=exp >> format(3.1415926777,'.1g') #p=1,exp=0 ==》 -4<=exp >> format(3.1415926777,'.2g') #p=1,exp=0 ==》 -4<=exp >> format(3.1415926777,'.3g') #p=1,exp=0 ==》 -4<=exp >> format(0.00003141566,'.1n') #和g相同'3e-05'>>> format(0.00003141566,'.3n') #和g相同'3.14e-05'>>> format(0.00003141566) #和g相同'3.141566e-05'
字典的运算:最小值,最大值,排序salaries={ 'water':3000, 'mm':100000000, 'play':10000, 'macbookpro':2000}迭代字典,取得是key,因而比较的是key的最大和最小值>>> max(salaries)'macbookpro'>>> min(salaries)'mm'可以取values,来比较>>> max(salaries.values())>>> min(salaries.values())但通常我们都是想取出,工资最高的那个人名,即比较的是salaries的值,得到的是键>>> max(salaries,key=lambda k:salary[k])'mm'>>> min(salaries,key=lambda k:salary[k])'macbookpro'也可以通过zip的方式实现salaries_and_names=zip(salaries.values(),salaries.keys())先比较值,值相同则比较键>>> max(salaries_and_names)(100000000, 'mm')salaries_and_names是迭代器,因而只能访问一次>>> min(salaries_and_names)Traceback (most recent call last): File "", line 1, in ValueError: min() arg is an empty sequencesorted(iterable,key=None,reverse=False)!!!lambda与内置函数结合使用!!!
#1、语法# eval(str,[,globasl[,locals]])# exec(str,[,globasl[,locals]])#2、区别#示例一:s='1+2+3'print(eval(s)) #eval用来执行表达式,并返回表达式执行的结果print(exec(s)) #exec用来执行语句,不会返回任何值'''None'''#示例二:print(eval('1+2+x',{'x':3},{'x':30})) #返回33print(exec('1+2+x',{'x':3},{'x':30})) #返回None# print(eval('for i in range(10):print(i)')) #语法错误,eval不能执行表达式print(exec('for i in range(10):print(i)'))eval与exec
compile(str,filename,kind)filename:用于追踪str来自于哪个文件,如果不想追踪就可以不定义kind可以是:single代表一条语句,exec代表一组语句,eval代表一个表达式s='for i in range(10):print(i)'code=compile(s,'','exec')exec(code)s='1+2+3'code=compile(s,'','eval')eval(code)