Portál AbcLinuxu, 9. května 2025 02:51

Dotaz: Python - jak zjistit počet čísel v textu?

5.12.2018 16:53 Etsu
Python - jak zjistit počet čísel v textu?
Přečteno: 1040×
Odpovědět | Admin
Ahoj,

na střední škole začínáme s Pythonem a máme za úkol udělat program, který načte text a vypíše počet čísel, co ten text obsahuje. Jenže nevím jaké příkazy použít.

předem děkuji.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.12.2018 18:58 sad
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle by mělo fungovat, ale asi tomu nebudeš moc rozumět. Doporučil bych ti, aby sis pořídil(a) knihu Learning Python od Marka Lutze, ta je pro úplné začátečníky.
import sys

def count_digits(filename):
	n = 0
	for line in open(filename):
		for c in line:
			if c.isdigit():
				n += 1
	return n

print(count_digits(sys.argv[1]))
5.12.2018 19:23 sad
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
Ten svůj příklad ještě trochu doplním.
import sys

def count_digits(filename):
	n = 0
	for line in open(filename):
		for c in line:
			if c.isdigit():
				n += 1
	return n

if len(sys.argv) == 1:
	print('Missing file argument!')
else:
	print(count_digits(sys.argv[1]))
Takže budeš mít soubor data s nějakým textem, který bude obsahovat čísla, napíšeš na příkazovou řádku python3 count.py data a měl by se ti zobrazit počet písmen v onom souboru.
7.12.2018 15:07 debian+
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
CITAJTE dobre odpovedajuci, neziadal si vypracovnie, ale
... Jenže nevím jaké příkazy použít.
Pyta prst, a vy mu dobrovolne date celu ruku?

Chlapec sa chcel ucit a vy robite z neho copy-paste writera.
5.12.2018 19:53 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
a) FAQ

b) koľko čísiel je na nasledujúcom riadku?
foo 123 456 bar
14.12.2018 12:08 Belpir
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
impor re

text = '10 foo 123 456 bar18'

# počet číslic - digits
print(len(re.findall(r'\d', text)))

# počet čísel - numbers
print(len(re.findall(r'\d+', text)))
14.12.2018 12:32 NN
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
Gratuluji, dalsi diletant co nepochopil smysl domacich ukolu.
14.12.2018 13:44 Belpir
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
Budiž, ale odpověď jsem psal v nejlepší víře autorovi dotazu pomoci. Jaká je lepší odpověď na dotaz "... nevím jaké příkazy použít?": a) prostuduj si řetězcové metody a cykly, případně komprehenzi seznamů, nebo regulární výrazy ? b) napsat hotové řešení ?

Podle mě odpověď a) k ničemu nebude, spíše jej odradí. Z odpovědi b) se může minimálně inspirovat.
Jendа avatar 5.12.2018 21:32 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Koukni na modul re.
6.12.2018 14:23 lazywriter
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
V python3:

a = input('Enter text:') print (len([x for x in a if x.isdigit()]))
6.12.2018 14:24 lazywriter
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
Spravne naformatovano:
a = input('Enter text:')
print (len([x for x in a if x.isdigit()]))
6.12.2018 14:25 lazywriter
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
Safra, az pak mi doslo, ze z toho jde udela oneliner:

print (len([x for x in input('Enter text:') if x.isdigit()]))
6.12.2018 14:54 _
Rozbalit Rozbalit vše Re: Python - jak zjistit počet čísel v textu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
čísel nebo číslic?

nemuzes programovat, pokud problem nedokazes srozumitelne popsat ani ve vlastnim jazyce

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.