小编mjs*_*ltz的帖子

Code Golf:Happy Primes!

这是周日,一轮代码高尔夫的时间!

挑战

通过字符计数写出最短的源代码,以确定输入数字是"幸福素数","悲伤素数","快乐非素数"还是"悲伤非素数".

输入

输入应该是来自命令行参数或stdin的整数.不要担心处理大数字,但如果可以/想要这样做.对于小于1的输入值,行为将是未定义的,但是1具有明确的结果.

产量

输出应该打印数字的类型:"快乐素数","悲伤素数","快乐非素数"或"悲伤的非素数".尾随换行符是可选的.

例子

$ happyprime 139
happy prime
$ happyprime 2
sad prime
$ happyprime 440
happy non-prime
$ happyprime 78
sad non-prime
Run Code Online (Sandbox Code Playgroud)

定义

以防你的大脑需要复习.

快乐的号码

来自维基百科,

快乐数由下面的过程来定义.从任何正整数开始,将数字替换为其数字的平方和,并重复该过程,直到数字等于1(它将保持不变),或者在一个不包括1的循环中无休止地循环.这些数字这个过程在1结束的是快乐的数字,而那些不以1结尾的是不愉快的数字(或悲伤的数字).

例如,

  • 139
  • 1 ^ 2 + 3 ^ 2 + 9 ^ 2 = 91
  • 9 ^ 2 + 1 ^ 2 = 82
  • 8 ^ 2 + 2 ^ 2 = 68
  • 6 ^ 2 + 8 ^ 2 = 100
  • 1 ^ 2 …

language-agnostic code-golf rosetta-stone

49
推荐指数
12
解决办法
6272
查看次数

检查iterable的所有值是否为零

是否有一种好的,简洁的/内置的方式来查看迭代中的所有值是否为零?现在我正在使用all()一个小列表理解,但(对我来说)似乎应该有一个更具表现力的方法.我认为这有点等同memcmp()于C.

values = (0, 0, 0, 0, 0)
# Test if all items in values tuple are zero
if all([ v == 0 for v in values ]) :
    print 'indeed they are'
Run Code Online (Sandbox Code Playgroud)

我希望内置函数可以执行以下操作:

def allcmp(iter, value) :
    for item in iter :
        if item != value :
            return False
    return True
Run Code Online (Sandbox Code Playgroud)

这个函数是否存在于python中,我只是盲目的,或者我应该坚持使用我的原始版本?

更新

我不是说这allcmp()是解决方案.这是我认为可能更有意义的一个例子.这不是我建议Python的新内置插件的地方.

在我看来,all()这不是那么有意义.它没有表达"所有"正在检查的内容.你可以假设它all()采用了一个可迭代的,但它没有表达函数正在寻找的东西(一个可迭代的bools测试所有它们True).我要求的是 my allcmp()这样的函数,它有两个参数:一个可迭代的和一个比较值.我在问是否有内置函数可以执行与我编写的类似的操作allcmp(). …

python iterable

26
推荐指数
4
解决办法
5万
查看次数