özet
Mümkün olan en az jetonla FizzBuzz'ı Python'da uygulayın.
Meydan okuma
1'den 100'e kadar ondalık sayıları yazdıran bir program yazın. Ancak sayı yerine üç baskı “Fizz” ve beş baskı “Buzz” katları için. Hem üç hem de beşin katları olan sayılar için “FizzBuzz” yazdırın. Programlar Python'un bazı sürümlerinde yazılmalıdır.
Daha fazla ayrıntı için bkz. 1, 2, Fizz, 4, Buzz
puanlama
Puanınız, Python 3 için bu program veya Python 2 için bu program tarafından bildirildiği gibi, kodunuzun soyut sözdizimi ağacındaki düğüm sayısına eşit olacaktır . Programları çalıştırmak için, programınızın komut satırı bağımsız değişkeni olarak kodunuzun dosya adını girin. Örneğin:
python simple_counter.py fizzbuzz.py
Bu programlar Python'un ast modülüne dayanmaktadır . Herhangi bir zorluğunuz varsa bana bildirin.
Gerçek programla uzun bir dize yürütmek veya çıktıyı kodlamak gibi önemsiz çözümleri önlemek için bazı ek kısıtlamalar vardır:
Kodunuzdaki hiçbir simge 15 karakterden uzun olamaz. Yukarıdaki programlar sizin için bu gereksinimi kontrol edecektir. Uygulama kolaylığı için, yukarıdaki programların yorumları jeton olarak saydığını unutmayın.
Kod yürütme / değerlendirme yasaklandı.
Bir şeye izin verilip verilmediğine ilişkin sorularınız varsa bana sorun.
Puanlama Buluşsal Yöntemleri
Aşağıdaki kurallar genellikle programınızın puanını hesaplamak için yeterlidir:
Blok tablolar 1 noktalar şunlardır:
if
,for ... in ...
,while
,else
, vb: Bağımsız tablolar 1 puan verilir
print
Python 2'de,break
,pass
vbDeğişkenler 2 puan
Tek belirteci değişmezleri 1 noktası:
2131
,"Hello, world!"
,True
Fonksiyonlar 3 noktadır (değişken kullanmak için 2, 1 ekstra):
print
Python 3range
, vb.Operatörler 2 noktalar şunlardır:
+
,*
,%
,and
,not
, vs.=
1 puanDesteklenmiş atama 2 puan
+=
,|=
vs.Parantez, girinti vb. 0 puandır.
Bir ödeve ya da bir ifadeye karşılık olarak bir ifade içeren bir çizgi + 1 puandır.
Kod sahibi olmak 1 puan.
Meydan okuma:
En düşük puan kazanır. İyi şanslar!