写到后面才发现这是一篇过于浅显易懂的学术论文……

众所周知,python的读取用的是 input() 而c++的读取用的是

#include<bits/stdc++.h>
using namespace std;
int main()
{
  cin>>......;
  scanf();
  getline();//string字符串的输入函数
  ......
}

所以很多题为了照顾Python的做题者,会把输入的两个或多个变量分行写。比如A+B问题,Python代码是这么写的:

a=int(input())
b=int(input())
print(a+b)

而如果给出的测试点输入是这样:

1 1

Python就会报错:

Traceback (most recent call last):
a=int(input())
ValueError: invalid literal for int() with base 10: '1 1'

Python会读取整行内容,而两个数中有一个空格,它不能被 int() 转换,所以会报错。所以Python有一个函数,它就是 split() 。 我们可以利用它写出:

# 读取一行输入,按空格分割,然后转换为两个数
a, b = map(int, input().split())
print(a+b)

这样就可以了。但是还有一种方式:

numbers = input().split()  # 分割成字符串列表
a = int(numbers[0])
b = int(numbers[1])
#用字符串列表的下标(索引)来找到那个数字
print(a+b)

怪不得Python的A+B问题老是WA

1 条评论

  • @ 2025-8-7 15:36:33

    bruh 这不是大多数 pyer 都知道的吗/kel,可能属于 sweeter wyy 讨论范围。

  • 1