📌 Python 内置函数详解


🔍 eval() 函数

✅ 功能简介

eval() 用于 执行一个字符串形式的 Python 表达式,并返回表达式的结果。

🧪 函数语法

1
eval(expression[, globals[, locals]])

📥 参数说明

  • expression:字符串表达式(必需)。
  • globals:可选,指定全局命名空间(类型为 dict)。
  • locals:可选,指定局部命名空间(任意映射类型)。

⚠️ eval() 能执行任意代码,使用时要防止代码注入等安全风险!

🎯 使用示例

1
2
3
4
5
6
7
8
9
10
# 简单数学运算
print(eval("2 + 3 * 4")) # 输出: 14

# 使用变量
x = 10
print(eval("x + 5")) # 输出: 15

# 指定命名空间
env = {'a': 2, 'b': 3}
print(eval("a + b", env)) # 输出: 5

🖨️ print() 函数

✅ 函数语法

1
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

📥 参数说明

  • objects:一个或多个要打印的对象。
  • sep:对象之间的分隔符,默认空格。
  • end:输出的结尾,默认换行符 \n
  • file:输出目标,默认是标准输出 sys.stdout
  • flush:是否强制刷新输出缓冲区,默认 False

🎯 使用示例:动态打印效果

1
2
3
4
5
6
7
import time

print("---RUNOOB EXAMPLE : Loading 效果---")
print("Loading", end="")
for i in range(20):
print(".", end="", flush=True)
time.sleep(0.5)

输出效果:

1
2
---RUNOOB EXAMPLE : Loading 效果---
Loading....................

🔢 sum() 函数实际案例:查找相反数对

📘 题目说明

输入:

  • 第一行:数字个数 n
  • 第二行:n 个整数,可能有重复

输出:

  • 数组中成对和为 0 的不同数对个数(每对只算一次)

🎯 示例输入输出

1
2
3
4
5
6
输入:
5
-1 2 3 -2 1

输出:
2

✅ 解法一:遍历判断

1
2
3
4
n = int(input())
nums = set(map(int, input().split()))
# 遍历所有数对,统计和为 0 的组合数量
print(sum(1 for i in nums for j in nums if i + j == 0) // 2)

✅ 解法二:用绝对值优化(巧解)

1
2
3
4
n = int(input())
nums = set(map(int, input().split()))
# 成对出现时,正负数只保留一个,差值即为成对数量
print(len(nums) - len(set(map(abs, nums))))