python基础--常用函数

常用函数

内建函数

在python里面可以直接使用的函数, 不需要使用import从其他文件里面导入

可以使用dir(__builtin__)进行查看

输入输出

print打印信息

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
  • objects – 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep – 用来间隔多个对象,默认值是一个空格。
  • end – 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file – 要写入的文件对象。
  • flush – 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。
基本使用

可以把数据打印到终端里面

  1. 可以直接打印一个变量, 里面没有数据的时候会打印一个换行
  2. 里面是一个表达式的时候, 会打印这一个表达式的结果
  3. 可以在里面使用逗号分割变量, 实际的打印信息会使用空格分割
格式化字符串

使用双引号里面

格式符号转换
%c字符
%s字符串, 实际使用的时候也可以打印整形浮点型之类的数据, 不确定这一个的类型的时候可以使用这一个
%d有符号十进制整数
%u无符号十进制整数
%o八进制整数
%x十六进制整数(小写字母0x
%X十六进制整数(大写字母0X
%f浮点数
%e科学计数法(小写'e'
%E科学计数法(大写“E”
%g%f%e 的简写
%G%f%E的简写
age = 10
print("我今年%d岁" % age)

age += 1
print("我今年%d岁" % age)

age += 1
print("我今年%d岁" % age)

传入多个数据的时候, 需要使用一个括号括起来

print("my name id %s, my age id %d id :%s" % ("jiao", 21, "1231002004"))
占位符

在Python中,print函数用于将内容输出到控制台。当使用print函数时,用{}来表示占位符,可以在字符串中插入变量的值。例如:

name = "Alice"
age = 30
print("My name is {} and I am {} years old.".format(name, age))

在上面的例子中,{}会被name和age的值替换,输出结果为"My name is Alice and I am 30 years old."

>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
 
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
 
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的
class AssignValue(object):
    def __init__(self, value):
        self.value = value
my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value))  # "0" 是可选的
数字格式输出描述
3.1415926{:.2f}3.14保留小数点后两位
3.1415926{:+.2f}+3.14带符号保留小数点后两位
-1{:-.2f}-1.00带符号保留小数点后两位
2.71828{:.0f}3不带小数
5{:0>2d}05数字补零 (填充左边, 宽度为2)
5{:x<4d}5xxx数字补x (填充右边, 宽度为4)
10{:x<4d}10xx数字补x (填充右边, 宽度为4)
1000000{:,}1,000,000以逗号分隔的数字格式
0.25{:.2%}25.00%百分比格式
1000000000{:.2e}1.00e+09指数记法
13{:>10d}13右对齐 (默认, 宽度为10)
13{:<10d}13左对齐 (宽度为10)
13{:^10d}13中间对齐 (宽度为10)
11'{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11)1011 11 13 b 0xb 0XB进制

^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

+ 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格

b、d、o、x 分别是二进制、十进制、八进制、十六进制。

此外我们可以使用大括号 {} 来转义大括号,如下实例:

print ("{} 对应的位置是 {{0}}".format("runoob"))
runoob 对应的位置是 {0}

input输入

会让程序停止, 等待输入

input("请输入数据")

可以填一个输入的提示语, 返回值是输入的数据的字符串

数据转换

int

把一个字符串转换为整数, 这一个里面必须都是数字

tuple, set, liset

列表, 元组, 集合的相互转换, 这几个转换的时候不是改变之前的数据, 是返回一个新的数据

可以使用set进行快速去重

random

随机数

import random
random.randint(start, stop)

start – 必需, 一个整数,指定开始值(包含在范围内),即生成的随机整数可以取到这个值。

stop – 必需, 一个整数,指定结束值(包含在范围内),即生成的随机整数可以取到这个值。

数组乱序

import random
nums  = [1, 2, 3, 4, 5, 6]
randoms.shuffle(nums) # 洗牌
randoms.choice(nums) # 随机获取一个

迭代

range

range(start, stop[, step])

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);

stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

>>>x = 'runoob'
>>> for i in range(len(x)) :
...     print(x[i])
... 
r
u
n
o
o
b

在python里面这一个函数返回一个数组, python3里面返回的是一个可迭代的对象

In [2]: print(type(range(1, 10)))
<class 'range'>

可迭代对象处理

map映射处理

使用提供的函数对一个序列进行映射

map(function, iterable, *iterables)

返回一个将 function 应用于 iterable 的每一项,并产生其结果的迭代器。 如果传入了额外的 iterables 参数,则 function 必须接受相同个数的参数并被用于到从所有可迭代对象中并行获取的项。

a = map(lambda x: x*x, [1, 2, 3])
print(a)

for temp in a:
    print(temp)
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
<map object at 0x000001EFB54D76D0>
1
4
9
a  = map(lambda x, y: x+y , [1, 2, 3], [4, 5, 6])
for temp in a:
    print(temp)
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
5
7
9
def f1(x, y):
    return {x:y}

l1 = [0, 1, 2, 3, 4, 5, 6]
l2 = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']

a = map(f1, l1, l2)
print(list(a))
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
[{0: 'Sun'}, {1: 'Mon'}, {2: 'Tue'}, {3: 'Wed'}, {4: 'Thu'}, {5: 'Fri'}, {6: 'Sat'}]

filter过滤

filter(function, iterable)

使用 iterablefunction 返回真值的元素构造一个迭代器。 iterable 可以是一个序列,一个支持迭代的容器或者一个迭代器。 如果 functionNone,则会使用标识号函数,也就是说,iterable 中所有具有假值的元素都将被移除。

reduce遍历处理

python3 中,函数被移到了functools模块中

functools.reduce(function, iterable[, initializer])

将两个参数的 function 从左至右积累地应用到 iterable 的条目,以便将该可迭代对象缩减为单一的值。 例如,reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) 是计算 ((((1+2)+3)+4)+5) 的值。 左边的参数 x 是积累值而右边的参数 y 则是来自 iterable 的更新值。 如果存在可选项 initializer,它会被放在参与计算的可迭代对象的条目之前(初始值),并在可迭代对象为空时作为默认值。 如果没有给出 initializer 并且 iterable 仅包含一个条目,则将返回第一项。

from functools import reduce
a = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])
print(a)
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
15

每一次的返回值会给x, 遍历获取下一个数值给y

from functools import reduce
a = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5], 5)
print(a)

5+1+2+3+4+5 = 20

字符串操作

获取字符串特征

str1 = 'hello, world!'
# 通过内置函数len计算字符串的长度
print(len(str1)) # 13

# 检查字符串是否以指定的字符串开头
print(str1.startswith('He')) # False
print(str1.startswith('hel')) # True

# 检查字符串是否以指定的字符串结尾
print(str1.endswith('!')) # True

str2 = 'abc123456'

# 检查字符串是否由数字构成
print(str2.isdigit())  # False

# 检查字符串是否以字母构成
print(str2.isalpha())  # False

# 检查字符串是否以数字和字母构成
print(str2.isalnum())  # True
str3 = '  jackfrued@126.com '
print(str3)

格式化操作

# 获得字符串首字母大写的拷贝
print(str1.capitalize()) # Hello, world!

# 获得字符串每个单词首字母大写的拷贝
print(str1.title()) # Hello, World!

# 获得字符串变大写后的拷贝
print(str1.upper()) # HELLO, WORLD!

# 将字符串以指定的宽度居中并在两侧填充指定的字符
print(str1.center(50, '*'))

# 将字符串以指定的宽度靠右放置左侧填充指定的字符
print(str1.rjust(50, ' '))

# 获得字符串修剪左右两侧空格之后的拷贝
print(str3.strip())

查找

# 与find类似但找不到子串时会引发异常
# print(str1.index('or'))
# print(str1.index('shit'))

# 从字符串中查找子串所在位置
print(str1.find('or')) # 8
print(str1.find('shit')) # -1

# 从右侧开始找, 可以使用这一个获取后缀名
print(str1,rfind("0")) 

# 查看里面有没有
print(if 'a' in str1)

替换

# 替换字符串里面的字符, 返回新的, 原来的不改变
# str.replace(old, new[, max]), 可选参数, 替换的次数
test_srt = "Hello, World!"
print(test_srt.replace("World", "Python"))
print(test_srt)
'''
Hello, Python!
Hello, World!
'''

切片

str.split(str="", num=string.count(str)).

str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

num – 分割次数。默认为 -1, 即分隔所有。

这一个函数的返回值是一个字符串的数组

str.partition(str)

partition() 方法用来根据指定的分隔符将字符串进行分割,返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

str.splitlines(str)

splitlines()是Python字符串对象的一个方法,用于按照字符串中的换行符将字符串拆分为多行。它会返回一个包含拆分后每行内容的列表。

拼接

str.join(sequence)
symbol = "-";
seq = ("a", "b", "c"); # 字符串序列
print symbol.join( seq );
# a-b-c

join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。join里放列表、字符串、字典也是可以的

列表操作

添加

# 在后面插入, 追加(只添加一个元素)
list.append(new)
# 拼接链表, 把新的链表拼接在前面
list2.extend(list1)
# 随机插入, 需要指定位置, 超出长度的时候相当于追加
list3.insert(index, object)

删除

# 根据一个下标对元素进行删除
del list[n] 
# pop删除最后一个元素
list.pop()
# 根据一个值进行删除
list.remove(value)

修改

list[pos] = new_value

# 查看里面有没有这一个数据
value in list
value not in list
# 查看某一个数据的个数
list.count("value")

排序

# 排序, 默认为从小到大
list.sort()
# 从大到小
list.sort(reverse=True)
# 倒序
list.reverse()

字典

查找

dict[key]如果这一个key不存在的话, 会导致报错

# 安全的方法
dict.get(key)

使用这一个方法, 不存在的时候会返回一个NULL, 可以传入第二个参数, 会使用这一个参数作为没有时候的返回值

添加数据

dict.[newkey] = value

如果这一个值不存在的话, 这一个键值对会进行增加

删除

# 删除其中一个键值对
del dict.[key]
# 清空一个字典
dict.clear()
# 删除这一个字典
del dict

排序

使用sort的时候, 不能对一个字典里列表面的数据进行排序, 这时候可以设置sort函数的key参数

这一个key指向一个函数, 这一个函数会返回一个用于比较的值

stus = [
    {"name": "jiao", "age":21}, {"name": "shi", "age":23}, {"name": "dong", "age":19}, 
]

# def sort_by_age(arg):
#    return arg["age"]

# print(stus)
# stus.sort(key = sort_by_age)
print(stus)
stus.sort(key = lambda arg: arg["age"])
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
[{'name': 'jiao', 'age': 21}, {'name': 'shi', 'age': 23}, {'name': 'dong', 'age': 19}]
[{'name': 'dong', 'age': 19}, {'name': 'jiao', 'age': 21}, {'name': 'shi', 'age': 23}]

其他函数

可以直接调用的函数

len, max, min, del

获取长度, 最大值, 最小值, 删除一个元素

isinstance比较类型

python中isinstance()函数详解_python instance函数-CSDN博客

判断一个对象是否是一个已知的类型

isinstance(object, classinfo)

isinstance(2,int)
isinstance(12,(str,int,list)) 

classinfo – 可以是直接或间接类名、基本类型或者由它们组成的元组。

isinstance()函数和type()函数很类似。但是两者又有区别,type() 不会认为子类是一种父类类型,不考虑继承关系。isinstance() 会认为子类是一种父类类型,考虑继承关系。

class A:
    pass
 
class B(A):
    pass
 
isinstance(A(), A)    # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

hasattr查看参数

hasattr(object, name)

查看一个对象里面有没有一个属性

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

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

相关文章

Oceanbase all-in-one单机版部署,通过MySQL客户端连接OB租户,DBEAVER 客户端连接MySQL租户。

一.Oceanbase all-in-one单机版部署 1.修改资源限制。 vim /etc/security/limits.conf root soft nofile 655350 root hard nofile 655350 * soft nofile 655350 * hard nofile 655350 * soft stack unlimited * hard stack unlimited * soft nproc 655360 * hard nproc 6553…

【ElasticSearch】IK分词器中停用词问题

问题描述 在ES中进行部分关键词搜索时&#xff0c;搜索无结果&#xff0c;如搜索 【IT】 环境描述 中文分词插件 这里使用的是 analysis-ik 分词调试 POST test_index/_analyze {"text":"IT Manager","analyzer": "ik_max_word"…

ChatGPT4 Turbo 如何升级体验?官网如何使用最新版GPT-4 Turbo?

本文会教大家如何教大家升级自己的GPT4到GPT4 Turbo&#xff0c;同时检验自己的GPT4 Turbo是否是最新版本的GPT-4-Turbo-2024-04-09 说明 新版GPT-4 Turbo再次重夺大模型排行榜王座&#xff0c;超越了Claude 3 Opus。 最新版本的GPT-4 Turbo被命名为GPT-4-Turbo-2024-04-09。…

thinkadmin table列表页点击直接修改用户金额(其他内容都可以)

需要修改用户余额时 点击余额区域 可以手动输入金额 输入后调用api接口自动刷新 html代码 // 初始化表格组件$(#NewsTable).layTable({even: true, height: full,sort: {field: id, type: desc},where: {type: {$type|default="index"}},cols: [[{checkbox: true,…

pip install 过程中报错:Microsoft Visual C++ 14.0 is required.

这是因为电脑中缺少这个组件导致的,我们将这个组件安装上即可解决问题。 安装报错关键信息:Microsoft Visual C++ 14.0 is required. 目录 一、下载组件 二、 安装步骤 一、下载组件 阿里网盘:VisualStudioSetup.exe:

Python生成文学编程风格文档库之pycco使用详解

概要 Pycco是一个Python库,用于生成文学编程风格的文档。它受到了Docco(一个快速生成源代码文档的工具)的启发,并通过解析源代码旁边的注释来创建一个美观的文档页面,使代码的解释与代码本身并排显示。 安装 安装Pycco非常简单,可以通过Python的包管理器pip进行安装: …

栈和队列的定义和实现

栈和队列 1.栈 1.1栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 **称为栈顶&#xff0c;另一端称为栈底。**栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#…

如何应对Android面试官 -> PKMS 权限管理

前言 本章我们继续上一章节&#xff0c;讲解 PKMS 相关知识点&#xff1b; 静默安装 静默安装说的就是&#xff1a;在用户无感知的情况下&#xff0c;给用户的手机安装了某个 app&#xff0c;或者是用户触发安装之后&#xff0c;不需要额外的任何操作即可以安装目标 app 到手机…

【JavaWeb】网上蛋糕项目商城-注册,登录,修改用户信息,提交订单

概念 通过以上多篇文章的讲解&#xff0c;对该项目的功能已经实现了很多&#xff0c;本文将对该项目的用户注册&#xff0c;登录&#xff0c;修改用户信息&#xff0c;以及用户添加至购物车的商品进行提交订单等功能的实现。 注册功能实现 点击head.jsp头部页面的注册按钮&a…

最新贷款市场报价利率(LPR)数据(1991-2024)

数据来源&#xff1a;东方财富网时间跨度&#xff1a;1991-2024年 数据范围&#xff1a;全国范围 数据指标&#xff1a; LPR_1Y利率(%) LPR_5Y利率(%) 中长期贷款利率:5年以上(%) 短期贷款利率:6个月至1年(含)(%) 日期 样例数据&#xff1a; 下载链接&#xff1a; ht…

win10 截图黑屏解决方法

win10 使用QQ截图等第三方工具截图黑屏&#xff0c;提示 Capturing screen is forbidden! 此时winshiftS截图也无法正常工作&#xff0c;解决方法如下&#xff1a; 参考地址&#xff1a;Redirecting

AHB---数据总线

1. 数据总线 为了实现AHB系统&#xff0c;需要独立的读写数据总线。虽然推荐的最小数据总线宽度被指定为32位&#xff0c;但这可以根据数据总线宽度进行更改。 数据总线包含以下部分&#xff1a; HWDATAHRDATAEndianness&#xff08;字节序&#xff09; 1.1 HWDATA 在写传输…

MinimogWP WordPress 主题下载——优雅至上,功能无限

无论你是个人博客写手、创意工作者还是企业站点的管理员&#xff0c;MinimogWP 都将成为你在 WordPress 平台上的理想之选。以其优雅、灵活和功能丰富而闻名&#xff0c;MinimogWP 不仅提供了令人惊叹的外观&#xff0c;还为你的网站带来了无限的创作和定制可能性。 无与伦比的…

投资者悄然收购二手楼梯楼,在杭州豪掷巨资购买12套!

独家首发 -------------- 日前杭州中介流传&#xff0c;一名投资客大举收购二手楼梯楼&#xff0c;下手就是12套&#xff0c;显示出一些具有前瞻性眼光的投资者悄悄放弃电梯楼&#xff0c;选择了处于价格洼地的楼梯楼。 二手楼梯楼当下被严重低估&#xff0c;在一线城市的二手楼…

Tmux工具使用案例

Tmux工具使用案例 连接linux一般使用ssh&#xff0c;当ssh会话中需要长时间执行命令时&#xff0c;为了避免命令不受ssh会话影响&#xff0c;除了可以将命令通过nohup <cmd> &等方法放到后台执行外&#xff0c;也可以利用Tmux这个工具解绑SSH会话与执行命令&#xff…

Raft共识算法图二解释

下面是有关Raft协议中不同术语和概念的翻译及解释&#xff1a; 术语和概念&#xff1a; 任期号&#xff08;term number&#xff09;&#xff1a;用来区分不同的leader。前一个日志槽位的信息&#xff08;prelogIndex&#xff09;&#xff1a;这是前一个日志条目的索引&#…

关于二手车系统学习--登录模块

1.样式1-17行 <div class"cheader"><div style"width: 80%;margin: 0 auto;line-height: 50px;padding-top: 10px"><el-row><el-col:span"5"style"font-size: 20px;cursor: pointer;color: #00ae66;font-weight: bold…

苹果自研大语言模型“Ajax“ 助力iOS 18升级;Stack Overflow与OpenAI建立API合作伙伴关系

&#x1f989; AI新闻 &#x1f680; 苹果自研大语言模型"Ajax" 助力iOS 18升级 摘要&#xff1a;苹果公司预计通过自研大语言模型Ajax来为iOS 18和Siri带来重大升级&#xff0c;但不计划推出类似ChatGPT的AI聊天机器人。Ajax模型基于Google的Jax框架&#xff0c;并…

Android:弹出对话框方式梳理一览(一)

Android&#xff1a;弹出对话框方式梳理一览&#xff08;一&#xff09; Guide&#xff5c;导言 在Android开发中&#xff0c;对话框可能是我们与用户交互的非常常用的方式&#xff0c;包括弹出一个小界面&#xff0c;可能在实际场景中都非常实用。本篇文章主要就是对Android弹…

搭建Docker私有镜像仓库

大家好&#xff0c;今天给大家分享一下如何搭建私有镜像仓库&#xff0c;私有镜像仓库可以更好地管理和控制镜像的访问和使用&#xff0c;确保只有授权的人员能够获取和使用特定的镜像&#xff0c;而且方便团队内部共享定制化的镜像&#xff0c;提高开发和部署效率&#xff0c;…
最新文章