判断a是不是b的幂

Think Python 2第六章的某道原题是这样的:

版本A的中文翻译

版本B的中文翻译

研究这道题到底在说什么,我纠结了起码1个小时。什么叫做权?幂来幂去,还有“它”,你真的知道那指代的是什么?我相信翻译这本书的人都一定是编程老手,但你们真的有琢磨过中文表述是否恰当吗?幸好我没买人民邮电出版社出版的Think Python 2中文版,貌似从某些页面看来,翻译也会让我非常吐槽。

还是直接看英文原文比较好懂,那段话我会这么翻译:

研究这道题在说什么研究了好长时间,随便输入几个显而易见的测试数据也挺顺利, 但要把情况想周全貌似很不简单。a == 0的情况有人想到了,但万一作死的写了b == 0呢!测试过好几个网友的编程,b == 0几乎全部挂了…… 我承认,这样测试过分了。

1
2
3
4
5
6
7
8
9
10
11
12
def is_power(a, b):
    if a == 0 or b == 0 or a%b != 0: # a和b的特殊情况先杀死
        return False
    elif a == 1 or a == b: 
        return True
    else:        
        return is_power(a/b, b) # 被除数a为0会死循环,除数b不能为0
a = 4 # int(input('a is '))
b = 2 # int(input('b is '))
print('a =', a)
print('b =', b)
print(is_power(a, b))

def is_power(a, b): if a == 0 or b == 0 or a%b != 0: # a和b的特殊情况先杀死 return False elif a == 1 or a == b: return True else: return is_power(a/b, b) # 被除数a为0会死循环,除数b不能为0 a = 4 # int(input('a is ')) b = 2 # int(input('b is ')) print('a =', a) print('b =', b) print(is_power(a, b))

本文链接:https://my.lmcjl.com/post/17534.html

展开阅读全文

4 评论

留下您的评论.