无法在输出中添加“/”
Not able to add "/" in output
根据输入和输出创建一个函数。看the examples,有规律
我的代码:
def secret(a):
b=a[:-2]
a_list=list(a)
last_number=int(a_list[-1])
Final_recurr=last_number+last_number
d="{} ".format(b)*Final_recurr
j=d.split()
for i,k in enumerate(j):
if int(i)%2!=0:
m="{}".format("</" + b+ ">")*Final_recurr
return m
if int(i)%2==0:
m="{}".format("<" + b+ ">")*Final_recurr
return m
我无法在每两次迭代中都放入 /
。请告诉我当前代码和简短版本中的错误。
您可以使用 str.split
或 str.partition
将字符串拆分为单独的部分:
>>> "div*2".partition("*")
('div', '*', '2')
>>> tag_name, _, mult = "div*2".partition("*")
>>> tag_name
'div'
>>> mult
'2'
使用字符串格式将 tag_name
插入模板:
>>> "<{}></{}>".format(tag_name, tag_name)
'<div></div>'
“乘以”格式化字符串与 int(mult)
:
>>> "<{}></{}>".format(tag_name, tag_name) * int(mult)
'<div></div><div></div>'
>>>
这个功能可以帮到你,试试看:
s = 'div*2'
>>> def secret(s):
tag, n = s.split('*') # parse it into two parts
ans = f'<{tag}></{tag}>' # get complementary part
return ans * int(n) # final result
>>> secret(s)
'<div></div><div></div>'
>>> secret('p*1')
'<p></p>'
>>>
在尝试解决挑战之前,您可能应该更加熟悉编程基础知识。
在这种情况下,您必须了解函数内部的 return
语句即使在循环中也只是退出函数。
因此,在 for i, k in enumerate(j):
循环的第一次迭代中,代码传入第二个条件并在到达 return
语句时退出函数。
所以永远不会有第二个循环,你的循环只是无效的。
仅解决此问题不足以获得有效的解决方案。我建议在你的头脑中澄清实现你想要的东西所需的步骤,甚至以注释的形式将它们写在一个空函数中(你可以采取@Qwerty 在评论中建议的步骤):
def secret(expression):
# split the argument into the bits before and after *
# combine the required string
# return the resulting string
然后尝试处理每条评论,一次一条。其他回复应该对您有很大帮助。
以下是一些可以帮助您的函数和概念文档的链接:
根据输入和输出创建一个函数。看the examples,有规律
我的代码:
def secret(a):
b=a[:-2]
a_list=list(a)
last_number=int(a_list[-1])
Final_recurr=last_number+last_number
d="{} ".format(b)*Final_recurr
j=d.split()
for i,k in enumerate(j):
if int(i)%2!=0:
m="{}".format("</" + b+ ">")*Final_recurr
return m
if int(i)%2==0:
m="{}".format("<" + b+ ">")*Final_recurr
return m
我无法在每两次迭代中都放入 /
。请告诉我当前代码和简短版本中的错误。
您可以使用 str.split
或 str.partition
将字符串拆分为单独的部分:
>>> "div*2".partition("*")
('div', '*', '2')
>>> tag_name, _, mult = "div*2".partition("*")
>>> tag_name
'div'
>>> mult
'2'
使用字符串格式将 tag_name
插入模板:
>>> "<{}></{}>".format(tag_name, tag_name)
'<div></div>'
“乘以”格式化字符串与 int(mult)
:
>>> "<{}></{}>".format(tag_name, tag_name) * int(mult)
'<div></div><div></div>'
>>>
这个功能可以帮到你,试试看:
s = 'div*2'
>>> def secret(s):
tag, n = s.split('*') # parse it into two parts
ans = f'<{tag}></{tag}>' # get complementary part
return ans * int(n) # final result
>>> secret(s)
'<div></div><div></div>'
>>> secret('p*1')
'<p></p>'
>>>
在尝试解决挑战之前,您可能应该更加熟悉编程基础知识。
在这种情况下,您必须了解函数内部的 return
语句即使在循环中也只是退出函数。
因此,在 for i, k in enumerate(j):
循环的第一次迭代中,代码传入第二个条件并在到达 return
语句时退出函数。
所以永远不会有第二个循环,你的循环只是无效的。
仅解决此问题不足以获得有效的解决方案。我建议在你的头脑中澄清实现你想要的东西所需的步骤,甚至以注释的形式将它们写在一个空函数中(你可以采取@Qwerty 在评论中建议的步骤):
def secret(expression):
# split the argument into the bits before and after *
# combine the required string
# return the resulting string
然后尝试处理每条评论,一次一条。其他回复应该对您有很大帮助。
以下是一些可以帮助您的函数和概念文档的链接: