Diskuze: Kód for v Pythoně v jedné větě
Člen
Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
2. Vytvoří se seznam řetězců, který je rozdelen podle čárek. To vše
pomocí split().
3. Každý prvek seznamu se převede na číslo. Výsledkem je seznam
čísel.
4. Vypíše se na obrazovku seznam čísel pomocí print().
Mohu Ti požádat napsat ten kód
vstupniPole = [int(n) for n in cisla.split(",")]
obvyklým způsobem, tj.
for n in cisla:
atd.
Zkoušl jsem to několikrát, ale neúspěšně.
cisla = input("Zadej čísla pro seřazení (oddělená čárkou): ")
cisla = "-2, 15 , 0,5,8,-3, 22"
vstupniPole = [int(n) for n in cisla.split(",")]
cisla.split(",") = ["-2"," 15 "," 0","5","8","-3"," 22"] # ted si nejsem uplne jisty, zda tam ponecha pred nebo za mezery, PY se chova dost jinak nez bezny prog. jazyk, ktery tam ty mezery necha
for item in array # nebo jeste se pouziva: "for value in array", "for item in list", "for row in list"
array = ["-2"," 15 "," 0","5","8","-3"," 22"]
array = [item,item,item,...] # cili, cyklus do item prirazuje postupne kazdy string z pole
int(item)
# prevadi string na cislo - viz treba " 15 " na +15
# vysledkem [int(n) for n in cisla.split(",")]
# bude tedy pole cisel [-2,15,0, 5,8,-3,22]
Je doporucene davat promennym alespon 3 pismenka pro nazev (ale za urcitych
okolnosti to ani sam nedodrzuji).
Se doporucuje pro cykly pouziva i,j,k.
for item in array - pro tento druh cyklu bych doporucoval pouzivat
item `nebo `value, slovo, ktere asi nejlepe odpovida hodnote,
kterou ocekavas ve vysledku
[-2,15,0, 5,8,-3,22] --- for value in array
["-2", "15", "0", "5", "8", "-3", "22"] --- for item in list
[["-2", "15"], ["0", "5"], ["8", "-3"], "22"] --- for item in list
kdyz se jedna o koordinaty [x,y] nebo gps severni sirka, zapadni delka, tak treba --- for coords in list
table = [
["-2", "15", "0", "5", "8", "-3", "22"],
["-2", "15", "0", "5", "8", "-3", "22"],
["-2", "15", "0", "5", "8", "-3", "22"],
]
"for row in table"
list = [
["Tomas"],
[" Pepik"],
["Honza"],
]
"for item in list"
item jako polozka v seznamu list
Proste, nazev, ktery nejlepe vystihuje situaci, jak s tim pracujes.
Pokud to tak v prikladech neni a vetsinou v PY prikladech to nikdo nedodrzuji,
osobne to povazuji za vazny prohresek proti dobrym mravum pri programovani 
Děkuji!
Všechno to je důležité, chápu to a snažím se toho držet. Pro mě je
problém v něčem jiném.
1. myslil jsem, že ten kód
vstupniPole = [int(n) for n in cisla.split(",")]
je možné popsat jinak:
for n in cisla:
cisla = str()
cisla = cisla.split(",")
if cisla.isdigit():
vstupniPole += int(n) # nebo: vstupniPole.append(int(n))
print(vstupniPole)
else:
print("Chybné zadání!")
2. druhou otázkou je to - jak, v jaké fázi jsou nadbytečné mezery nastavené uživatelem odstraněny?
Ohledně
`cisla.split(",") = ["-2"," 15 "," 0","5","8","-3"," 22"]
# ted si nejsem uplne jisty, zda tam ponecha pred nebo za mezery,
PY se chova dost jinak nez bezny prog. jazyk, ktery tam ty mezery necha`
ANO, po split() jsou tam mezery, a proto i nevím v jaké fázi se
odstraňuje.
Vřele doporučuji naučit se psát vlastní funkce a knihovny. Vše budeš mít tak jak potřebuješ a ještě se naučíš programátorské myslet. Řešit problémy pak pro tebe bude hračka.
Samozřejmě že tam split() mezery ponechá, prvky jsou stále řetězce. Až při pretypovaní na int dojde k odstranění mezer.
Je to tak. Děkuji!
Mezery odstranuje funkce int, ktera prevadi string na cislo.
Cislo je zapisovane jako 8, 16, 32... bytu, podle procesoru. 2,147,483,647 jako
cislo je 32 bity = 4 byty
String je retezec znaku po 8 bitech, "2,147,483,647" = 14 bytu
A je dobre si precist, co presne int dela, v dokumnetaci. Opet se to castecne
lisi pro ruzne jazyky. Obvykle se snazi najit v retezci prvni integer cislo,
ostatni smaze. kdyz das int("2,147,483,647"), tak by to teoreticky mohlo dat
jen cislo=2 V nekterych jazycich je treba number() nebo float(), ktere by z toho
mohli dostat vsechna cisla. Je lepsi si to vzdy overit, najit v dokumentaci,
pokud s tim bezne nepracujes.
Mno, ten kod mas blbe, asi.
vstupniPole = [int(n) for n in cisla.split(",")]
je možné popsat jinak:
cisla = cisla.split(",")
for n in cisla:
#cisla = str() # ???
#cisla = cisla.split(",")
if cisla.isdigit(): # tohle je asi nesmysl, digit zjistuje, zda jsou v cisle cifry,
# jenze to plati i pro specialni znaky, jako umocnovani na druhou, treti - numbers in base 10
# a Kharosthi numbers
# https://www.tutorialspoint.com/python/string_isdigit.htm
vstupniPole += int(n) # nebo: vstupniPole.append(int(n))
print(vstupniPole)
else:
print("Chybné zadání!")
---
import re
def has_numbers(inputString):
return bool(re.search(r'\d', inputString))
# https://stackoverflow.com/questions/19859282/check-if-a-string-contains-a-number
str.isalpha()
a jina reseni na tom forku
# Vstupní řetězec obsahující čísla oddělená čárkami
cisla = "1,2,3,4,5"
# Rozdělení vstupního řetězce na části podle čárek
cisla = cisla.split(",")
# Vytvoření prázdného seznamu pro uložení celých čísel
vstupniPole = []
# Pro každou část v cisla
for n in cisla:
# Převod části na celé číslo a přidání do seznamu vstupniPole
vstupniPole.append(int(n))
# Výsledek je seznam celých čísel v proměnné vstupniPole, který vypíšeme
print(vstupniPole)
V Pythonu je int(n) funkce, která konvertuje hodnotu n na celé číslo (integer), pokud je to možné. Pokud je n řetězec obsahující číselnou hodnotu, bude převeden na odpovídající celé číslo. Pokud je n desetinné číslo, funkce int() odstraní desetinnou část a ponechá pouze celou část. Pokud by byl řetězec n ve formátu, který nelze převést na celé číslo, funkce int() může vyvolat chybu, například ValueError.
Zobrazeno 13 zpráv z 13.