Python从入门到网络爬虫(内置函数详解)

news2024/11/27 16:40:14

前言

Python 内置了许多的函数和类型,比如print(),input()等,我们可以直接在程序中使用它们,非常方便,并且它们是Python解释器的底层实现的,所以效率是比一般的自定义函数更有效率。目前共有71个内置函数, 接下来让我们一起来看一看吧。

Python学习-71个内置函数,我们把这71个按照功能分类一下,便于记忆。

一、输入输出

  • print():打印输出文本
  • input():获取用户输入文本
print('hello world') 
#控制台输出 hello world

s = input('等待你的输入:') 
print('你输入的内容是' + s) 
#再与用户交互中可以使用input来获取到用户的指令。

二、基本数据类型

1、数字

  • int():整型
# 直接赋值
a = 1

# 类型转换
b = int('2')
  • float():浮点型
# 直接赋值
a = 1.0

# 类型转换
b = float('2.0')
  • bool():布尔型
# 直接赋值
a = True

# 类型转换
b = bool(0)
  • complex():复数类型
# 复数类型结构为 a + bj,其中 a 为实部,b 为虚部
data1 = 1 + 2j
data2 = 2 + 3j
print("data1 + data2 :", data1 + data2)
# 运行结果
# data1 + data2 : (3+5j)

2、字符串

  • str():字符串类型
# 直接赋值
str1 = 'abcd'

# 类型转换
string = str(123456)

3、列表

  • list():列表类型,将一个可迭代对象转换为列表
# 直接赋值,用中括号包裹,用逗号分隔元素
list1 = [1, 2, 3, 4, 5]

# 可以利用range函数赋值
list2 = list(range(1, 10))

4、元组

  • tuple():元组类型,将一个可迭代对象转换为元组
# 直接赋值,使用小括号包裹,用逗号分隔元素(小括号其实也可以省略)
tuple1 = ("Python教程", "学习Python")

# 使用tuple函数创建
tuple2 = tuple("hello")

5、集合

  • set():集合类型,创建一个集合
# set集合接受可迭代对象作为参数
set1 = set([1, 2, 3, 4, 5])
set2 = set(('python', 'xiaolong'))

6、字典

  • dict():字典类型,创建一个字典
# 直接赋值,使用花括号包裹,key和value中间使用冒号,用逗号分隔元素
dict1 = {'品类': '苹果', '价格': '10'}

# 使用zip函数将两个列表转为字典
keys = ['苹果', '梨', '香蕉']
values = [10, 20, 30]
dict2 = dict(zip(keys, values))

三、数学运算

  • abs():返回绝对值
a = abs(-11)
  • divmod():返回商和余数
a = divmod(5, 3)

print(a) # (1, 2)
  • round():四舍五入
a = round(10.2453, 2)

print(a) # 10.25
  • pow(a,b):返回a的b次幂,如果有第三个参数,则求完幂次后对第三个数取余
a = pow(10, 2)

print(a)  # 100
  • sum():求和
list1 = [1, 2, 3, 4, 5]
a = sum(list1)

print(a) # 15
  • min():求最小值
list1 = [1, 2, 3, 4, 5]
a = min(list1)

print(a) # 1
  • max():求最大值
list1 = [1, 2, 3, 4, 5]
a = max(list1)

print(a) # 5

四、进制转换

  • bin():将给定的参数转换为二进制
a = bin(6)
print(a) # 0b110 6的二进制是110
  • oct():将给定的参数转换为八进制
a = oct(8)
print(a) # 0o10
  • hex():将给定的参数转换为十六进制
a = hex(8)
print(a) # 0x8

五、序列集合操作

  • reversed():将一个序列翻转,返回一个反向的迭代器
# reversed接受一个序列参数,返回的是一个逆迭代对象,所以需要在使用序列再转换回去
list1 = [1, 2, 3, 4, 5]
print(list(reversed(list1)))

# 输出[5, 4, 3, 2, 1]
  • slice():列表的切片
# slice主要做序列切片,可以从其中切取部分重新组成新的序列
list1 = [1, 2, 3, 4, 5]
s = slice(1, 3)
print(list1[s])

# 推荐使用简写方式:lst[start:stop]
list1 = [1, 2, 3, 4, 5]
print(list1[1:3])
  • bytes():把字符串转化为bytes类型
b = bytes('hello world', encoding='utf-8')
print(b) # b'@\xe7\xa8\x8b\xe5\xba\x8f\xe5\x91\x98\xe5\xb0\x8f\xe9\xbe\x99'
  • ord():输入字符找到对应编码的位置
print(ord('a'))   # 97
print(ord('小'))  # 31243
  • chr():输入位置数字找出对应的字符
# 输出33~1000数字对应的字符
for i in range(33, 1000):
    print(chr(i), end=' ')
  • ascii():将Unicode字符串转换为ASCII字符串
print(ascii('Hello World\n'))

#'Hello,@\u7a0b\u5e8f\u5458\u5c0f\u9f99\n'
  • repr():返回一个对象的字符串形式
# repr原样输出,会过滤掉转义字符
s = 'Hello World'
print(s) 

# Hello,     
print(repr(s)) # 'Hello,World\n'
  • len():返回一个对象中元素的个数
# 获取个数
list1 = [1, 2, 3, 4, 5]
print(len(list1))
  • sorted():对可迭代对象进行排序操作
# 对迭代对象进行排序,可以选择正序,逆序
list1 = [1, 5, 8, 3, 4, 2]
print(sorted(list1))
print(sorted(list1, reverse=True))

# 自定义规则
list2 = ['one', 'two', 'three', 'four', 'five', 'six']
def func(s):
    return len(s)
print(sorted(list2, key=func))
  • enumerate():获取集合的枚举对象
score_dict = {
    '张三': 33,
    '李四': 36,
    '王五': 74,
    '赵六': 56,
    '李白': 88,
    '王维': 98,
    '杜甫': 100,
    '王昌龄': 89,
    '王之涣': 97,
    '王羲之': 93
}

score_dict_sorted = sorted(score_dict.items(), key=lambda x:x[1], reverse=True)

for index, (name, score) in enumerate(score_dict_sorted, start=1):
    print(f'第{index}名:{name}\t成绩:{score}')

# 第1名:杜甫        成绩:100
# 第2名:王维        成绩:98
# 第3名:王之涣      成绩:97
# 第4名:王羲之      成绩:93
# 第5名:王昌龄      成绩:89
# 第6名:李白        成绩:88
# 第7名:王五        成绩:74
# 第8名:赵六        成绩:56
# 第9名:李四        成绩:36
# 第10名:张三       成绩:33
  • all():可迭代对象中所有元素都为True,返回结果才为True
  • any():可迭代对象中只要有一个是True,返回结果就是True
  • zip():在多个迭代器上并行迭代,从每个迭代器返回一个数据项组成元组,如果各个迭代器的元素个数不同,则返回列表长度与最短的对象相同
# zip可以将多个迭代器转换成元组
list1 = [1, 2, 3]
list2 = ['苹果', '香蕉', '梨']
list3 = [10, 20, 15]

for data in zip(list1, list2, list3):
    print(data)

# (1, '苹果', 10)
# (2, '香蕉', 20)
# (3, '梨', 15)
  • filter():过滤器可以接收一个自定义筛选函数,将迭代器中的元素传到函数中进行判断,用来确定是否保留这个元素。
# 过滤出数据中的偶数
def func(i):
    return i % 2 == 0

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
lst = filter(func, list1)
print(list(lst))

# [2, 4, 6, 8]
  • map():可以对可迭代对象中的元素进行映射,分别去执行自定义函数
# 给数据中每个元素加1
def func(i):
    return i + 1

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
lst = map(func, list1)
print(list(lst))

# [2, 3, 4, 5, 6, 7, 8, 9, 10]

六、文件操作

  • open():用于打开一个文件,创建文件句柄
f = open("name.txt", 'r', encoding='utf-8')
f.read()
f.close()

七、和迭代器相关

  • range():生成可迭代数据
  • next():迭代器向下执行一次
  • iter():获取迭代器
# 使用range生成数据给列表
# iter获取序列的一个迭代器,然后可以使用next进行逐个输出
list1 = list(range(1, 6)) # [1, 2, 3, 4, 5]
it = iter(list1)
print(next(it)) # 1

八、作用域相关(用于查错)

  • locals():返回当前作用域中的变量名字
  • globals():返回全局作用域中的变量名字
# 当前作用域和全局作用域的用法
def func():
    a = 100
    b = 'abc'
    print(locals())
    print('-------')
    print(globals())

func()
# {'a': 100, 'b': 'abc'}
#-------
# {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x10e13ef70>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/Users/troy/Documents/2_team-workspace/python-dev/0_utils/1.py', '__cached__': None, 'func': <function func at 0x10e1430d0>}

九、其他

  • help():函数用于查看其他函数或者模块的说明
# 获取list函数的帮助文档
print(help(list))
  • callable():用于检查一个对象是否可以调用
s = 'Hello World'
print(callable(s))  # False

def hello():
    pass
print(callable(hello))  # True
  • hash():获取到hash值,用于做key
# 基本使用方法,hash是唯一的,可以用来做数据的key值
s = 'Hello World'
print(hash(s))
  • dir():查看对象的内置属性
# 查询str的内置方法
print(dir(str))
  • __import__():用于动态加载类和函数
# 动态加载os模块
name = input("请输入你要导入的模块:")  # 输入os
os = __import__(name)
print(os.getcwd())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1357141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java编程中的IO模型详解:BIO,NIO,AIO的区别与实际应用场景分析

IO模型 IO模型就是说用什么样的通道进行数据的发送和接收&#xff0c;Java 共支持3种网络编程IO 模式&#xff1a;BIO,NIO,AIO BIO(Blocking lO) 同步阻塞模型&#xff0c; 一个客户端连接对应一个处理线程 代码示例&#xff1a; package com.tuling.bio; import java.io.…

回归预测 | Matlab实现基于GA-Elman遗传算法优化神经网络多输入单输出回归预测

回归预测 | Matlab实现基于GA-Elman遗传算法优化神经网络多输入单输出回归预测 目录 回归预测 | Matlab实现基于GA-Elman遗传算法优化神经网络多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于GA-Elman遗传算法优化神经网络多输入单输…

内核死锁检测--lockdep(linux3.16)

之前看网上说linux内核自带了死锁检测工具。现在试试使用效果怎么样。感觉确实能够检测到&#xff0c;后面有时间在研究原理把。 死锁检测lockdep实现原理-CSDN博客//这个文章讲了一些检测原理 需要开启如下选项&#xff08;选项应该是开多了&#xff0c;用最后三个就行&#x…

Linux之IP地址、主机名、域名解析

一、IP地址 可以通过ifconfig命令查看本机的ip地址&#xff0c;如果无法使用ifconfig命令&#xff0c;可以安装 安装&#xff1a;yum -y install net-tools ens33&#xff1a;主网卡&#xff0c;里面的inet就是ip地址 lo&#xff1a;本地回环网卡&#xff0c;127.0.0.1&…

工具网站DefiLlama全攻略:从零学习链上数据使用与发现

DefiLlama 是一个 DeFi(去中心化金融)信息聚合器,其主要功能是提供各种 DeFi 平台的准确、全面数据。DefiLlama 致力于在不受广告或赞助内容影响的情况下为用户提供这些数据,以确保信息内容的透明度和公正性,该平台聚合来自多个区块链的数据,让用户能够全面了解 DeFi 格局…

【React系列】高阶组件

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 高阶组件 1.1. 认识高阶组件 什么是高阶组件呢&#xff1f;相信很多同学都听说过&#xff0c;也用过 高阶函数&…

windows 10 安装wsl ubuntu

1.首先管理员模式打卡powershell&#xff0c;执行 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 2.执行 wsl --update wsl --…

在k8s集群中部署多nginx-ingress

关于ingress的介绍&#xff0c;前面已经详细讲过了&#xff0c;参考ingress-nginx详解和部署方案。本案例ingress的部署使用deploymentLB的方式。 参考链接&#xff1a; 多个ingress部署 文章目录 1. 下载ingress的文件2. 文件资源分析3. 部署ingress3.1 部署第一套ingress3.1…

Centos7静态网络配置

在vmware中打开&#xff0c; 点击虚拟网络编辑器&#xff0c;修改以下配置 网关IP最后一位固定为2&#xff0c;这个160根据下图中vmnet8的ip地址来的 打开网络控制面板>打开vmnet8查看 接着打开linux&#xff0c;有桌面版的使用桌面版更加方便 箭头这么乱&#xff0c;但是你…

华为欧拉安装部署:Oracle11g

一、环境准备 1、下载安装低版本的libaio包&#xff1b;libaio版本太高&#xff0c;会造成编译错误 查看libaio1库版本不能大于0.3.109 [oracles3 install]$ rpm -qa libaio libaio-0.3.110-12.el8.x86_64# 查看欧拉操作系统版本 [oraclelocalhost bin]$ cat /etc/os-release…

Pytest自动化的坑

1、封装pytest的类型&#xff0c;名称的开头需要使用Test开头命名类&#xff0c;否则会出现运行pytest找不到类的情况 2、函数被pytest.fixtrue装饰之后&#xff0c;就不能再直接引用函数方法&#xff0c;需要把函数名称当作参数传到其他的函数中使用 3、conftest的全局变量名称…

手写一个加盐加密算法(java实现)

目录 前言 什么是MD5&#xff1f;&#xff1f; 加盐算法 那别的人会不会跟你得到相同的UUID&#xff1f; 如何使用盐加密&#xff1f; 代码实现 前言 对于我们常见的登录的时候需要用到的组件&#xff0c;加密是一个必不可少的东西&#xff0c;如果我们往数据库存放用户…

PHP 基础编程 2

文章目录 时间函数dategetdatetime 使用数组实现登录注册和修改密码简单数组增加元素方法修改元素方法删除元素方法 具体实现方法数组序列化数组写入文件判断元素是否在关联数组中&#xff08;登录功能实现&#xff09;实现注册功能实现修改admin用户密码功能 时间函数 时区&am…

大数据情况下如何保证企业数据交换安全

数据交换是指在网络或其他方式下&#xff0c;不同主体按照规定的规则和标准实现数据的共享、传输和处理的过程。大数据时代的到来使得数据交换的重要性更为凸显&#xff0c;大数据带来了海量、多样、高速、低价值密度等特点&#xff0c;也带来了更多的价值挖掘和应用场景。 保障…

Spring常用注解及模拟用户登录流程示例

注解 Resource注解实现自动注入 (反射)代码块xml配置文件 Autowired注解实现自动化注入代码块xml配置文件 扫描器-四个注解Dao层-RepositoryService层-ServiceController层-Controller测试任意类-Component 常用注解示例-模拟用户登录配置自动扫描的xml文件实体类Userdao层消息…

Java异常简单介绍

文章目录 1. 异常分类和关键字1.1 分类1.2 关键字 2. Error2.1 Error定义2.2 常见的Error2.2.1 VirtualMachineError2.2.2 ThreadDeath2.2.3 LinkageError2.2.4 AssertionError2.2.5 InternalError2.2.6 OutOfMemoryError2.2.6.1 OOM原因2.2.6.2 OutOfMemoryError会导致宕机吗 …

【React系列】Hook(一)基本使用

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 认识hook 1.1. 为什么需要hook Hook 是 React 16.8 的新增特性&#xff0c;它可以让我们在不编写class的情况下…

Java多线程技术10——线程池ThreadPoolExecutor之Executor接口

1 概述 在开发服务器软件项目时&#xff0c;经常需要处理执行时间很短并且数据巨大的请求&#xff0c;如果为每一个请求创建一个新的线程&#xff0c;则会导致性能上的瓶颈。因为JVM需要频繁地处理线程对象的创建和销毁&#xff0c;如果请求的执行时间很短&#xff0c;则有可能…

【linux】日志管理和分析

一、概述 在Linux系统的管理和运维中&#xff0c;日志文件起到至关重要的作用。它们记录了系统运行过程中的各种事件&#xff0c;包括系统故障、性能数据和安全事件。 二、 日志的作用和分类 日志的作用 日志文件记载了系统的生命线&#xff0c;利用它们可以&#xff1a; 1…

Linux第7步_设置虚拟机的电源

设置ubuntu代码下载源和关闭“自动检查更新”后&#xff0c;就要学习设置“虚拟机的电源”了。 用处不大&#xff0c;主要是了解”螺丝刀和扳手形状的图标“在哪里。 1、打开虚拟机&#xff0c;点击最右边的“下拉按钮”&#xff0c;弹出对话框&#xff0c;得到下图&#xff…