Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Python házifeladat

253
Sziasztok. Valaki tudna segíteni ebben a három python feladatban? Előre is köszi a válaszokat!

1, Bence a zsebpénzéből egy új mikrofont szeretne venni. Szerencséjére a kedvenc webshopja épp
kiárusítást tart, így minden szórakoztató elektronikai termék akciósan vásárolható meg.
Írj egy programot, amely két paramétert vár: a webshopban található mikrofonok eredeti árát
(egész számokat tároló lista) és a leárazás mértékét százalékban (valós szám)! A függvény
csökkentse a listában lévő árakat az adott százalékkal, és térjen vissza az így kapott listával! Az
árak továbbra is egészek legyenek (ne tizedestörtek)!
Példa:
Input: [5000, 12000, 10000, 29000, 47000], 30.0
Return: [3500, 8400, 7000, 20300, 32900]

2,Írj egy programot, amely egy szöveget kap paraméterül (a szöveg szóközzel elválasztott szavakat
tartalmaz)! A függvény térjen vissza a szövegben található leghosszabb szóval! Amennyiben több
szó is ugyanolyan hosszú, akkor közülük a szövegben korábban előfordulót add vissza!
Ha a paraméterül kapott szöveg az üres string, akkor a visszatérési érték a HIBA! szöveg
legyen!
Példa:
Input: 'Szia uram! Mondd mar meg, hogy hany ora van!'
Return: 'uram!'
Input: ''
Return: 'HIBA!'

3,Írj egy programot, amely egy jelszavakat tartalmazó listát kap paraméterül! A függvény adja vissza
ezek közül a gyenge jelszavakat egy listában! Egy jelszót gyengének tekintünk, ha az alábbi
feltételek közül legalább 1 érvényes rá:
• A jelszó rövidebb, mint 5 karakter
• A jelszó nem tartalmaz számjegy karaktert
• A jelszó tartalmazza a jelszo vagy 123 szövegek valamelyikét bármilyen formában (a
kis- és nagybetűket nem megkülönböztetve).
Példa:
Input: ['Root', 'Kekw2000', 'H0sszuJelszoG0esBrrr', 'Admin123456', 'sub2Pewdiepie', 'asdqwe',
'K1L0']
Return: ['Root', 'H0sszuJelszoG0esBrrr', 'Admin123456', 'asdqwe', 'K1L0']
Jelenleg 1 felhasználó nézi ezt a kérdést.
python
0
Középiskola / Informatika

Válaszok

1
1. Kissé zagyva:
  • Először programról beszél, aztán meg függvényről (függvényt választottam)
  • Azt kéri, hogy az eredmények egész számok legyenek, de nem mondja meg, hogy kerekíts vagy nyess (kerekítést választottam)

def learazas(eredeti_ar_lista, learazas):
    return [round(ar / 100 * (100 - learazas)) for ar in eredeti_ar_lista]

List comprehension nélkül:

def learazas(eredeti_ar_lista, learazas):
    learazott_ar_lista = []

    for ar in eredeti_ar_lista:
        learazott_ar_lista.append(round(ar / 100 * (100 - learazas)))

    return learazott_ar_lista

2.

def leghosszabb_szo(szoveg):
    return sorted(szoveg.split(), key = len, reverse = True)[0] if szoveg else 'HIBA!'

Korábban kissé kapkodtam, a „helyes” megoldás ez volna:

def leghosszabb_szo(szoveg):
    return max(szoveg.split(), key = len) if szoveg else 'HIBA!'

Kézzel keresve ki a leghosszabb szót:

def leghosszabb_szo(szoveg):
    if szoveg == '':
        return'HIBA!'

    szo_lista = szoveg.split()
    leghosszabb = ''

    for szo in szo_lista:
        if len(leghosszabb) < len(szo):
            leghosszabb = szo

    return leghosszabb

3. (Jessz! Befért egy sorba.)

def gyenge_jelszo(jelszo_lista):
    return list(filter(lambda jelszo: len(jelszo) < 5 or not any([str(szamjegy) in jelszo for szamjegy in range(10)]) or 'jelszo' in jelszo.lower() or '123' in jelszo, jelszo_lista))

Ismét a kapkodás, a list comprehension nem kellett bele:

def gyenge_jelszo(jelszo_lista):
    return list(filter(lambda jelszo: len(jelszo) < 5 or not any(filter(str.isdigit, list(jelszo))) or 'jelszo' in jelszo.lower() or '123' in jelszo, jelszo_lista))

A fenti szétszedve külön feltételekre:

def gyenge_jelszo(jelszo_lista):
    gyenge_lista = []

    for jelszo in jelszo_lista:
        if len(jelszo) < 5:
            gyenge_lista.append(jelszo)
        elif not any(filter(str.isdigit, list(jelszo))):
            gyenge_lista.append(jelszo)
        elif 'jelszo' in jelszo.lower() or '123' in jelszo:
            gyenge_lista.append(jelszo)
           
    return gyenge_lista
Módosítva: 1 éve
1