Hogyan tudom egy python szám listából megadni, hogy hány szám osztható 7-el?
7-tel osztható az a szám, melynek számjegyeit hátulról hármasával csoportosítva és váltakozó előjellel összeadva a kapott szám osztható 7-tel.
Másik módszer:
7-tel úgy vizsgálhatjuk még az oszthatóságot, hogy a szám első számjegyétől utolsó előtti számjegyéig képzett számból kivonom az utolsó számjegy kétszeresét. Ha az így kapott szám osztható 7-tel, akkor az eredeti is.
Másik módszer:
7-tel úgy vizsgálhatjuk meg az oszthatóságot, hogy a szám első számjegyétől utolsó előtti számjegyéig képzett számból kivonjuk az utolsó számjegy dupláját (kétszeresét).
Ha az így kapott szám osztható 7-tel akkor az eredeti is. Ha még az így kapott számról sem tudjuk megállapítani, hogy osztható-e 7-tel, akkor ugyanezt az módszert kell alkalmazni amíg olyan számot nem kapunk amiről biztosan meg tudjuk állapítani, hogy osztható 7-tel.
Modulo(%) operátorral tudsz maradékos osztást végezni.
if szam%7 == 0 #osztható héttel
És gyakorlatilag ennyi, a listádon for ciklussal végigugrálsz, a maradékos osztás eredményét meg tárolod ahogy jónak látod.
elösször irjunk egy függvényt, ami meg tudja mondani egy számról, hogy oszthato-e 7-el. Erre van több módszer is, én most a modulo operátort fogom használni:
def oszthato_7(n):
____return n % 7 == 0
ezután írunk egy olyan list-comprehensiont, ami azokat az elemeket gyüjti ki a listából, ami osztható 7-el(tehát az elözö függvény true-t ad vissza rá)
szamok = [...itt vannak a szamjaid...]
oszthato_szamok = [x for x in szamok if oszthato_7(x)]
ebben az összes 7-el osztható benne lesz az eredeti listából és csakis azok.
Tehát ennek az új listának a hossza megegyezik az eredeti listában szereplö 7-el osztható számok számával
Szummázod egy list comprehension eredményét, ahol 1 szerepel, ha az adott szám osztható 7-tel.
lista = [1, 3, 5, 7, 10, 14, 20, 21]
print(sum([1 for szam in lista if szam % 7 == 0]))
"Modulo(%) operátorral tudsz maradékos osztást végezni."
Maradékos osztást NEM TUD végezni.
A modulo operátor CSAK és KIZÁRÓLAG osztási maradékot képez.
"#6 És a kérdezőnek pontosan erre van szüksége."
Mire? Hogy hülyeségekkel traktálják?
Ismétlem, mert látom, nem esett le: A MODULO operátor NEM végez maradékos osztást, hanem CSAK osztási maradékot képez.
Remélem a kettő közötti különbséget fel is tudod fogni.
"és látom, hogy a szavak jelentésén lovagolsz már megint,"
Igen, mert tudod, van ám nekik ilyen és ez biztosítja azt, hogy két vagy több ember kommunikálni tudjon egymással, ráadásul úgy, hogy mindenki ugyanazt értse egy-egy fogalom mögött/alatt.
Ez, a szavak jelentéstartalma különösen fontos a szakmai terminológiában. És még ha te bele is szarsz ebbe, mert nem látod be a fontosságát, akkor is így van ez.
A MODULO operátor nem ad vissza osztási eredményt, mindössze az osztás maradékát képezi, ezért helytelen maradékos osztásnak nevezni. Mert ezzel az erővel a szorzás helyett is mondhatnék kivonást vagy valami mást.
Te igénytelen vagy, rendben. De ezt az igénytelenséget ne kényszerítsd rá másokra a pontosságra törekvést meg ne ródd fel hibaként.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!