首页 > 解决方案 > 打印是 3 的幂的数字。我可以更好地编写这个程序吗?

问题描述

file = open('funny_file.txt', 'r')
list = []
for i in file:
    list.append(int(i[:-1]))
print(len([num for num in list for i in range(100) if num == 3**i]))

结果很好,但我可以用其他更简单的方法吗?

标签: pythonpython-3.x

解决方案


我假设“3的平方”,你的意思是3的幂。

我建议您修改您的印刷声明中发生的一些事情。通常,当您对实现特定结果感兴趣时,为它创建一个单独的函数来封装该功能是有意义的。在这种情况下,它可能是一个函数,告诉我们它的输入是否是 3 的幂。使用以三为底的对数,您应该能够提出该函数的实现。


推荐阅读