一.作用域相关(2)

  1. globals()  查看全局空间作用域中的内容. 函数会以字典的类型返回全部全局变量.

  2. locals()  查看当前空间作用域中的内容. 函数以字典的类型返回当前位置的全部局部变量.

  

print(globals())

def func():
a = 10
print(locals())
return
print(func())

二.迭代器/生成器相关(3)

  1. range()  生成数据

 for i in range(10):
print(i)

  2. iter() 获取迭代器,内部实际使用的是__iter__()方法来获取迭代器

  3. next() 迭代器向下执行一次,内部实际使用了__next__()方法返回迭代器的下一个项目  
lst = ["吃饭", "昨天", "没睡觉","干什么去了?"]
it = lst.__iter__() #获取迭代器
print(it.__next__())
print(next(it))

三.基础数据类型相关(38)

  (一).和数字相关(14)

    I.数据类型(4)

      1. bool()  将给定的数据转换成bool值,如果不给值,返回False

print(bool([1, 3, 5]))
print(bool(''))

      2. int () 将给定的数据转换成int值.如果不给值,返回0.

      3. float()  将给定的数据转换成float值,也就是小数

      4. complex()  创建一个复数.第一个参数为实部,第二个参数为虚部.或者第一个参数直接用字符串来描述复数

    II.进制转换(3)

      1. bin()  将给的参数转换成二进制

      2. oct()  将给的参数转换成八进制

      3. hex()  将给的参数转换成十六进制

a = 5
print(bin(a)) b = 8
print(oct(b)) c = 16
print(hex(c))

    III.数学运算(7)

      1. abs()  返回绝对值

      2. divmod()  返回商和余数

      3. round()   奇数四舍五入,偶数五舍六入

      4. pow(a,b)  求a的b次幂,如果有三个参数,则求完次幂后对第三个数取余

print(abs(-1))   #取绝对值

print(divmod(10, 3))  #返回商3,余数1

print(round(4.5))  #偶数5舍6入

print(round(5.5))  #奇数4舍5入

print(pow(2, 3, 3))  #2**3 % 3

      5. sum()  求和

      6. min()  求最大值

      7. max()  求最小值

a = sum([1, 3, 5])  # 只能是可迭代对象 iterable
print(a) b = min([1, 3, 63, 9, 3])
print(b) c = max([2, 33, 43, 33, 20]) print(c)

  (二).和数据结构相关(24)

    I.序列(13)

      a.列表和元祖(2)

        1. list()  将一个可迭代对象转换成列表

        2. tuple()  将一个可迭代对象转换成元组

      b.相关内置函数(2)

        1. reversed()  将一个序列翻转

lst = [1, 4, 6, 8]
it = reversed(lst)
print('__iter__' in dir(it))
for i in range(len(lst)):
print(next(it))

        2. slice()  列表的切片

st = "⼤家好, 我是麻花藤"
s = slice(1, 5, 2)
print(st[s])

      c.字符串(9)

        1. str()  将数据转化成字符串

        2. format()  与具体数据相关,用于计算各种小数,精算等

# 字符串
print(format('test', '<20')) # 左对⻬
print(format('test', '>20')) # 右对⻬
print(format('test', '^20')) # 居中
# 数值
print(format(3, 'b')) # ⼆进制
print(format(97, 'c')) # 转换成unicode字符
print(format(11, 'd')) # ⼗进制
print(format(11, 'o')) # ⼋进制
print(format(11, 'x')) # ⼗六进制(⼩写字⺟)
print(format(11, 'X')) # ⼗六进制(⼤写字⺟)
print(format(11, 'n')) # 和d⼀样
print(format(11)) # 和d⼀样
# 浮点数
print(format(123456789, 'e')) # 科学计数法. 默认保留6位⼩数
print(format(123456789, '0.2e')) # 科学计数法. 保留2位⼩数(⼩写)
print(format(123456789, '0.2E')) # 科学计数法. 保留2位⼩数(⼤写)
print(format(1.23456789, 'f')) # ⼩数点计数法. 保留6位⼩数
print(format(1.23456789, '0.2f')) # ⼩数点计数法. 保留2位⼩数
print(format(1.23456789, '0.10f')) # ⼩数点计数法. 保留10位⼩数
print(format(1.23456789e+10000, 'F')) # ⼩数点计数法.

        3. bytes()  把字符串转化成bytes类型

s = "你好"
bs = s.encode("utf-8")
print(bs)
s1 = bs.decode("utf-8")
print(s1)
bs = bytes(s, encoding="utf-8") # 把字符串编码成UTF-8
print(bs)

        4. bytearry()  返回一个新字节数组.这个数组里的元素是可变的,并且每个元素的值的范围值(0, 256)

ret = bytearray('alex',encoding='utf-8')
print(ret[0]) #返回a的位置
print(ret) ret = bytearray('王重阳', encoding='utf-8')
print(ret[0]) #在utf-8中,一个中文字符是3bytes,返回第一个byte,也就是1/3个中文的位置
print(ret)
for el in bytearray(b'\xe7\x8e\x8b\xe9\x87\x8d\xe9\x98\xb3'):
print(el)

        5. memoryview()  查看bytes在内存中的情况

s = memoryview("麻花藤".encode("utf-8"))
print(s) #返回内存地址

        6. ord()  输入字符 找带字符编码的位置

        7. chr()  输入位置数字找出对应的字符

        8. ascii()  是ASCII码中的返回该值,不是就返回\u...

# 找到对应字符的编码位置
print(ord('a'))
print(ord('中')) # 找到对应编码位置的字符
print(chr(97))
print(chr(20013)) # 在ascii中就返回这个值. 如果不在就返回\u...
print(ascii('a'))
print(ascii('好'))

        9. repr()  返回一个对象的string形式

# repr 就是原封不动的输出, 引号和转义字符都不起作⽤
print(repr('⼤家好,\n \t我叫周杰伦'))
print('⼤家好我叫周杰伦') # %r 原封不动的写出来
s = '天空\n依然阴霾'
print('歌词:%r' % s) #%r是repr;%s是str;前者是被repr处理后的string对象,后者直接是string对象

    II.数据集合(3)

      a.字典(1)

        dict()  创建一个字典

a = dict()   #创建一个空字典
d = dict(k1='aaa', k2='bbb') #给字典添加键值对
print(a, d)

      b.集合(2)

        1. set()  创建一个集合

set()  #创建一个集合
print(set('hello')) #将hello迭代着加入,且由于set不重复,所以只添加'h','e','l','o'四个元素
print(set(['hello'])) #{'hello'}

        2. frozenset()  创建一个冻结的集合.冻结的集合不能进行添加和删除操作.

set1 = {'barry', 'wusir'}
set2 = frozenset(set1)
print(set2,type(set2)) for el in set2:
print(el)
#frozenset 不可变,可迭代,不能增删,里面仍然无序

    III.相关内置函数(8)

      1. len()  返回一个对象中的元素个数

lst = [1, 2, 3, '呵呵', [1, 2, 3]]
print(len(lst))

      2. sorted()  对可迭代对象进行排序操作

      3. enumerate()  获取集合的枚举对象

lst = ["alex", "wusir", "taibai"]
for index, el in enumerate(lst):
print(str(index)+"==>"+el)

      4. all()  可迭代对象中全部是True,结果才是True , 相当于and

      5. any()  可迭代对象中有一个是True,结果就是True ,相当于or

print(all([1,2,True,0]))
print(any([1,'',0]))

      6. zip()  函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回有这些元组组成

         的列表.如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同. (木桶效应)

lst1 = ["中国", "美国", "俄罗斯", "日本"]
lst2 = ["北京", "华盛顿", "莫斯科"]
lst3 = ["烤鸭", "炸鸡", "黄油+面包", "寿司"] a = zip(lst1, lst2, lst3) # 合并列表, 返回可迭代对象, 水桶效应
print("__iter__" in dir(a)) for el in a:
print(el)

      7. filter()  过滤

      8. map()  会根据提供的函数对指定序列做映射(lamda)

四.其他(12)

  (一).字符串类型代码的执行(3)

    1. eval()  执行字符串类型的代码,并返回最终结果

print(eval('2 + 3'))

n = 1
print(eval('n + 2')) def func():
print('') eval('func()')

    2. exec()  执行字符串类型的代码(只执行,不返回结果)

exec('a = 1 + 2 + 3')
print(a) #a处会出现下划线提示有误,但是可以运行,眼见不一定为实 exec("""
for i in range(10):
print(i)
""") exec("""
def func():
print("我是周杰伦")
func()
""")

    3. compile()  将字符串类型的代码编译,代码对象能够通过exec()语句来执行或通过eval()进求值

'''
参数说明:
1. resource 要执⾏的代码, 动态代码⽚段
2. ⽂件名, 代码存放的⽂件名, 当传⼊了第⼀个参数的时候, 这个参数给空就可以了
3. 模式, 取值有3个,
1. exec: ⼀般放⼀些流程语句的时候
2. eval: resource只存放⼀个求值表达式.
3. single: resource存放的代码有交互的时候. mode应为single
''' code1 = 'for i in range(10): print(i)'
# exec(code1)
c1 = compile(code1, '', mode='exec')
exec(c1) code2 = "1+2+3"
c2 = compile(code2, "", mode="eval")
a = eval(c2)
print(a) code3 = "name = input('请输⼊你的名字:')"
c3 = compile(code3, "", mode="single")
exec(c3)
print(name) #编译后可以执行多行代码
code1 = '''
for i in range(10):
print(1)
print('hello world') def func():
print('我是函数')
func()
'''
c1 = compile(code1, '', 'exec')
exec(c1)

  (二).输入输出(2)

    1. input()   获取用户输入内容,获取到的是字符串

    2. print()  打印输出

  (三).内存相关(2)

    1. hash()   获取到对象的哈希值(int, str, bool, tuple)

    2. id()   获取到对象的内存地址

  (四).文件操作相关(1)

    open()   用于打开一个文件,创建一个文件句柄.

f = open('文件路径', mode= '模式(默认是读r)', encoding= '编码')  #获得句柄

content = f.readline()

print(content)

  (五).模块相关(1)

    __import__()   用于动态加载类和函数

  (六).帮助

    help()   函数用于查看函数或模块用途的详细说明

  (七).调用相关(1)

    callable()   用于检查一个对象是否是可调用的,如果返回True,object有可能调用失败,但如果返回False,调用绝对不会成功

  (八).查看内置属性(1)

    dir()   查看对象的内置属性,方法.访问的是对象中的__dir__()方法

a = {'k1': 1, 2: '呵呵'}
print('__iter__' in dir(a))

print(__name__ )   在本py文件中显示为 __main__

如果在其他py文件中import 这个py文件,则在引入的py文件中,显示出被引入的py文件中print的__name__改变为路径+被引入文件名,

  

Day013--Python--内置函数一的更多相关文章

  1. python内置函数

    python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...

  2. python 内置函数和函数装饰器

    python内置函数 1.数学相关 abs(x) 取x绝对值 divmode(x,y) 取x除以y的商和余数,常用做分页,返回商和余数组成一个元组 pow(x,y[,z]) 取x的y次方 ,等同于x ...

  3. Python基础篇【第2篇】: Python内置函数(一)

    Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位 ...

  4. [python基础知识]python内置函数map/reduce/filter

    python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法) ...

  5. Python内置函数进制转换的用法

    使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer numb ...

  6. Python内置函数(12)——str

    英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string  ...

  7. Python内置函数(61)——str

    英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string ...

  8. 那些年,很多人没看懂的Python内置函数

    Python之所以特别的简单就是因为有很多的内置函数是在你的程序"运行之前"就已经帮你运行好了,所以,可以用这个的特性简化很多的步骤.这也是让Python语言变得特别的简单的原因之 ...

  9. Python 内置函数笔记

    其中有几个方法没怎么用过, 所以没整理到 Python内置函数 abs(a) 返回a的绝对值.该参数可以是整数或浮点数.如果参数是一个复数,则返回其大小 all(a) 如果元组.列表里面的所有元素都非 ...

  10. 【转】实习小记-python 内置函数__eq__函数引发的探索

    [转]实习小记-python 内置函数__eq__函数引发的探索 乱写__eq__会发生啥?请看代码.. >>> class A: ... def __eq__(self, othe ...

随机推荐

  1. MySQL 5.7 关闭严格模式

    If your app was written for older versions of MySQL and is not compatible with strict SQL mode in My ...

  2. 查询的model里面 一般都要有一个要返回的model做属性 ;查询前要传入得参数,查询后返回的参数 都要集合在一个model中

    查询的model里面 一般都要有一个要返回的model做属性

  3. codeforces285B

    Find Marble CodeForces - 285B Petya and Vasya are playing a game. Petya's got n non-transparent glas ...

  4. 百年老图难倒谷歌AI,兔还是鸭?这是个问题

    上面这张图,画的是鸭子还是兔子? 自从1892年首次出现在一本德国杂志上之后,这张图就一直持续引发争议.有些人只能看到一只兔子,有些人只能看到一只鸭子,有些人两个都能看出来. 心理学家用这张图证明了一 ...

  5. 了解AutoCAD对象层次结构 —— 4 —— 符号表

    上一小节我们看到了符号表包含了一系列的表(共9个),这些表数量是固定的,用户不能增加新的表,也不能删除现有的表. 符号表名称 符号表功能 Block Table 块表 存储图形数据库中定义的块.此表中 ...

  6. java zip API实现压缩和解压缩zip包

    package zip; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io ...

  7. java中值类型与引用类型的关系

    值类型:就是java的基本类型.byte.short.int.long.float.char.double.boolean 引用类型:类(class).接口(Interface).数组(Array) ...

  8. 【XSY2715】回文串 树链剖分 回文自动机

    题目描述 有一个字符串\(s\),长度为\(n\).有\(m\)个操作: \(addl ~c\):在\(s\)左边加上一个字符\(c\) \(addr~c\):在\(s\)右边加上一个字符 \(tra ...

  9. CODEFORCES掉RATING记 #1

    时间:2017.7.16晚 比赛:Educational Codeforces Round 25 比赛开始前去睡觉了...开始后5min才起来 一进去就点开AB,B先加载好,就先做了B.读完题后发现是 ...

  10. Educational Codeforces Round 58 A,B,C,D,E,G

    A. Minimum Integer 链接:http://codeforces.com/contest/1101/problem/A 代码: #include<bits/stdc++.h> ...