Sur Ba Programming Challenge
Ha egy listát tudnék vezetni az összes esetről...
...szerencsére tudok. A Pythonban létezik egy "lista" nevű adatszerkezet, ami pont az, amit a név alapján gondolnánk.
Egy üres listát a []
literállal hozhatunk létre, vagy akár rögtön bele is rámolhatunk dolgokat: [10, 20.3, "alma", x]
egy listát hoz létre amiben egy egész, egy valós, egy szöveg és az x
változó értéke van.
#!/usr/bin/python
import random
import cgitb
cgitb.enable()
numbers = []
for x in range(0, 50):
numbers.append(random.randrange(0, 1000));
print "Content-type: text/html\n\n"
print "<h1>Numbers!</h1>"
print "<p>I love numbers. Here's a few for you:<br>", numbers, "</p>"
print "<p>The length of the list is ", len(numbers), ". The third element in the list is ", numbers[2], "</p>"
largest = -1
for num in numbers:
if (num > largest):
largest = num
print "<p>The largest number is <b>", largest, "</b>"
http://apocalypse.rulez.org/~upi/surba/list.py [source]
Vegyük észre:
- A cgitb modul komoly segítséget jelent Python programok hibáinak felderítésében. Ha a program futása közben történik valami gikszer, akkor szépen kiírja színes-szagos formában. Akkor nem segít, ha a program szintaktikai hiba miatt nem értelmezhető, ilyenkor csak a PuTTY-os módszer célravezető.
- A
for
egy új ciklus szervező utasítás ami egy megadott intervallumon halad végig, vagy egy lista tartalmán. - A
print
parancs képes egy teljes listát kiírni. - A lista hosszát a
len
eljárással tudhatjuk meg. - A listában tetszőleges elemet meg tudunk címezni a
lista[szám]
formulával. Az elemeket 0-tól számozzuk, mind mindig, tehát alist[2]
a harmadik elemet adja vissza.
Feladatok
- Legyen paraméterezhető a lista mérete!
- Írjuk ki a legkisebb számot is a listában.
- Írjuk ki a páros számokat.
- Hogyan lehetne a második for ciklust úgy megírni, hogy nem használjuk fel azt a tudásunkat, hogy a legkisebb lehetséges szám a 0?
- Írjuk ki a számok átlagát.
- Bónusz feladat: Írjuk ki a számokat növekvő sorrendben!
SurBa 2017.VI.28 20:32
A szintaxis még mindig megizzaszt, de ez volt a második kedvenc bónuszfeladatom!
paraméterezhető: http://apocalypse.rulez.org/~surba/param1.py?p=3 [source] (p a paraméter)
páros: http://apocalypse.rulez.org/~surba/paros1.py?p=3 [source] (ezt is paraméteresen csináltam mert általánosabb és jobban tetszik úgy)
ciklus átírva: http://apocalypse.rulez.org/~surba/piros1.py?p=3 [source]
átlag: http://apocalypse.rulez.org/~surba/atlagos1.py?p=3 [source]
bónusz: http://apocalypse.rulez.org/~surba/szep1.py?p=3 [source] (itt izzadtam a szintaxis miatt, és mert nem akartam túl sok listát beletenni, de még nem tudok elég varázslatot hozzá, viszont nagyon élveztem!)
SurBa 2017.VI.28 22:27
(Válaszképp erre)
nemér, nem tudtam editelni a bónuszt elszúrtam és elvileg a szep2-ben lesz a megoldás egy kicsit más megközelítéssel ha nem kerülök végtelen ciklusba
UPi 2017.VI.28 20:35
http://apocalypse.rulez.org/~surba/szep1.py?p=10 [source] hibát ír ki:
type 'exceptions.IndexError' 37-edik sorban.