函数输出为整数(TypeError:必须为str,而不是int)

时间:2019-01-20 01:54:27

标签: python function integer output

我是编程新手,从Python开始。 我试图编写一个输出看起来像“ | 1 | 2”的函数

如果我将代码编写为:

def xbrd(int1,int2):
    print("|"+int1+"|"+int2)

输出有错误>> TypeError:必须为str,而不是int

下面的详细信息:

TypeError                                 Traceback (most recent call last) <ipython-input-43-e3178cb02070> in <module>()
----> 1 xbrd(1,2) <ipython-input-42-07f9ddd5a2b8> in xbrd(int1, int2)
      1 def xbrd(int1,int2):
----> 2     print("|"+int1+"|"+int2) TypeError: must be str, not int

现在,如果按如下所示编写它,那么我将获得所需的输出。

def xbrd(int1,int2):
    print(f'|{int1}|{int2}')

这是否意味着以后的代码输出以字符串形式出现?我需要获取整数输出吗?

1 个答案:

答案 0 :(得分:0)

这是因为所有的字符串格式化方式都将它们放入了str中,例如:

>>> a=1
>>> f'{a}'
'1'
>>> '%s'%a
'1'
>>> '{}'.format(a)
'1'
>>> 

因此您的代码可以正常工作,所以这是我上面提到的所有格式化方式的代码:

def xbrd(int1,int2):
    print(f'|{int1}|{int2}')

def xbrd(int1,int2):
    print('|%s|%s'%(int1,int2))

def xbrd(int1,int2):
    print('|{}|{}'.format(int1,int2))

请注意,还有一种方法,类似于第一个示例,没有字符串格式或任何其他内容,只是使用str将整数转换为字符串:

def xbrd(int1,int2):
    print("|"+str(int1)+"|"+str(int2))