python-day15~16_内置函数

1,

# 变量
# print(callable(print))
# a = 1
# print(callable(a))
# print(callable(globals))
# def func():pass
# print(callable(func))

import time
# t = __import__('time')
# print(t.time())

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

 

# f = open('1.复习.py')
# print(f.writable())
# print(f.readable())

# print('我们的祖国是花园',end='') #指定输出的结束符
# print('我们的祖国是花园',end='')
# print(1,2,3,4,5,sep='|') #指定输出多个值之间的分隔符
# f = open('file','w')
#   print('aaaa',file=f)   # 打印输出到文件中
# f.close()

 

# 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)
#progress Bar

# exec('print(123)')
# eval('print(123)')
# print(eval('1+2+3+4')) # 有返回值
# print(exec('1+2+3+4')) #没有返回值
# exec和eval都可以执行 字符串类型的代码
# eval有返回值 —— 有结果的简单计算
# exec没有返回值 —— 简单流程控制
# eval只能用在你明确知道你要执行的代码是什么

 

2, 执行字符串中的代码。不安全

# exec('print(123)')
# eval('print(123)')
# print(eval('1+2+3+4')) # 有返回值
# print(exec('1+2+3+4')) #没有返回值
# exec和eval都可以执行 字符串类型的代码
# eval有返回值 —— 有结果的简单计算
# exec没有返回值 —— 简单流程控制
# eval只能用在你明确知道你要执行的代码是什么

# code = '''for i in range(10):
# print(i*'*')
# '''
# exec(code)

# code1 = 'for i in range(0,10): print (i)'
# compile1 = compile(code1,'','exec')
# exec(compile1)

# code2 = '1 + 2 + 3 + 4'
# compile2 = compile(code2,'','eval')
# print(eval(compile2))

# code3 = 'name = input("please input your name:")'
# compile3 = compile(code3,'','single')  #带用户输入是用single
# exec(compile3) #执行时显示交互命令,提示输入
# print(name)
# name #执行后name变量有值
# "'pythoner'"

 

3,

# 复数 —— complex
# 实数 : 有理数
# 无理数
# 虚数 :虚无缥缈的数
# 5 + 12j === 复合的数 === 复数
# 6 + 15j

# 浮点数(有限循环小数,无限循环小数) != 小数 :有限循环小数,无限循环小数,无限不循环小数
# 浮点数
#354.123 = 3.54123*10**2 = 35.4123 * 10
# f = 1.781326913750135970
# print(f)

# print(bin(10))
# print(oct(10))
# print(hex(10))

# print(abs(-5))
# print(abs(5))

# print(divmod(7,2)) # div出发 mod取余
# print(divmod(9,5)) # 除余

# print(round(3.14159,3))   #小数点后3位,四舍五入
# print(pow(2,3)) #pow幂运算 == 2**3
# print(pow(3,2))
# print(pow(2,3,3)) #幂运算之后再取余
# print(pow(3,2,1))

# ret = sum([1,2,3,4,5,6])
# print(ret)

# ret = sum([1,2,3,4,5,6,10],)
# print(ret)

# print(min([1,2,3,4]))
# print(min(1,2,3,4))
# print(min(1,2,3,-4))
# print(min(1,2,3,-4,key = abs))  #按绝对值来找

print(max([1,2,3,4]))
print(max(1,2,3,4))
print(max(1,2,3,-4))
print(max(1,2,3,-4,key = abs))  # -4

 

4,

# reversed()
# l = [1,2,3,4,5]
# l.reverse()
# print(l)
# l = [1,2,3,4,5]
# l2 = reversed(l)
# print(l2)
# 保留原列表,返回一个反向的迭代器

# l = (1,2,23,213,5612,342,43)
# sli = slice(1,5,2)   #切片
# print(l[sli])
# print(l[1:5:2])

# print(format('test', '<20'))
# print(format('test', '>40'))
# print(format('test', '^40'))

#bytes 转换成bytes类型
# 我拿到的是gbk编码的,我想转成utf-8编码
# print(bytes('你好',encoding='GBK')) # unicode转换成GBK的bytes
# print(bytes('你好',encoding='utf-8')) # unicode转换成utf-8的bytes

# 网络编程 只能传二进制
# 照片和视频也是以二进制存储
# html网页爬取到的也是编码
# b_array = bytearray('你好',encoding='utf-8')
# print(b_array)
# print(b_array[0])
# '\xe4\xbd\xa0\xe5\xa5\xbd'
# s1 = 'alexa'
# s2 = 'alexb'

# l = 'ahfjskjlyhtgeoahwkvnadlnv'
# l2 = l[:10]

# 切片 —— 字节类型 不占内存
# 字节 —— 字符串 占内存

# print(ord('好'))  #返回字符对应的 ASCII 数值
# print(ord('1'))
# print(chr(97))  #数字转成字符

# print(ascii('好'))
# print(ascii('1'))
# name = 'egg'
# print('你好%r'%name)  #字符串值带引号一起输出
# print(repr('1'))  #带引号字符串输出
# print(repr(1))

# print(all(['a','',123]))  #与操作
# print(all(['a',123]))
# print(all([0,123]))

# print(any(['',True,0,[]]))  #或操作

# l = [1,2,3,4,5]
# l2 = ['a','b','c','d']
# l3 = ('*','**',[1,2])
# d = {'k1':1,'k2':2}
# for i in zip(l,l2,l3,d):  #拉链方法
#   print(i)

输入:

(1, 'a', '*', 'k2')
(2, 'b', '**', 'k1')

 

 

5,

# ret = filter(is_odd, [1, 6, 7, 12, 17])
# ret = filter(is_str, [1, 'hello','',' ',None,[], 6, 7, 'world', 12, 17])
# print(ret)
# for i in ret:
# print(i)
# [i for i in [1, 4, 6, 7, 9, 12, 17] if i % 2 == 1]

# from math import sqrt
# def func(num):
#    res = sqrt(num)  #开平方,如64开平方是8
#   return res % 1 == 0
# ret = filter(func,range(1,101))  #函数运算结果如为True,则右边变更的值,放到左边的变量里面。函数传参只能传1个参数,否则程序报错
# for i in ret:  #ret是迭代器,只能取值1次。取完后就是空值。
#    print(i)


# ret = map(abs,[1,-4,6,-8])  #对可迭代对象进行函数运算后放到左边的变量中
# print(ret)
# for i in ret:  #ret是迭代器,只能取值1次。取完后就是空值。
#    print(i)


# filter 执行了filter之后的结果集合 <= 执行之前的个数
#filter只管筛选,不会改变原来的值
# map 执行前后元素个数不变
#   值可能发生改变

# l = [1,-4,6,5,-10]
# # l.sort(key = abs) # 在原列表的基础上进行排序
# # print(l)
#
# print(sorted(l,key=abs,reverse=True)) # 生成了一个新列表 不改变原列表 占内存
# print(l)

 

 6,匿名函数

# def add(x,y):
# return x+y

# add = lambda x,y:x+y
# print(add(1,2))

 

posted @ 2018-12-24 20:54  烟云过眼  阅读(101)  评论(0编辑  收藏  举报