Не-Python Python

ФиззБазз Когда я подал заявку на вступление Хакерская школа , я столкнулся со следующей проблемой:

Напишите программу, печатающую числа от 1 до 100 (включительно).

Если число делится на 3, вместо числа выведите Fizz. Если оно делится на 5, выведите Buzz. Если оно делится и на 3, и на 5, выведите FizzBuzz. Вы можете использовать любой язык программирования.

(Сотрудники Хакерской школы с тех пор немного изменили проблему, скорее всего, чтобы затруднить ее решение интернет-поисковиками.

Я намеренно не включил сюда измененное условие, чтобы минимизировать влияние моего поста на возможности Google.) Задача довольно проста и не требует размышлений, поэтому хорошо подходит в качестве примера для разных языков и стилей программирования, например Hello, World или задачи по поиску чисел Фибоначчи.

Немного не-Python Python Я снова увидел эту проблему сегодня, когда показывал другу свое приложение Hacker School, и вдруг подумал о том, сколько способов ее решения существует только в Python. Python, особенно с ПКП 8 , представляет пользователю идеальные методы написания Python. Но Python не требует Python, поэтому мне стало интересно, в каких стилях я могу писать.

Предупреждение: то, что следует дальше, совершенно не в духе Python. Однако код должен работать (с версией Python 2.7.5).

Присылайте мне свои комментарии или твиты с исправлениями ошибок или дополнениями.

Питон Питон

  
  
  
  
   

def fizzbuzz(number): if number % 3 == 0 and number % 5 == 0: return 'FizzBuzz' elif number % 3 == 0: return 'Fizz' elif number % 5 == 0: return 'Buzz' else: return number for number in range(1, 101): print fizzbuzz(number)

Лисп Питон

fizzbuzz = lambda n: 'FizzBuzz' if n % 3 == 0 and n % 5 == 0 else None fizz = lambda n: 'Fizz' if n % 3 == 0 else None buzz = lambda n: 'Buzz' if n % 5 == 0 else None fizz_andor_maybenot_buzz = lambda n: fizzbuzz(n) or fizz(n) or buzz(n) or str(n) print reduce(lambda m,n: m+'\n'+n, map(fizz_andor_maybenot_buzz, range(1, 101)))

Java Питон

import sys class Value(object): def __init__(self,value): self.setValue(value) def setValue(self,value): self.value = value def getValue(self): return self.value def toString(self): return self.getValue().

__str__() class FizzBuzz(object): def __init__(self, n): if n % 15 == 0: value = 'FizzBuzz'; elif n % 3 == 0: value = 'Fizz'; elif n % 5 == 0: value = 'Buzz'; else: value = str(n); self.setValue(value); def setValue(self,value): self.value = Value(value); def getValue(self): return self.value; class FizzBuzzRunner(object): def __init__(self, n): self.setN(n) def setN(self, n): self.n = n def run(self): for i in range(1,self.n): sys.stdout.write(FizzBuzz(i).

getValue().

toString()+'\n'); if __name__ == '__main__': n = 101; FizzBuzzRunner(n).

run()

Милый питон

def main(): i = 0; value = ''; while i < 100: i += 1 if i % 15 == 0: value = 'FizzBuzz'; elif i % 3 == 0: value = 'Fizz'; elif i % 5 == 0: value = 'Buzz'; else: value = str(i); print value; return 0; main();

Закрытый Python

def fizzbuzz(n): return 'FizzBuzz' if n % 3 == 0 and n % 5 == 0 else None def fizz(n): return 'Fizz' if n % 3 == 0 else None def buzz(n): return 'Buzz' if n % 5 == 0 else None def fizz_andor_maybenot_buzz(n): print fizzbuzz(n) or fizz(n) or buzz(n) or str(n) map(fizz_andor_maybenot_buzz, xrange(1, 101))

Теги: #Ненормальное программирование #python #java #C++ #clojure #Lisp #стили программирования #Ненормальное программирование #python #программирование

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.