10-8 内置函数

dir 查看一个变量拥有的方法
print(dir([]))
print(dir((1)))

某个方法属于某个数据类型的变量,就用.调用
如果某个方法不依赖任何数据类型,就直接调用 ----内置函数和自定义函数

对print()的说明

def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
  file:默认输出到屏幕,如果设置为文件句柄,则输出到文件
  sep:打印多个值之间的分隔符,默认为空格
  end:每一次打印的结尾,默认为换行符
  flush:立即将文件输出到文件流,不做缓存

  

print('我们是花园',end = '') #指定输出的结束符
print('hahhah',end = '')
结果:我们是花园hahhah

#指定输出多个值之间的分隔符
print(1,2,3,4,5,sep='|')    #结果:1|2|3|4|5

#file关键字
f = open('file','w')
print('aaa',file = f)
f.close()


#取整除运算符://
i = 101
print(i/2,i//2)#结果:50.5 50

#进度条的打印
flush---将缓存里面的内容立即输出到标准输出流(这里是sys.stdout, 也就是默认的显示器)
import time
for i in range(0,101,2):
    time.sleep(0.1)
    char_num = i//2
    per_str = '\r%s%% : %s\n'%(i,'*'*char_num) if i ==100 else '\r%s%% : %s'%(i,'*'*char_num)
    print(per_str,end = '',flush='true')
print('加载完毕')
小越越  : \r 可以把光标移动到行首但不换行

内置函数eval、exec、single

1.exec和eval都可以执行字符串类型的代码
2.eval()有返回值,exec()没有返回值
3.eval()只能用在明确知道要执行的代码是什么
4.exec一般都用于流程控制
exec('print(123)')  #123
eval('print(123)')  #123

print(eval('1+2+3+4'))  #10-----eval()有返回值
print(exec('1+2+3+4'))  #None----exec()没有返回值

 

code='''for i in range(5):
    print(i*'*')'''
exec(code)
结果:
*
**
***
****

compile 将字符类型的代码编译,代码对象能够通过exec来执行,或者可以通过eval来求值

参数说明:   
1. 参数source:字符串或者AST(Abstract Syntax Trees)对象。即需要动态执行的代码段。  
2. 参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。当传入了source参数时,filename参数传入空字符即可。  
3. 参数model:指定编译代码的种类,可以指定为 ‘exec’,’eval’,’single’。当source中包含流程语句时,model应指定为‘exec’;当source中只包含一个简单的求值表达式,model应指定为‘eval’;当source中包含了交互式命令语句,model应指定为'single'。
code1 = 'for i in range(0,3): print (i)'
compile1 = compile(code1,'','exec')
exec (compile1)

 

#简单求值表达式用eval
code2 = '1+2+3+4'
compile1 = compile(code2,'','eval')
print(eval(compile1))   #结果:10

#用户交互用single
code3 = 'name=input("input name:")'
compile3 = compile(code3,'','single')
exec(compile3)# 交互时的执行用exec()
print(name)

  

猜你喜欢

转载自www.cnblogs.com/Cheryol/p/9753530.html
今日推荐