Questions tagged «ast-golf»

4
抽象语法树高尔夫:FizzBu​​zz,Python
摘要 用最少的令牌在Python中实现FizzBu​​zz。 挑战 编写一个打印十进制数字(从1到100)的程序。但是,对于三倍打印“ Fizz”而不是数字,对于五倍打印“ Buzz”。对于三和五的倍数的数字,请打印“ FizzBu​​zz”。程序必须使用某些版本的Python编写。 有关更多详细信息,请参见1,2,Fizz,4,Buzz 计分 您的分数将等于此程序针对Python 3或该程序针对Python 2报告的代码抽象语法树中的节点数。要运行程序,请提供代码的文件名作为程序的命令行参数。例如: python simple_counter.py fizzbuzz.py 这些程序基于Python的ast模块。如果您有任何困难,请告诉我。 为避免琐碎的解决方案,例如用实际程序执行长字符串或对输出进行硬编码,还有一些其他限制: 您的代码中的令牌不得超过15个字符。以上程序将为您检查此要求。注意,为了易于实施,上述程序将注释计为标记。 代码执行/评估被禁止。 如果您对是否允许某些物品有疑问,请问我。 计分启发法 以下规则通常足以计算程序的分数: 语句块是1分:if,for ... in ...,while,else,等。 独立语句是1点:print在Python 2, break,pass等。 变量是2分 单令牌面值为1点:2131,"Hello, world!",True 函数是3点(使用变量需要2点,额外需要1点):print在Python 3中range,等等。 运营商有2点:+,*,%,and,not,等。 = 是1分 增量赋值为二点:+=,|=,等。 括号,缩进等为0点。 与赋值或表达式相反,包含表达式的行为+ 1点。 完全有代码是1点。 挑战: 最低分获胜。祝好运!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.