我想用函数和while循环打印代表数字的符号
例如:
number = 250
# symbols
C = 100
^ = 50
应打印
^{pr2}$虽然打印一个函数可以工作,但尝试连接两个或多个打印函数会导致类型错误:
TypeError: can't multiply sequence by non-int of type 'function'
number = 251;
def numeral_C(number_par):
while number_par >=100:
numeral_C = number_par / 100
print "C"*numeral_C,
number_par = number_par - numeral_C*100
return ""
def numeral_UpArrow(number_par):
while number_par >=50:
numeral_upArrow = number_par / 50
print "^"*numeral_UpArrow, #error
number_par = number_par - numeral_UpArrow*50
return ""
etruscan_C = str(numeral_C(number))
etruscan_UpArrow = str(numeral_UpArrow(number)) #error
print etruscan_C+etruscan_UpArrow
Traceback (most recent call last):
File "/Applications/Wing IDE/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 15, in
File "/Applications/Wing IDE/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 11, in numeral_UpArrow
**TypeError: can't multiply sequence by non-int of type 'function'
我想知道,有没有一种方法可以打印两个或多个函数而不出错?在
您都在使用&赋值给函数内部的函数名numeric_UpArrow(它是一个函数)。在
正如其他人所说,在赋值中重复使用与函数同名的内容时存在一个问题:
正如您在注释中看到的,简单地重命名函数可以解决这个问题,甚至可以重命名变量。但在我认为的“更大”问题上。。。在
我觉得你的原始数学是一个不必要的循环。比较一下你的数字C和我的数字C的行为:两者的结果都是相同的数字C,但其中一个更可重用(通过将'C'作为字符串返回),而且它缺少循环和大量的重新分配。在
实际上,我找不到循环会再次发生的情况,基于您重新分配的number_par减去最近的楼层100倍。换言之,这种逻辑大部分是无用的。您可以通过以下方式合理地完成整个功能:
^{pr2}$相关问题 更多 >
编程相关推荐