斯潘8
斯潘4
大家好,
第一次尝试用python完成一些事情,所以请容忍我…
我想找出一组数的最大公除数,通过用户参数作为逗号分隔字符串提供。python有一个函数(gcd),它只执行这个操作(最初用于2个数字,但通过reduce函数可以迭代)
然而,我似乎无法将我的数字传递到函数中。
class featureprocessor(object):def_uu init_uuu(self):传递def输入(self,feature):除数=reduce(fractions.gcd,(10,15,25,50))除数=减少(fractions.gcd,(fme_macrovalues['outlines'])feature.setattribute(“除数”,divisor)self.pyoutput(feature)def close(self):pass
被注释掉的行是有效的,但如果通过参数传递这些相同的数字,则会收到一条错误消息:
python异常:不是所有在字符串格式化过程中转换的参数都可追溯(最近调用的最后一个):文件“ “第18行,在输入文件“/system/library/frameworks/python.framework/versions/2.7/lib/python2.7/framents.py”,第25行,在GCD A,B=B,A%btypeerror:调用方法'input'f_11(pythonFactory)时遇到错误:pythonFactory未能处理功能,出现致命错误。查看上面的日志文件了解详细信息
我很肯定这和我传递参数的方式有关,但我想不出来。有什么建议吗?
问题是,fme_macrovalues总是返回一个字符串,所以你说的是:
除数=减少(fractions.gcd,(10、15、25、50)
那当然不行。尝试以下操作将字符串转换为整数列表:
值=(fme_macrovalues['outlines']中x的int(x)。split(“,”)除数=reduce(fractions.gcd,价值观)
如果您不熟悉生成“values”的语法,在Google上查找“python generator construction”以获取教程,等。
?2019安全亚搏在线软件公司|合法的