我需要定义一个重复3次的函数。如果输入为1,我只能将它作为列表输出为[1,1,1]。但是我需要输出为111 这就是我所拥有的
def repeat_number(num):
if not type(num) is int:
return None
list_1 = []
x = list_1.append(num)
y = list_1*3
for i in y:
return i,i,i
a = 12
print (repeat_number(a))
我希望输出为121212
答案 0 :(得分:1)
您可以使用简单的str.join
来创建常规函数:
def repeat(something, times, separator):
return separator.join([str(something) for _ in range(times)])
现在用它来创建你的特定功能:
def repeat_three_times(something):
return repeat(something, 3, '')
输出:
>>> repeat_three_times(1)
'111'
很少有事情需要注意:
str
将预期的整数转换为字符串str.join
期望str.join
创建了一个字符串,它是列表中字符串的串联(参见2)。以下是以不同方式使用更一般功能的示例:
>>> repeat(1, 4, ',')
'1,1,1,1'
答案 1 :(得分:1)
def repeat_number3(a):
return str(a)*3
答案 2 :(得分:0)
def repeat_num(x):
return str(x)*3
答案 3 :(得分:0)
如果输出为[1, 1, 1]
并且您正在寻找111
,则可以执行以下操作:
print (*repeat_number(a), sep='')
但是,我建议您使用以下功能执行以下操作:
def repeat_number(num):
if type(num) != int: return
return int(str(num)*3)
然后你所要做的就是:
print (repeat_number(a))
正如你最初的尝试一样。另外,这个函数返回一个实际数字,这可能是好的。
答案 4 :(得分:0)
您可以将数字转换为字符串并相乘。
def repeat(num):
return str(num)*3
a = 12
print(repeat(a))