Python 错误:在字符串格式化过程中未转换所有参数

Python 错误:在字符串格式化过程中未转换所有参数,python,python-3.x,Python,Python 3.x,错误是: TypeError:在字符串格式化过程中并非所有参数都已转换 如何将a和b设为整数?有谁能帮我解决这个问题吗 错误是因为如果执行input.split(),则结果将是['3','5'](假设输入为35)和a,b都是字符串 如果您使用字符串执行%,您将得到'3''%5',而这并不是您所期望的。这意味着Python中的字符串格式设置会出错 您将得到与此相同的错误: n = int(input("")) for i in range(n): a,b = input(&

错误是:

TypeError:在字符串格式化过程中并非所有参数都已转换


如何将
a
b
设为整数?有谁能帮我解决这个问题吗 错误是因为如果执行
input.split()
,则结果将是
['3','5']
(假设输入为35)和
a
b
都是字符串

如果您使用字符串执行
%
,您将得到
'3''%5'
,而这并不是您所期望的。这意味着Python中的字符串格式设置会出错

您将得到与此相同的错误:

n = int(input(""))
for i in range(n):
  a,b = input("").split()
  if a%b!=0:
    r = a%b
    x = b-r
    print(x)
  else:
    print("0")
解决方案
您可以在每次出现
a
b
时执行
int()
,但这太难了。 相反,请尝试以下方法:

a = '3'
b = '5'
print(a % b) # this cause the error. you will not get 3 % 5

您可以使用Python中的内置函数,顺便说一句,如果没有任何输入提示,那么只需将其保留为空-
input()

a
b
是字符串
a%b
是试图将
b
格式化为
a
的字符串格式运算符。如果你想让
a
b
成为数字,那么答案就在上面的链接中
n = int(input())
for i in range(n):
    a, b = map(int, input().split())
    if a % b != 0:
        r = a % b
        x = b - r
        print(x)
    else:
        print("0")