【发布时间】:2015-02-17 15:29:12
【问题描述】:
我正在做一个班级作业,要求我将 % 后跟一个数字替换为其相应的位置参数(如果有的话,假设只给出了这些数字和必需的参数)。我已经尝试解决这个问题几个小时了无济于事。搜索了 Stack Overflow 和 web,但之前提出的问题只是用足够简单的东西替换了整数。
例如: formatting("Exodus %0" , "Moses") --> 应该返回 "Exodus Moses"
formatting("Exodus %0 and %1", "Kings","Gods") --> 应该返回 "Exodus Kings and Gods"
formatting("Exodus %1 and %0", "Kings","Gods") --> 应该返回 "Exodus Gods and Kings"
从外观上看,我认为函数格式化原型应该是
def formatting(inputstring, *args):
到目前为止我尝试过的事情
1.for 循环用其对应的参数天真地替换 %number
for length in len(args):
temp=temp.replace("%length","arg[length]")
当然这是行不通的,因为它们是字符串而不是整数
2.使用 inputstring.format() 返回所需的字符串。 问题是由不同的参数长度引起的 例如:
if len(args) == 1:
return inputstring.replace("%0",args[0])
if len(args) == 2:
inputstring = inputstring.replace("%0",args[0])
return inputstring.replace("%1",args[1])
很简单,它可以工作!但感觉不对,很多争论很麻烦 尝试循环执行此操作没有成功
请帮忙 谢谢!
【问题讨论】:
-
Python 肯定有打印语句已经自动完成了这种事情。在这里查看:docs.python.org/2/tutorial/inputoutput.html
-
考虑
enumerate(args)... -
@RobertHarvey:可能,但这是一个作业,我猜他们希望学生手动完成
-
@RobertHarvey :我在该页面上能找到的最接近的是 str.format() ,它本质上想要嵌入形式为 {number} 而不是 %number 的字符串,尽管我可能错了我必须探索
标签: python arrays python-2.7 python-3.x formatting