摘自 https://blog.csdn.net/m0_46204224/article/details/109049999#/
Python 常用函数
input 函数
单行输入
1 | data = list(map(int,input().split())) |
1 | m,n = map(int,intput().split()) |
注意:若间隔号不是空格,而是其他符号,只需要在 split(“”)中定义间隔号即可,例如
1 | data = list(map(int,input().split("-"))) |
多行输入
一个 input 输入一个数字,列表,每次每行只能输入一个数字
1 | data1 = [int(input()) for _ in range(2)] |
一个 input 输入一串数字,列表的列表
1 | data2 = [list(map(int, input().split())) for _ in range(2)] |
有选择的保存数据
1 | list3 = [] |
各种输入
input()
返回的是字符串类型(str)
- 一次输入多个值就用
list(input().split())
- 根据需求加
map
,即map(int,input.split())
- 每出现一个
input()
就代表了一行,加了map
就代表是变量多接受输入
例如:
1 | a = input() # 接受一个值 |
- 举例合集
1 | m = int(input()) # 输入一个数字 |
-
记录一下没见过的 tuple 函数的语法解释(元组)
-
记录一下 map 函数的语法解释(迭代器)
-
记录一下 Python 中的列表推导式
占位符
%占位符详解
占位符主要用于填充格式问题,通过加入格式化字符串来控制输出的格式。在 Python 中,常见的占位符及其使用方式如下:
%s
: 字符串的占位符,可以使用%s
或者{}
进行替换。例如:'{:s}'.format('hello')
。%d
: 整数的占位符,可以使用%d
或者{}
进行替换。例如:'{:d}'.format(10)
。%.2f
: 浮点数的占位符,控制保留小数点后两位,四舍五入。例如:'{:.2f}'.format(3.14159)
。%.2e
: 科学计数法的浮点数占位符,控制保留小数点后两位,以科学计数法表示。例如:'{:.2e}'.format(1000)
。%
:百分号占位符,用于在字符串中表示百分比。例如:'{}%'.format(50)
。
常见用法示例:
1 | print('{} {}'.format('Hello', 'World')) # 输出:Hello World |
填充格式问题:
{:#x}
: 控制输出十六进制格式,#
表示保留进制前缀。例如:'{:#x}'.format(18)
输出'0x12'
。{:0>5}
: 控制填充格式,在数字前填充指定字符,总长度为 5。例如:'{:0>5}'.format('33')
输出'00033'
。
总的来说,format()
方法可以将数值按照指定的格式进行格式化输出,其中格式化的方式由参数决定,常见的参数包括 b
(二进制)、x
(十六进制)、o
(八进制)等。
关于 format 函数
format()
方法可以完全代替 %
格式化。实际上,Python 官方已经推荐使用 format()
方法进行字符串格式化,因为它提供了更多的功能和选项,并且更加灵活。format()
方法可以在格式化字符串中指定参数的顺序、精度、对齐方式等,而 %
格式化相对来说功能较为简单。
另外,从 Python 3.6 版本开始,引入了 f-string,它提供了一种更加简洁、直观的字符串格式化语法,更推荐在新的 Python 项目中使用。但是,即使使用 f-string,format()
方法仍然是一个非常有用的备选方法,特别是对于需要动态生成格式的情况。
当使用 format()
方法时,可以按照需要定义格式,并在字符串中插入对应的值。下面是一些示例:
- 基本用法:
1 | name = "Alice" |
- 指定参数顺序:
1 | print("{1} is {0} years old.".format(age, name)) |
- 指定精度:
1 | pi = 3.14159265359 |
- 对齐方式:
1 | word = "hello" |
- 使用命名参数:
1 | print("My name is {name}, and I am {age} years old.".format(name="Bob", age=25)) |
- 格式化数字:
1 | num = 12345 |
- 进制转换:
format()
函数可以用于进制转换,通过指定格式来将整数以不同进制的形式进行输出。下面是关于进制转换的一些知识点:
-
基本用法:
使用format()
函数,可以将整数按照指定的进制进行格式化输出。例如:1
2
3
4num = 18
print("二进制:{:b}".format(num)) # 输出:二进制:10010
print("八进制:{:o}".format(num)) # 输出:八进制:22
print("十六进制:{:x}".format(num)) # 输出:十六进制:12 -
保留进制前缀:
使用#
标志可以保留进制前缀,例如#b
表示二进制、#o
表示八进制、#x
表示十六进制。例如:1
2
3
4num = 18
print("二进制(带前缀):{:#b}".format(num)) # 输出:二进制(带前缀):0b10010
print("八进制(带前缀):{:#o}".format(num)) # 输出:八进制(带前缀):0o22
print("十六进制(带前缀):{:#x}".format(num)) # 输出:十六进制(带前缀):0x12 -
指定位数:
可以使用填充符和指定位数来控制输出的位数,例如:1
2num = 18
print("十六进制(固定位数):{:06x}".format(num)) # 输出:十六进制(固定位数):000012 -
整数转换为不同进制的字符串:
如果只是想将整数转换为不同进制的字符串,也可以使用format()
函数,但是在这种情况下,可以直接使用整数对象的进制转换方法,例如bin()
、oct()
、hex()
:1
2
3
4
5
6
7num = 18
binary_str = bin(num)
octal_str = oct(num)
hexadecimal_str = hex(num)
print("二进制字符串:", binary_str) # 输出:二进制字符串: 0b10010
print("八进制字符串:", octal_str) # 输出:八进制字符串: 0o22
print("十六进制字符串:", hexadecimal_str) # 输出:十六进制字符串: 0x12
str 类型的内建函数
-
大小写转换:
S.lower()
: 将字符串 S 中的所有字符转换为小写。S.upper()
: 将字符串 S 中的所有字符转换为大写。S.swapcase()
: 将字符串 S 中的大小写互换。S.capitalize()
: 将字符串 S 中的首字母转换为大写,其他字母转换为小写。s.title()
: 将字符串 s 中每个单词的首字母转换为大写。
1
2
3
4
5
6s = "hello world"
print(s.lower()) # 输出: hello world
print(s.upper()) # 输出: HELLO WORLD
print(s.swapcase()) # 输出: HELLO WORLD
print(s.capitalize()) # 输出: Hello world
print(s.title()) # 输出: Hello World -
查找和替换:
S.find(sub, start, end)
: 返回字符串 S 中子字符串 sub 第一次出现的索引,可指定搜索范围。S.rfind(sub, start, end)
: 返回字符串 S 中子字符串 sub 最后一次出现的索引。S.count(sub, start, end)
: 返回字符串 S 中子字符串 sub 出现的次数。S.replace(old, new, count)
: 将字符串 S 中的 old 子字符串替换为 new,可以指定替换次数。
1
2
3
4
5s = "I love Python. Python is great."
print(s.find("Python")) # 输出: 2
print(s.rfind("Python")) # 输出: 14
print(s.count("Python")) # 输出: 2
print(s.replace("Python", "Java")) # 输出: I love Java. Java is great. -
去除空白字符:
S.strip(chars)
: 移除字符串 S 中指定的字符,默认移除空格。
1
2s = " hello "
print(s.strip()) # 输出: hello -
分割和连接:
S.split(sep, maxsplit)
: 使用分隔符 sep 将字符串 S 分割成一个列表,maxsplit 指定分割次数。S.join(iterable)
: 将可迭代对象中的字符串连接起来,以字符串 S 作为连接符。
1
2
3
4
5
6s = "hello-world"
print(s.split("-")) # 输出: ['hello', 'world']
a = '-'
b = ['hello', 'world']
print(a.join(b)) # 输出: hello-world
打印
Print()
1 | for i in range(10): |
切片语法
- 切片语法:
a[起点:终点:步长]
。它允许你从列表或字符串中获取一个子集,并且可以指定步长。
1 | 从列表中获取索引为 1 到索引为 3(不包括 3)的子集,步长为 1 |
- 切片对象:切片对象可以应用于列表和字符串,但不能应用于整数。例如,
a = 5
,a[1:3]
是无效的,但可以通过a = [5]
来创建一个列表,然后进行切片操作。
1 | 列表切片 |
在这里 slice
是 Python 内置函数,用于创建一个切片对象,该对象可以被应用于可切片对象(比如列表、字符串等)的索引或切片操作中。它接受三个参数:起点、终点和步长,用来指定切片的范围和步长。
- 起点和终点:切片包含起点,但不包含终点。即,
a[1:3]
将会包含索引为 1 和 2 的元素,但不包含索引为 3 的元素。
1 | a = [0, 1, 2, 3, 4, 5] |
- 步长的默认值:当未指定步长时,默认为 1。如果步长为负数,则从右向左提取元素。
1 | a = [0, 1, 2, 3, 4, 5] |
- 负数索引:负数索引表示从右往左的偏移量。例如,
a[-1]
表示最后一个元素。
1 | a = [0, 1, 2, 3, 4, 5] |
数字运算
这些知识点主要涉及数字运算,包括取余运算、整除运算以及数字的逆序输出。以下是这些知识点的总结:
-
取余运算(%):取一个数除以另一个数的余数,这里后面跟着的数字是 10,所以结果都在 0 到 9 之间。
- 例如:a % 10 取得 a 的个位数。
-
整除运算(//):取一个数除以另一个数的整数部分,相当于向下取整。
- 例如:a // 10 取得 a 的除了个位的其他位组成的数。
-
逆序输出:给定一个整数,以逆序输出各个位上的数字。
- 例如:对于数字 25165,逆序输出为 5, 6, 1, 5, 2。
根据上述知识点,代码执行如下:
-
对于输入的数字 32345:
- 个位:32345 % 10 = 5
- 十位:32345 // 10 % 10 = 4
- 百位:32345 // 100 % 10 = 3
- 千位:32345 // 1000 % 10 = 2
- 万位:32345 // 10000 = 3
- 所以,逆序输出为 5, 4, 3, 2, 3
-
对于输入的数字 25165:
- 个位:25165 % 10 = 5
- 十位:25165 // 10 % 10 = 6
- 百位:25165 // 100 % 10 = 1
- 千位:25165 // 1000 % 10 = 5
- 万位:25165 // 10000 = 2
- 所以,逆序输出为 5, 6, 1, 5, 2
下面是逆序的一个例子
1 | 输入数字 |
输出结果:
1 | 逆序输出每位数字: [5, 4, 3, 2, 3] |
同样,这个示例也适用于其他数字,只需将 number
变量的值更改为所需的数字即可。
二维列表操作
创建二维列表
1 | a = [[1, 2, 3], [3, 4, 5]] |
列表拼接
1 | lista = [1, 2, 3] |
列表扩展
1 | lista = [1, 2, 3] |
插入元素
1 | lista = [1, 2, 3] |
移除元素
1 | lista = [1, 2, 3, 4, 5] |
查找元素索引
1 | lista = [1, 2, 3, 4, 5] |
字符串转换为列表
1 | string = "hello" |
使用 zip 遍历多个列表
1 | a = [1, 2, 3] |
示例运行结果
1 | 输出结果 |
以上代码提供了对二维列表的创建、拼接、扩展、插入、移除、查找、字符串转换为列表以及使用 zip 遍历多个列表的示例。