我有一个打印乘法表的程序。你知道吗
def print_tables(input):
for i in xrange(1,11):
print "%s x %s = %s" %(input, i, input*i)
user_input = raw_input("What do you want multiplied ten fold? ")
if(user_input.isdigit()):
print_tables(int(user_input))
else:
print_tables(user_input)
如果用户输入一个字符串"a"
,我希望输出是:
a x 1 = a
a x 2 = aa
a x 3 = aaa
a x 4 = aaaa
a x 5 = aaaaa
a x 6 = aaaaaa
a x 7 = aaaaaaa
a x 8 = aaaaaaaa
a x 9 = aaaaaaaaa
a x 10 = aaaaaaaaaa
在if
和else
块中调用print_tables
函数对我来说确实有点多余。你知道吗
Python中有没有更好的方法来调用print_tables
函数,而不管参数类型是什么?你知道吗
一个好方法是:
也就是说,只有一个调用,但是将不同的情况汇集到一个变量中。你知道吗
解释:
print_tables
本身不支持类型,也就是说,它在不同参数的类型上没有不同的行为。乘法应该是多态的。所以,一个pythonic的方法就是把这个明确化。你知道吗再想一想,如果你有一个函数,让你挠头如何调用它,不要试图解决这两种方法的问题。把那个功能去掉!你知道吗
就像他们说的
相关问题 更多 >
编程相关推荐