Sprawdzenie czy hasło spełnia wymagania bezpieczeństwa

0

Potrzebuje pomocy z tymi zadankami.

  1. Napisz funkcję valid_passwd(passwd) sprawdzającą, czy zadane przez użytkownika hasło spełnia wymagania bezpieczeństwa, tj.:
    • zawiera co najmniej 8 znaków;
    • zawiera co najmniej 2 liczby;
    • zawiera co najmniej 1 znak specjalny;
    • zawiera co najmniej 1 wielką literę.
    .

  2. Napisz funkcję count_keyword(str) zliczającą wystąpienia słów kluczowych
    języka Python (def, for, if, else, elif, while) w zadanym ciągu znakowym oraz wypisującą słowa
    kluczowe i liczbę ich wystąpień od najczęściej występującego do najrzadziej.

  3. Napisz funkcję calculate_average(dict1, dict2), która liczy średnią ocen studenta z dwóch semestrów studiów z jednego przedmiotu. W ramach funkcji przyjmij, iż w słowniku pierwszym dict1 znajdują się nazwiska studentów i ich oceny z pierwszego semestru, a w
    słowniku drugim ich nazwiska i oceny z drugiego semestru. Studenci, którzy zaliczyli tylko
    jeden semestr nie powinni być zliczani.

3

Potrzebuje pomocy z tymi zadankami.

A co już masz napisane?

4

Napisałem. Co prawa nie wiem, jak Ci to mogło pomóc, ale skoro prosisz…

0
KamilAdam napisał(a):

A co już masz napisane?

Problem w tym, że właśnie nic, nie czekam na gotowe ale chociaż aby ktoś mi pomógł i podpowiedział co i jak.

2

OK. Z czym sobie konkretnie nie radzisz? Siadasz do zadania, otwierasz edytor tekstu — i jaka jest pierwsza rzecz, na której się zatrzymujesz?

1

OK. Z czym sobie konkretnie nie radzisz? Siadasz do zadania, otwierasz edytor tekstu — i jaka jest pierwsza rzecz, na której się zatrzymujesz?

Na tym, żeby cokolwiek napisać. Dopiero zaczynam, chce się nauczyć ale kompletnie nie wiem od czego zacząć na przykład jakieś konkretne zadanie.

0
Gabii napisał(a):

OK. Z czym sobie konkretnie nie radzisz? Siadasz do zadania, otwierasz edytor tekstu — i jaka jest pierwsza rzecz, na której się zatrzymujesz?

Na tym, żeby cokolwiek napisać. Dopiero zaczynam, chce się nauczyć ale kompletnie nie wiem od czego zacząć na przykład jakieś konkretne zadanie.

No ok, ale to jest zadanie ze studiów? Z liceum? Z jakiegoś tutoriala?

0
Gabii napisał(a):

Na tym, żeby cokolwiek napisać. Dopiero zaczynam, chce się nauczyć ale kompletnie nie wiem od czego zacząć na przykład jakieś konkretne zadanie.

Zadanie: Napisać klasyczny hello world:
Rozwiązanie:

#include <iostream>
using namespace std;

int main()
{
  cout<<"Hello world!"<<endl;
  return 0;
}

Czy to wystarczy?

50
Gabii napisał(a):

Potrzebuje pomocy z tymi zadankami.

  1. Napisz funkcję valid_passwd(passwd) sprawdzającą, czy zadane przez użytkownika hasło spełnia wymagania bezpieczeństwa, tj.:
    • zawiera co najmniej 8 znaków;
    • zawiera co najmniej 2 liczby;
    • zawiera co najmniej 1 znak specjalny;
    • zawiera co najmniej 1 wielką literę.
    .

  2. Napisz funkcję count_keyword(str) zliczającą wystąpienia słów kluczowych
    języka Python (def, for, if, else, elif, while) w zadanym ciągu znakowym oraz wypisującą słowa
    kluczowe i liczbę ich wystąpień od najczęściej występującego do najrzadziej.

  3. Napisz funkcję calculate_average(dict1, dict2), która liczy średnią ocen studenta z dwóch semestrów studiów z jednego przedmiotu. W ramach funkcji przyjmij, iż w słowniku pierwszym dict1 znajdują się nazwiska studentów i ich oceny z pierwszego semestru, a w
    słowniku drugim ich nazwiska i oceny z drugiego semestru. Studenci, którzy zaliczyli tylko
    jeden semestr nie powinni być zliczani.

  1. len(), isdigit(), isalnum(), isupper()
  2. pętla, słownik, split() ew gotowe klasy jak Counter
  3. Nie wiem jak wygląda ten słownik ale zakładając, że coś w stylu d1 = {"Nowak": [1,2,3]} to: dict union + comprehension + sum()

Ogólnie to pierwsze można zrobić jednolinijkowym regexem, ale skoro dopiero się uczysz to nie ma sensu zawracać sobie tym głowy. Miłej lektury i powodzenia ! :)

2

Mam nadzieję, że któraś z tych stron będzie pomocna w nauce Pythona: https://github.com/vinta/awesome-python#websites

0

Dzięki, wielkie za pomoc. Powoli idę do przodu. :)

1

Bardzo się cieszę, jakieś postępy?

def good_pass(passwd):
    mp=\
    [
        (8,lambda c:True),            #znaki
        (2,lambda c:c.isdigit()),     #cyfry
        (1,lambda c:not c.isalnum()), #specjalne
        (1,lambda c:c.isupper()),     #duże litery
    ]
    return sum(sum(p(c) for c in passwd)<m for m,p in mp)<1
    
print(good_pass("A1a ma k0ta"))

Lub bardziej zawansowana wersja:

def good_pass(cond,passwd):
    mp=\
    {
        "" :lambda c:True,            #znaki
        "0":lambda c:c.isdigit(),     #cyfry
        "!":lambda c:not c.isalnum(), #specjalne
        "A":lambda c:c.isupper(),     #duże litery
        "a":lambda c:c.islower(),     #małe litery
    }
    return sum((m in cond) and (sum(p(c) for c in passwd)<cond[m]) for m,p in mp.items())<1
    
print(good_pass({"":8,"0":2,"!":1,"A":1},"A1a ma k0ta"))
0

Zdefiniuj problem dokładniej.

>>> '3'.isdigit()
True
>>> '³'.isdigit()
True
>>> '③'.isdigit()
True
>>> '٣'.isdigit()
True
>>>
0

polecam zapoznać się z regular expressions :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1