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

前言

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())

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python爬取解放号外包需求案例,利用post参数多页爬取

代码展示&#xff1a; import requests import csv f open(外包数据.csv,modea,encodingutf-8,newline) csv_writer csv.writer(f) csv_writer.writerow([标题,编号,开始时间,结束时间,价格,状态,类型,投标人数,详情页]) def down_load(page): for page in range(1,page…

​电脑技巧:​笔记本电脑电流声的原因和解决方案

目录 一、音频设备接口接触不良 二、笔记本电源问题 三、笔记本电脑驱动程序问题 四、音频硬件问题 五、操作系统内部电磁干扰 六、最后总结 大家在日常生活当中&#xff0c;笔记本电脑已经成为我们工作、学习和娱乐的重要工具。但有时我们在使用过程中可能会遇到一个令人…

React组件之间的8种通讯方式

在 React 社区&#xff0c;遇到最多的其中一个问题是“不同组件之间如何相互通讯”。 在网上搜索了一些答案之后&#xff0c;早晚会有人提到 Flux&#xff0c;随后问题来了&#xff1a;“怎么用Flux解决通讯问题&#xff1f;Flux是必须的吗&#xff1f;”。 有时候 Flux 能解…

C++完成Query执行sql语句的接口封装和测试

1、在LXMysql.h 创建Query执行函数 //封装 执行sql语句 if sqllen 0 strlen获取字符长度bool Query(const char*sql,unsigned long sqllen0); 2、在LXMysql.cpp编写函数 bool LXMysql::Query(const char* sql, unsigned long sqllen){if (!mysql)//如果mysql没有初始化好{c…

C/C++ BM4 合并两个排序的链表

文章目录 前言题目1. 解决方案一1.1 思路概述1.2 源码 2. 解决方案二2.1 思路阐述2.2 源码 总结 前言 这道题采用两种方式&#xff0c;一种是直接插入法&#xff0c;还有一种就是递归调用。 题目 输入两个递增的链表&#xff0c;单个链表的长度为n&#xff0c;合并这两个链表…

imgaug库指南(四):从入门到精通的【图像增强】之旅

引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此&#xff0c;数据增强技术应运而生&#xff0c;成为了解决这一问题的…

AntDB内存管理之内存上下文

1. 主题说明 AntDB的内存管理在开发时&#xff0c;使用了内存上下文机制来实现内存管理。本文就从AntDB的内存上下文机制出发&#xff0c;解析内存上下文的实现原理。AntDB的代码中&#xff0c;涉及到内存的处理时&#xff0c;经常会看到下面这样的代码。 图1&#xff1a;切换…

SpringBean的生命周期

SpringBean Bean的生命周期 1、首先需要明确bean对象与普通对象的区别: 对于普通的 Java 对象&#xff0c;当 new 的时候创建对象&#xff0c;然后该对象就能够使用了。一旦该对象不再被使用&#xff0c;则由 Java 自动进行垃圾回收。 而 Spring 中的对象是 bean&#xff0c;…

Gin 路由注册与请求参数获取

Gin 路由注册与请求参数获取 文章目录 Gin 路由注册与请求参数获取一、Web应用开发的两种模式1.前后端不分离模式2.前后端分离模式 二、RESTful介绍三、API接口3.1 RESTful API设计指南3.2 API与用户的通信协议3.3 RestFul API接口设计规范3.3.1 api接口3.3.2 接口文档&#xf…

C++_模板

目录 1、函数模板 1.2 模板原理 2、多个模板参数 3、模板的显示实例化 4、模板的匹配 5、类模板 结语&#xff1a; 前言&#xff1a; 在C中&#xff0c;模板分为函数模板和类模板&#xff0c;而模板的作用就是避免了重复的工作&#xff0c;把原本是程序员要做的重复工作…

内网DNS隐蔽隧道搭建之iodine工具

iodine iodine是基于C语言开发的&#xff0c;分为服务端和客户端。iodine支持转发模式和中继模式。其原理是&#xff1a;通过TAP虚拟网卡&#xff0c;在服务端建立一个局域网&#xff1b;在客户端&#xff0c;通过TAP建立一个虚拟网卡&#xff1b;两者通过DNS隧道连接&#xf…

YACS(上海计算机学会竞赛平台)2023年12月月赛——移动复位

移动复位 内存限制: 256 Mb时间限制: 1000 ms 题目描述 二维平面上有一个点。该点最初所在的位置称之为起点。接下来&#xff0c;该点接受了一串命令&#xff0c;每个命令可以用一个大写字母表示&#xff1a; R 表示该点沿 X 轴坐标正方向移动了一个单位&#xff1b;L 表示…

AI实景无人直播创业项目:开启自动直播新时代,一部手机即可实现增长

在当今社会&#xff0c;直播已经成为了人们日常生活中不可或缺的一部分。无论是商家推广产品、明星互动粉丝还是普通人分享生活&#xff0c;直播已经渗透到了各行各业。然而&#xff0c;传统直播方式存在着一些不足之处&#xff0c;如需现场主持人操作、高昂的费用等。近年来&a…

CentOs 环境下使用 Docker 部署 Ruoyi-Vue

CentOs 环境下使用 Docker 部署 Ruoyi-Vue RuoYi-Vue 项目下载地址 RuoYi-Vue: &#x1f389; 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分离权限管理系统&#xff0c;同时提供了 Vue3 的版本 (gitee.com) Docker 部…

x-cmd pkg | tig - git 文本模式界面

目录 简介首次用户功能特点类似工具与竞品进一步探索 简介 tig 由 Jonas Fonseca 于 2006 年使用 C 语言创建的 git 交互式文本命令行工具。旨在开启交互模式快速浏览 git 存储库的信息以及 git 命令的运行。 首次用户 使用 x tig 即可自动下载并使用 在终端运行 eval "…

NeurIPS上新 | 从扩散模型、脑电表征,到AI for Science,微软亚洲研究院精选论文

编者按&#xff1a;欢迎阅读“科研上新”栏目&#xff01;“科研上新”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里&#xff0c;你可以快速浏览研究院的亮点资讯&#xff0c;保持对前沿领域的敏锐嗅觉&#xff0c;同时也能找到先进实用的开源工具。 本期“科研上新…

项目框架构建之6:编写通用主机基础类

本文是“项目框架构建”系列之6&#xff0c;本文介绍如何编写通用主机基础类。 1.为了构建通用主机&#xff0c;我们先创建主机接口IAppHost接口 接口需要有配置项&#xff0c;我们定义为HostConfiguration&#xff0c;比如我们希望用户可以设定他的工作目录&#xff0c;就可…

GLEE:一个模型搞定目标检测/实例分割/定位/跟踪/交互式分割等任务!性能SOTA!

GLEE&#xff0c;这是一个面向目标级别的基础模型&#xff0c;用于定位和识别图像和视频中的目标。通过一个统一的框架&#xff0c;GLEE实现了对开放世界场景中任意目标的检测、分割、跟踪、定位和识别&#xff0c;适用于各种目标感知任务。采用了一种协同学习策略&#xff0c;…

C之BS开发

一、 BS 概述与 boa 搭建 1.1 BS 模式开发概述 BS 模式&#xff1a; 浏览器与服务器模式&#xff0c; 即通过浏览器访问服务器的 Web 资源。 1.1.1 web 前端开发技术 主要包含&#xff1a; HTML 、 CSS 、 XML/JSON 、 Javascript 、 AJAX HTML 超文本标记语言 ( 英文全称…

华为欧拉安装部署: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…