Diskuze: Python zadání různého počtu čísel

Člen

Zobrazeno 12 zpráv z 12.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
neskoušel jsem to ale mělo byto fungovat
Napadá mně akorat Regular expression
umí pracovat s textem input vraci string
by měl zajistit že když zadaš
1151+14551+14515
tak mužeš to rozdělit na časti a sečíst
https://www.w3schools.com/…on_regex.asp
https://docs.python.org/…rary/re.html
a co se tyče zachytavaní 0
když udělaš TUI pomoci curses tak mužeš zachtavat stisky kláves
https://docs.python.org/…/curses.html
https://www.youtube.com/watch?…
https://www.youtube.com/watch?…
jinak v curses user input uděláš takto
https://docs.python.org/…/curses.html#…
A anglicky taky moc neumím a ve škole mě nechtějí naučit ani jedno ani druhý když si na to doma nenajdu čas.
Tam už vůbec nevím o co jde, teprve jsem skončil 3. lekci prvního oddílu.
To zadani vypada jako typicky skolni priklad, kalkulacka v pythonu. Ocekaval
bych, ze mas nejaky kod. A ze jsi zkousel googlovat nejake reseni, ze mas nejake
tipy, co by mohlo fungovat, jen nevis proc nefunguje. Ve tvem zadani bohuzel nic
z toho neni. Zadny kod, zadne treba top 3 moznosti, ktere by to meli delat, ale
z nejakeho duvodu nefunguji (aspon treba copy-paste nejake vygooglovane).
Pusobi tak jakoby arogantne. Tady mate zadani. Ja nic delat nebudu. Vyreste to
za mne. A zakaznik mi da 30.000 za to Tak takhle vy to nefungovalo.
No, zpet k tve otazce. Odpovim presne tak, jak byla polozena.
"jestli se dá v Pythonu udělat program ..."
Ano, da.
Tak aby ITnetwork zase nevyzeral ako elearningová sieť, kde nikto nie je ochotný začiatočníkovi s niečím pomôcť…
Začiatočníkom síce zo zásady nedávame hotové riešenie, ani postup krok za krokom ako niečo spraviť, ale pokúsim sa pomôcť aj tak.
cislo = int(input("Zadejte číslo:"))
Vypíš na obrazovku text "Zadejte číslo", zisti, čo zadá používateľ, tento jeho vstup preveď na celé číslo a ulož ho do premennej cislo. (S týmto riadkom súhlasím, ten je ešte v pohode. Ďalej to už bude horšie)
for cislo in range(999999999999999):
Do premennej cislo postupne ukladaj hodnoty 0 až 99999999998 (pri 1. prechode cyklom bude v premennej cislo 0, pri 2. prechode cislo == 1, pri 3. cislo == 2 atď) a zakaždým vykonaj to, čo nasleduje ďalej v tele cyklu.
if cislo>0: int(input("Zadejte číslo"))
Ak je číslo v premennej cislo väčšie ako 0, tak vypíš na obrazovku text "Zadejte číslo", zisti, čo zadá používateľ a tento jeho vstup preveď na celé číslo. (Pozn.: nenapísal si ale, čo sa má s týmto medzivýsledkom stať. Takto sa len vyhodnotní a program ho hneď "zahodí")
elif cislo is 0: vysledek = cislo + 1
Ak predchádzajúca podmienka neplatí a zároveň je obsah premennej cislo 0, tak do premennej vysledek ulož hodnotu cislo + 1. (Pozn.: skús si nájsť v mojej odpovedi trochu vyššie, čo je vlastne v premennej cislo).
print(vysledek)
Vypíš obsah premennej vysledek. Aj keď je to zdanlivo jednoduchá operácia, daj si pozor na to, že ak by sa pri prvom prechode cyklom nevytvorila premenná vysledek, tak by ti program spadol s chybou (pretože taká premenná by ešte neexistovala). To by sa v tvojom konkrétnom programe mohlo stať v hypotetickom prípade, keď by sa pri prvom prechode cyklom vykonala prvá vetva if, nie elif. (Ak si to chceš vyskúšať, zmeň riadok "for cislo in range(9999)" na "for cislo in range(1, 9999)" a uvidíš, že takto ti ten program spadne)
Skús si to celé poriadne prečítať a porozmýšľaj, či ten program
robí to, čo od neho očakávaš a chceš
To je normalní dokonči zaklady pythonu a pak se mužeš vrhnout do pokročilích věcí a ostatních knihoven.
Ahoj, co tohle řešení?
def main():
result = 0
number = int(input("Zadejte cislo: "))
while number != 0:
result += number
number = int(input("Zadejte cislo: "))
print(result)
main()
Dal jsem ti to do funkce a rovnou ji volám, takže by ti to mělo jít
normálně. Pokud z nějakého důvodu funkci nechceš, tak hlavičku (řádek s
def ...) odstraň, ale potom zároveň musíš také odstranit
řádek s main()!!!
Tvé řešení bylo špatné, protože jsi nemohl načíst libovolný počet
čísel, ale pouze 9999... atd. (nevím kolik těch devítek jsi tam zadal).
edit. pokud se rozhodneš tu funkci odstranit (viz výše), tak musíš posunout zarovnání ostatních řádků vždy o jeden tabulátor doleva (zpět).
Ta zkusím result. To ještě neznám. Ve které lekci Pythonu to je?
result je název proměnné (v angličtině to znamená výsledek (je dobrým zvykem pojmenovávat funkce a proměnné v angličtině)). Klidně můžeš všechny result v programu změnit na jakékoliv jiné slovo/písmeno, které není zakázané.
Zobrazeno 12 zpráv z 12.