【一】数据类型转换(8)
【1】数字类型转换
(1)整数类型转换(int)
- int : 整型(整数)
a = '123'
print(a, type(a))
# 123 <class 'str'>
a_int = int(a)
print(a_int, type(a_int))
# 123 <class 'str'>
(2)浮点数类型转换(float)
- float : 浮点型(小数)
a = 123
print(a, type(a))
# 123 <class 'int'>
a_float = float(a)
print(a_float, type(a_float))
# 123.0 <class 'float'>
【2】字符串类型转换(str)
-
str : 将数据转化成字符串
a = 123 b=str(a) print(b, type(b)) # 123 <class 'str'>
【3】布尔类型转换(bool)
- bool: 布尔类型(True / False)
a=123
b = bool(a)
print(b, type(b))
# True <class 'bool'>
【4】列表类型转换(list)
-
list :将一个可迭代对象转换成列表
a=(i for i in range(5)) b = list(a) print(b, type(b)) # [0, 1, 2, 3, 4] <class 'list'>
【5】元祖类型转换(tuple)
-
tuple : 将一个可迭代对象转换成元组
a=[i for i in range(5)] b = tuple(a) print(b, type(b)) # (0, 1, 2, 3, 4) <class 'tuple'>
【6】字典类型转换(dict)
- dict :创建一个字典,可接受可迭代对象,用键值对初始化字典。
a={
'a': 2,
'b': 3
}
b = dict(a)
print(b, type(b))
# {'a': 2, 'b': 3} <class 'dict'>
【7】集合类型转换(set)
- set :创建一个集合, 函数用于创建一个集合,自动去除重复元素。
a=[i for i in range(5)]
b = set(a)
print(b, type(b))
# {0, 1, 2, 3, 4} <class 'set'>
【二】数学进制转换(3)
【1】十进制转二进制(bin)
-
bin:将给的参数转换成二进制
a = 10 b = bin(a) print(b) # 0b1010
【2】十进制转八进制(oct)
-
oct: 将给的参数转换成八进制
a = 10 b = oct(a) print(b) # 0o12
【3】十进制转十六进制(hex)
-
hex: 将给的参数转换成十六进制
a = 10 b = hex(a) print(b) # 0xa
【三】数学运算(8)
(1)获取绝对值(abs)
-
abs:返回绝对值
a = -10 b = abs(a) print(b) # 10
(2)获取商和余数(divmod)
-
divmod:返回(商,余数)
a =divmod(8,6) print(a) # (1, 2)
(3)四舍五入(round)
-
round: 四舍五入
- 默认情况下,小数点的数量是0。
- 因此,如果你调用 round() 时没有第二个参数,该函数将返回最近的整数。
print(round(2.555)) # 2 print(round(2.555,2)) # 2.56
(4)a的b次幂(pow)
-
pow(a, b) 求a的b次幂, 如果有三个参数. 则求完次幂后对第三个数取余
''' 参数介绍: x — 数值表达式(整数或者浮点数); y — 数值表达式(整数或者浮点数); z — 数值表达式(整数或者浮点数),默认不设置z值; 返回值:返回 xy(x的y次方)的值;如果设置了z值,则再对结果进行取模,其结果等效于pow(x,y) %z; ''' pow(x, y[, z])
- pow 函数常规使用
print(pow(2, 3)) # 8 print(2 * 2 * 2) # 8 print(pow(2, 3,5)) # 3 print(2 * 2 * 2 % 5) # 3
(5)求和(sum)
-
sum() 求和
a=[i for i in range(10)] print(sum(a)) #45
(6)最小值(min)
-
min() 求最小值
a=[2,5,6,8,5,9] print(min(a)) # 2
(7)最大值(max)
-
max() 求最大值
a=[2,5,6,8,5,9] print(max(a)) # 9
(8)复数转换(complex)
- comple(实数,虚数) : 复数 ,虚数默认为零。
a=complex(5,3)
print(a) # (5+3j)
【四】序列相关(5)
(1)翻转(reversed)
-
reversed() 将一个序列翻转, 返回翻转序列的迭代器
a = "123456" b= reversed(a) print(list(b)) # ['6', '5', '4', '3', '2', '1']
(2)切片(slice)
-
slice() 列表的切片
a = "123456" print(a[1:3:1]) # 23 s = slice(1, 3, 1) print(a[s]) # 23
(3)计算长度(len)
- len() 返回一个对象中的元素的个数
a = "123456"
print(len(a)) # 6
(4)排序(sorted)
-
语法:sorted(Iterable, key=函数(排序规则), reverse=False)
- Iterable: 可迭代对象
- key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数. 根据函数运算的结果进行排序
- reverse: 是否是倒叙. True: 倒叙, False: 正序
-
sorted() 对可迭代对象进行排序操作 (lamda)
a=[2,1,3,5,6,8,9] a.sort() print(a) # [1, 2, 3, 5, 6, 8, 9] # 内置函数. 返回给你一个新列表 新列表是被排序的 ll = sorted(a) print(ll) # [1, 2, 3, 5, 6, 8, 9] # 倒序 l2 = sorted(a, reverse=True) print(l2) # [9, 8, 6, 5, 3, 2, 1]
(5)枚举(enumerate)
-
enumerate() 获取集合的枚举对象
a=['a','b','c'] for index, el in enumerate(a, 1): print(index,el) # 1 a # 2 b # 3 c
【五】字符串(4)
(1)格式化输出(format)
-
format() 与具体数据相关, 用于计算各种小数, 精算等.
- 对齐方式
s = "abc" print(format(s, "^10")) # 居 中 # abc print(format(s, "<10")) # 左对齐 # abc print(format(s, ">10")) # 右对齐 # abc
- 进制转换
# 二进制 print(format(255, 'b')) # 11111111 # 转换成unicode字符 print(format(255, 'c')) # ÿ # ⼗进制 print(format(255, 'd')) # 255 # 八进制 print(format(255, 'o')) # 377 # 十六进制(⼩写字母) print(format(255, 'x')) # ff # 十六进制(大写字母) print(format(255, 'X')) # FF # ⼗进制 print(format(255, 'n')) # 255 # ⼗进制 print(format(255)) # 255
- 科学计数法
print(format(123456789, 'e')) # 科学计数法. 默认保留6位小数:1.234568e+08 print(format(123456789, '0.2e')) # 科学计数法. 保留2位小数(小写):1.23e+08 print(format(123456789, '0.2E')) # 科学计数法. 保留2位小数(大写):1.23E+08 print(format(1.23456789, 'f')) # 小数点计数法. 保留6位小数:1.234568 print(format(1.23456789, '0.2f')) # 小数点计数法. 保留2位小数:1.23 print(format(1.23456789, '0.10f')) # 小数点计数法. 保留10位小数:1.2345678900 print(format(1.23456789e+3, 'F')) # 小数点计数法. 很大的时候输出INF:1234.567890
(2)字符串转bytes(bytes)
-
bytes() 把字符串转化成bytes类型
bs = bytes("元旦快乐", encoding="utf-8") print(bs) # b'\xe5\x85\x83\xe6\x97\xa6\xe5\xbf\xab\xe4\xb9\x90'
(3)获取字节数组(bytearray)
-
bytearray()
-
返回一个新字节数组. 这个数字的元素是可变的, 并且每个元素的值得范围是[0,256)
bs = bytearray("元旦快乐", encoding="utf-8") print(bs) # b'\xe5\x85\x83\xe6\x97\xa6\xe5\xbf\xab\xe4\xb9\x90' print(bs[0]) # 229
-
(4)返回对象的字符串格式(repr)
-
repr() 返回一个对象的string形式
word = "今天\n吃了%s顿\t饭" % 3 print(word) # 今天 # 吃了3顿 饭 # 原样输出,过滤掉转义字符 \n \t \r 不管百分号% print(repr(word)) # '今天\n吃了3顿\t饭'
【六】字符编码(3)
(1)字符编码找数字(ord)
-
ord() 输入字符找带字符编码的位置
print(ord('a')) # 字母a在编码表中的码位:97 print(ord('求')) # '求'字在编码表中的位置:27714
(2)数字找字符编码(chr)
-
chr() 输入位置数字找出对应的字符
print(chr(65)) # 已知码位,求字符是什么:A print(chr(20000)) # 丠
(3)数字找ASCII码(ascii)
-
ascii() 是ascii码中的返回该值 不是就返回u
print(ascii("a")) #'a' print(ascii("$")) #'$' print(ascii("这")) #'\u8fd9'
【七】数据集合(1)
- 创建一个冻结的集合(frozenset)
- frozenset() 创建一个冻结的集合,冻结的集合不能进行添加和删除操作。
- 注释:
frozenset()
函数返回一个不可变的 frozenset 对象,适用于作为字典的键或集合的元素。
# 示例
frozen_set = frozenset([1, 2, 3, 4, 5])
print(frozen_set)
# 输出:frozenset({1, 2, 3, 4, 5})
【八】判断条件(2)
(1)所有为真(all)
-
all() 可迭代对象中全部是True, 结果才是True
print(bool(0)) #False print(all([1,'hello',True,0])) # False
(2)任意为真(any)
-
any() 可迭代对象中有一个是True, 结果就是True
print(any([0,0,False,1])) #True
【九】高阶函数(3)
(1)打包(zip)
- zip() 函数
- 用于将可迭代的对象作为参数
- 将对象中对应的元素打包成一个元组
- 然后返回由这些元组组成的列表.
- 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同
lst1 = [1, 2, 3, 4, 5, 6]
lst2 = ['a','b','c']
print(zip(lst1, lst1))
# <zip object at 0x000002233FC74E40>
# 将三组列表打包成 一对一 的元祖
# 如果少则按最少算
for el in zip(lst1, lst2):
print(el)
# (1, 'a')
# (2, 'b')
# (3, 'c')
(2)过滤(filter)
- 语法:fiter(function. Iterable)
- function: 用来筛选的函数.
- 在filter中会自动的把iterable中的元素传递给function.
- 然后根据function返回的True或者False来判断是否保留留此项数据
- Iterable: 可迭代对象
- function: 用来筛选的函数.
- filter() 过滤 (lamda)
def func(i): # 判断奇数
return i % 2 == 1
lst = [i for i in range(10)]
# l1是迭代器
l1 = filter(func, lst)
print(l1) # <filter object at 0x000001CE3CA98AC8>
print(list(l1))
# [1, 3, 5, 7, 9]
(3)映射(map)
- 语法 : map(function, iterable)
- 可以对可迭代对象中的每一个元素进行映射. 分别去执行 function
- map() 会根据提供的函数对指定序列列做映射(lamda)
def func(i): # 判断奇数
return i % 2 == 1
lst = [i for i in range(10)]
# l1是迭代器
l1 = map(func, lst)
print(l1) # <map object at 0x000001776E6BCDF0>
print(list(l1))
# [False, True, False, True, False, True, False, True, False, True]
【十】作用域(2)
- locals() 返回当前作用域中的名字
- globals() 返回全局作用域中的名字
name = "dream"
def func():
a = 10
# 当前作用域中的内容
print(f"这是当前作用域中的内容 :>>>> {locals()}")
# 全局作用域中的内容
print(f"这是全局作用域中的内容 :>>>> {globals()}")
print("我是函数func内部")
func()
# 这是当前作用域中的内容 :>>>> {'a': 10}
# 这是全局作用域中的内容 :>>>> {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000002687A368910>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'E:\\PythonProjects\\09Python的内置函数\\01start.py', '__cached__': None, 'name': 'dream', 'func': <function func at 0x000002687A3D35B0>}
# 我是函数func内部
【十一】迭代器生成器(3)
(1)循环生成数据(range)
- range() 生成数据
print(range(1, 10))
# range(1, 10)
print([i for i in range(1, 10)])
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
(2)获取迭代器(iter)
- iter()
- 获取迭代器, 内部实际使用的是__ iter__()方法来获取迭代器
lst = [i for i in range(10)]
it = iter(lst)
print(it)
# <list_iterator object at 0x000001D4C69EC940>
(3)向下执行(next)
- next()
- 迭代器向下执行一次, 内部实际使用了__ next__()方法返回迭代器的下一个项目
lst = [i for i in range(10)]
it = iter(lst)
print(it)
# <list_iterator object at 0x000001BFF2737160>
print(next(it))
# 0
print(next(it))
# 1
print(next(it))
# 2
【十二】字符串类型代码的执行(3)
(1)指定指令并返回结果(eval)
-
eval() 执行字符串类型的代码. 并返回最终结果
s1 = input("请输入a+b:") # 输入:5*6 # 可以动态的执行代码. 代码必须有返回值 print(eval(s1)) # 30
(2)指定指令不返回结果(exec)
-
exec() 执行字符串类型的代码
s2 = "for i in range(5): print(i)" # exec 执行代码不返回任何内容 a = exec(s2) # 0 # 1 # 2 # 3 # 4 print(a) # None # 动态执行代码 exec(""" def func(): print(" 我是周杰伦") """) func() # 我是周杰伦
(3)编码指令
-
compile() 将字符串类型的代码编码. 代码对象能够通过exec语句来执行或者eval()进行求值
code1 = "for i in range(3): print(i)" # compile并不会执行你的代码.只是编译 com = compile(code1, "", mode="exec") # 执行编译的结果 exec(com) # 0
【十三】输入输出(2)
-
print() : 打印输出
print("钱", "水", sep="*", end="@") # sep:打印出的内容用什么连接 # end:以什么为结尾 # 钱*水@
-
input() : 获取用户输出的内容
【十四】算法(1)
-
hash() :
- 获取到对象的哈希值(int, str, bool, tuple).
s = 'qcc' print(hash(s)) # -5212975676261309940
- 列表不允许hash
-
hash算法:
- (1) 目的是唯一性
- (2) dict 查找效率非常高
-
hash表:
- 用空间换的时间 比较耗费内存
【十五】文件操作(1)
-
open() : 用于打开一个文件, 创建一个文件句柄
f = open('file',mode='r',encoding='utf-8') f.read() f.close()
【十六】导入模块(1)
-
__ import__() : 用于动态加载类和函数
# 让用户输入一个要导入的模块 name = input("请输入你要导入的模块:") json = __import__(name) # 可以动态导入模块 print(json.dumps({"name": "qcc"})) # {"name": "qcc"}
【十七】帮助(1)
-
help() : 函数用于查看函数或模块用途的详细说明
# 查看字符串的用途 print(help(str))
【十八】调度相关(1)
-
callable() : 用于检查一个对象是否是可调用的
- 如果返回True, object有可能调用失败
- 但如果返回False. 那调用绝对不会成功
a = 'a' print(callable(a)) # False def f(): print("hello") # 函数是可以被调用的 print(callable(f)) # True
【十九】查看内置属性(1)
-
dir() : 查看对象的内置属性
-
访问的是对象中的
__dir__()
方法# 查看元组的方法 print(dir(tuple)) # ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
-
【二十】类的静态方法(classmethod)
- 将方法转换为类方法
class B(object):
num = 10
def func1(self):
print('self')
@classmethod
def func2(cls):
print('func2')
print(cls.num)
cls().func1()
B.func2()
【二十一】判断内存空间地址(id)
- id()函数用于返回一个对象的唯一标识符。
a = 5
b = 5
print("a的标识符为:", id(a))
print("b的标识符为:", id(b))
# a的标识符为: 140707288191088
# b的标识符为: 140707288191088
【二十二】类的装饰器(property)
fget
是获取属性值的方法。fset
是设置属性值的方法。fdel
是删除属性值的方法doc
是属性描述信息
class Student:
def __init__(self):
self._age = None
def get_age(self):
return self._age
def set_age(self, age):
self._age = age
age = property(get_age, set_age)
student = Student()
student.age = 18
print('学生年龄为:' + str(student.age))
# 学生年龄为:18
标签:__,10,内置,函数,迭代,format,print,True
From: https://www.cnblogs.com/unrealqcc/p/17947593