chore(i18n,curriculum): processed translations (#44637)

This commit is contained in:
camperbot
2022-01-02 16:26:15 +05:30
committed by GitHub
parent 070ef7bb09
commit 5d1b60b07f
11 changed files with 462 additions and 88 deletions

View File

@ -9,7 +9,7 @@ dashedName: create-a-more-complex-shape-using-css-and-html
# --description-- # --description--
Una delle forme più comuni al mondo è la forma del cuore, e in questa sfida ne creerai una utilizzando solo CSS. Per prima cosa però è necessario capire gli pseudo-elementi `::before` e `::after`. Questi pseudo-elementi sono usati per aggiungere qualcosa prima o dopo un elemento selezionato. Nell'esempio seguente, uno pseudo-elemento `::before` viene utilizzato per aggiungere un rettangolo a un elemento di classe `heart`: Una delle forme più comuni al mondo è la forma del cuore, e in questa sfida ne creerai una utilizzando solo CSS. Per prima cosa però è necessario capire gli pseudo-elementi `::before` e `::after`. `::before` crea uno pseudo-elemento che è il primo figlio dell'elemento selezionato; `::after` crea uno pseudo-elemento che è l'ultimo figlio dell'elemento selezionato. Nell'esempio seguente, uno pseudo-elemento `::before` viene utilizzato per aggiungere un rettangolo a un elemento di classe `heart`:
```css ```css
.heart::before { .heart::before {

View File

@ -14,7 +14,7 @@ Costruisci un'app JavaScript full-stack che sia funzionalmente simile a questa:
- Usare [la nostra bozza di progetto su Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-filemetadata) per completare il tuo progetto. - Usare [la nostra bozza di progetto su Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-filemetadata) per completare il tuo progetto.
- Usare un costruttore di siti di tua scelta per completare il progetto. Assicurati di incorporare tutti i file del nostro repository GitHub. - Usare un costruttore di siti di tua scelta per completare il progetto. Assicurati di incorporare tutti i file del nostro repository GitHub.
Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo `Solution Link`. Facoltativamente, invia anche un link al codice sorgente dei tuoi progetti nel campo `GitHub Link`. Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo `Solution Link`. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo `GitHub Link`.
# --instructions-- # --instructions--

View File

@ -8,21 +8,83 @@ dashedName: arithmetic-formatter
# --description-- # --description--
Crea una funzione che riceve una lista di stringhe che sono problemi aritmetici e restituisce i problemi disposti verticalmente e fianco a fianco. Lavorerari a [questo progetto con il nostro codice d'inizio su Replit](https://replit.com/github/freeCodeCamp/boilerplate-arithmetic-formatter).
Puoi accedere [alla descrizione completa del progetto e al codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-arithmetic-formatter).
Dopo essere andato a quel collegamento, fai un fork del progetto. Una volta completato il progetto in base alle istruzioni riportate in 'README.md', invia il link del progetto qui sotto.
Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto: Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto:
<ul> <li> - [Video corso Python for Everybody](https://www.freecodecamp.org/news/python-for-everybody/) (14 ore)
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Video corso Python for Everybody</a> (14 ore) - [Video corso Learn Python](https://www.freecodecamp.org/news/learn-python-video-course/) (10 ore)
</li>
<li> # --instructions--
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Video corso Learn Python</a> (2 ore)
</li> Gli studenti delle elementari spesso scrivono l problemi aritmetici in colonna per risolverli più facilmente. Per esempio, "235 + 52" diventa:
<ul>
```py
235
+ 52
-----
```
Crea una funzione che riceve una lista di stringhe che sono problemi aritmetici e restituisce i problemi disposti verticalmente e fianco a fianco. La funzione dovrebbe accettare un secondo argomento facoltativo. Quando il secondo argomento ha valore di `True`, devono essere mostrati anche i risultati.
## Esempio
Chiamata della funzione:
```py
arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])
```
Output:
```py
32 3801 45 123
+ 698 - 2 + 43 + 49
----- ------ ---- -----
```
Chiamata della funzione:
```py
arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True)
```
Output:
```py
32 1 9999 523
+ 8 - 3801 + 9999 - 49
---- ------ ------ -----
40 -3800 19998 474
```
## Regole
La funzione restituirà la conversione corretta se i problemi dati sono correttamente formattati, altrimenti, deve **restituire** una **stringa** che descrive un errore significativo per l'utente.
- Situazioni che devono restituire un errore:
- Se ci sono **troppi problemi** dati alla funzione. Il limite è **cinque**, più di ciò deve restiture: `Error: Too many problems.`
- Gli operatori appropriati che la funzione accetterà sono **addizione** e **sottrazione**. Moltiplicazione e divisione devono dare un errore. Altri operatori non menzionati in questa lista non serve che vengano testati. L'errore restituito deve essere: `Error: Operator must be '+' or '-'.`
- Ogni numero (operando) deve contenere solo cifre. Altrimenti, la funzione deve restituire: `Error: Numbers must only contain digits.`
- Ogni operando (numero da ogni lato dell'operatore) ha una lunghezza di massimo 4 cirre. Altrimenti, la funzione deve restituire: `Error: Numbers cannot be more than four digits.`
- Se l'utente ha dato i problemi nel formato corretto, la conversione che restituisci deve seguire le seguenti regole:
- Ci deve essere un singolo spazio tra l'operatore e il più lungo dei due operandi, l'operatore deve essere sulla stessa riga del secondo operando, entrambi gli operandi devono essere nell'ordine dato (il primo in alto, il secondo in basso.
- I numeri devono essere allineati a destra.
- Devono esserci quattro spazi tra ogni problema.
- Ci devono essere dei trattini sotto ogni problema. I trattini devono avere la stessa larghezza del singolo problema. (L'esempio sopra mostra come deve apparire.)
## Sviluppo
Scrivi il tuo codice in `arithmetic_arranger.py`. Per lo sviluppo, puoi usare `main.py` per testare la tua funzione `arithmetic_arranger()`. Usa il bottone "run" e `main.py` eseguirà.
## Testare
I test unitari per questo progetto sono in `test_module.py`. Stiamo eseguendo i test da `test_module.py` in `main.py` per la tua convenienza. I test eseguiranno automaticamente quando usi il bottone "run". In alternativa puoi eseguire i test eseguendo `pytest` nella console.
## Consegnare
Copia l'URL del tuo progetto e consegnalo nell'input wua sotto.
# --hints-- # --hints--

View File

@ -8,22 +8,86 @@ dashedName: budget-app
# --description-- # --description--
Crea una classe "Category" che possa essere utilizzata per creare diverse categorie di budget. Lavorerari a [questo progetto con il nostro codice d'inizio su Replit](https://replit.com/github/freeCodeCamp/boilerplate-budget-app).
Puoi accedere [alla descrizione completa del progetto e al codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-budget-app).
Dopo essere andato a quel collegamento, fai un fork del progetto. Una volta completato il progetto in base alle istruzioni riportate in 'README.md', invia il link del progetto qui sotto.
Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto: Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto:
<ul> - [Video corso Python for Everybody](https://www.freecodecamp.org/news/python-for-everybody/) (14 ore)
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Video corso Python for Everybody</a> (14 ore) - [Video corso Learn Python](https://www.freecodecamp.org/news/learn-python-video-course/) (10 ore)
</li>
<li> # --instructions--
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Video corso Learn Python</a> (2 ore)
</li> Completa la classe `Category` in `budget.py`. Dovrebbe essere in grado di instanziare oggetti basati su diverse categorie di budget, come *food*, *clothing*, e *entertainment*. Quando gli oggetti sono creati, ricevono come argomento il nome della categoria. La classe dovrebbe avere una classe di istanza chiamata `ledger` che è una lista. La classe dovrebbe anche contenere i seguenti metodi:
</ul>
- Un metodo di deposito `deposit` che accetta un valore e una descrizione. Se non è data alcuna descrizione, dovrebbe essere una stringa vuota come default. Il metodo dovrebbe aggiungere un oggetto alla lista ledger nella forma di `{"amount": valore, "description": descrizione}`.
- Un metodo di prelievo `withdraw` che è simile al metodo `deposit`, ma il valore dato come argomento dovrebbe essere salvato in ledger come un valore negativo. Se non ci sono abbastanza fondi, nulla dovrebbe essere aggiunto al ledger. Il metodo dovrebbe restituire `True` se il prelievo ha avuto atto, e `False` altrimenti.
- Un metodo per ottenere la giacenza attuale `get_balance` che restituisce l'ammontare nella categoria del budget basato su depositi e prelievi che hanno avuto luogo.
- Un metodo di trasferimento `transfer` che accetta un ammontare e un'altra categoria come argomenti. Il metodo dovrebbe aggungere un prelievo con l'ammontare e la descrizione "Transfer to [Categoria del budget di destinazione]". Il metodo dovrebbe aggiungere un deposito all'altra categoria del budget con l'ammontare e la descrizione "Transfer from [Categoria del Budget di origine]". Se non ci sono abbastanza fondi, nulla dovrebbe essere aggiunto a nessuno dei due ledger. Questo metodo dovrebbe restituire `True` se il trasferimento ha avuto luogo, e `False` altrimenti.
- Un metodo `check_funds` che accetta un ammontare come argomento. Restituisce `False` se l'ammontare è più grande del saldo della categoria del budget e `True` altrimenti. Questo metodo dovrebbe essere usato sia dal metodo `withdraw` che dal metodo `transfer`.
Quando l'oggetto budget è stampato dovrebbe mostrare:
- Una riga di titolo di 30 caratteri dove il nome della cateria è centrato in una riga di caratteri `*`.
- Una lista delle transazioni nel ledger. Ogni linea dovrebbe mostrare la descrizione e l'ammontare. I primi 23 caratteri della descrizione dovrebbero essere mostrati, poi l'ammontare. L'ammontare dovrebbe essere allineato a destra, avere due cifre decimali, e mostrare un massimo di 7 caratteri.
- Una riga che mostra il totale della categoria.
Ecco un esempio dell'output:
```bash
*************Food*************
initial deposit 1000.00
groceries -10.15
restaurant and more foo -15.89
Transfer to Clothing -50.00
Total: 923.96
```
Oltre la classe `Category`, crea una funzione, al di fuori della classe, chiamata `create_spend_chart` che prende una lista di categorie come argomento. Dovrebbe restituire una stringa che è un grafico a barre.
Il grafico dovrebbe mostrare la percentuale spesa in ogni categoria passata alla funzione. La percentuale spesa dovrebbe essere calcolata solo con i prelievi e non i depositi. Lungo il lato sinistro del grafico dovrebbero esserci etichette 0 - 100. Le barre nel grafico dovrebbero essere fatte di caratteri "o". L'altezza di ogni barra dovrebbe essere arrotondata per difetto alla decina più vicina. La linea orizzontale sotto le barre dovrebbe finire due caratteri dopo l'ultima barra. Ogni nome di categoria dovrebbe essere scritto verticalmente sotto la barra. Dovrebbe esserci un titolo in cima che dice "Percentage spent by category".
Questa funzione sarà testata con al massimo quattro categorie.
Guarda all'esempio di output qui sotto con attenzione e assicurati che gli spazi dell'output combacino esattamente con l'esempio.
```bash
Percentage spent by category
100|
90|
80|
70|
60| o
50| o
40| o
30| o
20| o o
10| o o o
0| o o o
----------
F C A
o l u
o o t
d t o
h
i
n
g
```
I test unitari per questo progetto sono in `test_module.py`.
## Sviluppo
Scrivi il tuo codice in `budget.py`. Per lo sviluppo, puoi usare `main.py` per testare la tua funzione `Category`. Usa il bottone "run" e `main.py` eseguirà.
## Testare
Abbiamo impotato i test da `test_module.py` in `main.py` per la tua convenienza. I test eseguiranno automaticamente quando usi il bottone "run".
## Consegnare
Copia l'URL del tuo progetto e consegnalo nell'input wua sotto.
# --hints-- # --hints--

View File

@ -8,22 +8,96 @@ dashedName: polygon-area-calculator
# --description-- # --description--
In questo progetto utilizzerai la programmazione orientata agli oggetti per creare una classe Rettangolo (Rectangle) e una classe Quadrato (Square). La classe Square dovrebbe essere una sottoclasse di Rectangle ed ereditare metodi ed attributi. Lavorerari a [questo progetto con il nostro codice d'inizio su Replit](https://replit.com/github/freeCodeCamp/boilerplate-polygon-area-calculator).
Puoi accedere [alla descrizione completa del progetto e al codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-polygon-area-calculator).
Dopo essere andato a quel collegamento, fai un fork del progetto. Una volta completato il progetto in base alle istruzioni riportate in 'README.md', invia il link del progetto qui sotto.
Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto: Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto:
<ul> - [Video corso Python for Everybody](https://www.freecodecamp.org/news/python-for-everybody/) (14 ore)
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Video corso Python for Everybody</a> (14 ore) - [Video corso Learn Python](https://www.freecodecamp.org/news/learn-python-video-course/) (10 ore)
</li>
<li> # --instructions--
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Video corso Learn Python</a> (2 ore)
</li> In questo progetto utilizzerai la programmazione orientata agli oggetti per creare una classe Rettangolo (Rectangle) e una classe Quadrato (Square). La classe Square dovrebbe essere una sottoclasse di Rectangle ed ereditare metodi ed attributi.
</ul>
## Classe Rectangle
Quando viene creato un oggetto Rectangle, dovrebbe essere inizializzato con attributi `width` (larghezza) e `height` (altezza). La classe dovrebbe anche contenere i seguenti metodi:
- `set_width`
- `set_height`
- `get_area`: Restituisce l'area (`width * height`)
- `get_perimeter`: Restituisce il perimetro (`2 * width + 2 * height`)
- `get_diagonal`: Restituisce la diagonale (`(width ** 2 + height ** 2) ** .5`)
- `get_picture`: Restituisce una stringa che rappresenta la forma usando linee di "\*". Il numero di righe dovrebbe essere uguale all'altezza e il numero di "\*" in ogni riga dovrebbe essere uguale alla larghezza. Ci dovrebbe essere un carattere di nuova linea (`\n`) alla fine di ogni riga. Se la larghezza o l'altezza è maggiore di 50, questo dovrebbe restituire la stringa: `"Too big for picture."`.
- `get_amount_inside`: Prende un'altra forma (quadrato o rettangolo) come argomento. Restituisce il numero di volte che la forma passata potrebbe adattarsi all'interno della forma (senza rotazioni). Per esempio, un rettangolo con una larghezza di 4 e un'altezza di 8 potrebbe contenere due quadrati con lati di 4.
Inoltre, se un'istanza di Rectangle è rappresentata come una stringa, dovrebbe apparire come: `Rectangle(width=5, height=10)`
## Classe Square
La classe Square dovrebbe essere una sottoclasse di Rectangle. Quando viene creato un oggetto Square, viene passata la lunghezza di un singolo lato. Il metodo `__init__` dovrebbe memorizzare la lunghezza del lato sia nell'attributo `width` che in `height` della classe Rectangle.
La classe Square dovrebbe essere in grado di accedere ai metodi della classe Rectangle, ma dovrebbe anche contenere un metodo `set_side`. Se un'istanza di un quadrato è rappresentata come una stringa, dovrebbe apparire come `Square(side=9)`
Inoltre, i metodi `set_width` e `set_height` della classe Square dovrebbero impostare sia la larghezza che l'altezza.
## Esempio di utilizzo
```py
rect = shape_calculator.Rectangle(10, 5)
print(rect.get_area())
rect.set_height(3)
print(rect.get_perimeter())
print(rect)
print(rect.get_picture())
sq = shape_calculator.Square(9)
print(sq.get_area())
sq.set_side(4)
print(sq.get_diagonal())
print(sq)
print(sq.get_picture())
rect.set_height(8)
rect.set_width(16)
print(rect.get_amount_inside(sq))
```
Tale codice deve restituire:
```bash
50
26
Rectangle(width=10, height=3)
**********
**********
**********
81
5.656854249492381
Square(side=4)
****
****
****
****
8
```
I test unitari per questo progetto sono in `test_module.py`.
## Sviluppo
Scrivi il tuo codice in `shape_calculator.py`. Per lo sviluppo, puoi usare `main.py` per testare la tua funzione `shape_calculator()`. Usa il bottone "run" e `main.py` eseguirà.
## Test
Abbiamo importato i test da `test_module.py` in `main.py` per la tua convenienza. I test eseguiranno automaticamente quando usi il bottone "run".
## Invio
Copia l'URL del tuo progetto e consegnalo nell'input qua sotto.
# --hints-- # --hints--

View File

@ -8,20 +8,70 @@ dashedName: probability-calculator
# --description-- # --description--
Scrivi un programma per determinare la probabilità approssimativa di estrarre certe palle in modo casuale da un cappello. Lavorerari a [questo progetto con il nostro codice d'inizio su Replit](https://replit.com/github/freeCodeCamp/boilerplate-probability-calculator).
Puoi accedere [alla descrizione completa del progetto e al codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-probability-calculator). Dopo essere andato a quel collegamento, fai un fork del progetto. Una volta completato il progetto in base alle istruzioni riportate in 'README.md', invia il link del progetto qui sotto.
Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto: Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto:
<ul> - [Video corso Python for Everybody](https://www.freecodecamp.org/news/python-for-everybody/) (14 ore)
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Video corso Python for Everybody</a> (14 ore) - [Video corso Learn Python](https://www.freecodecamp.org/news/learn-python-video-course/) (10 ore)
</li>
<li> # --instructions--
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Video corso Learn Python</a> (2 ore)
</li> Supponiamo che ci sia un cappello contenente 5 palline blu, 4 palline rosse e 2 palline verdi. Qual è la probabilità che una pescata casuale di 4 palline contenga almeno 1 pallina rossa e 2 palline verdi? Mentre sarebbe possibile calcolare la probabilità utilizzando la matematica avanzata, un modo più facile è quello di scrivere un programma per eseguire un gran numero di esperimenti per stimare una probabilità approssimativa.
</ul>
Per questo progetto, scriverai un programma per determinare la probabilità approssimativa di pescare a caso determinate palline da un cappello.
Per prima cosa, crea una classe `Hat` (cappello) in `prob_calculator.py`. La classe deve prendere un numero variabile di argomenti che specificano il numero di palline di ogni colore che sono nel cappello. Ad esempio, un oggetto di classe potrebbe essere creato in uno qualsiasi di questi modi:
```py
hat1 = Hat(yellow=3, blue=2, green=6)
hat2 = Hat(red=5, orange=4)
hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9)
```
Un cappello sarà sempre creato con almeno una pallina. Gli argomenti passati all'oggetto cappello alla creazione dovrebbero essere convertiti in una variabile di istanza `contents`. `contents` dovrebbe essere una lista di stringhe contenente un elemento per ogni pallina nel cappello. Ogni elemento nella lista dovrebbe essere il nome del colore che rappresenti una singola sfera di quel colore. Ad esempio, se il tuo cappello è `{"red": 2, "blue": 1}`, `contents` dovrebbe essere `["red", "red", "blue"]`.
La classe `Hat` dovrebbe avere un metodo `draw` che accetta un argomento che indica il numero di palline da prelevare dal cappello. Questo metodo dovrebbe rimuovere palline a caso da `contents` e restituire quelle palline come un elenco di stringhe. Le palle non devono tornare nel cappello durante il pescaggio, simile all'esperimento con un'urna senza sostituzione. Se il numero di palline da pescare supera la quantità disponibile, restituisci tutte le palline.
Successivamente, crea una funzione `experiment` in `prob_calculator.py` (non all'interno della classe `Hat`). Questa funzione dovrebbe accettare i seguenti argomenti:
- `hat`: Un oggetto cappello contenente palline che dovrebbero essere copiate all'interno della funzione.
- `expected_balls`: Un oggetto che indica il gruppo esatto di palline che tentiamo di attingere dal cappello per l'esperimento. Ad esempio, per determinare la probabilità di pescare 2 palline blu e 1 pallina rossa dal cappello, imposta `expected_balls` a `{"blue":2, "red":1}`.
- `num_balls_drawn`: Il numero di palline da pescare dal cappello in ogni esperimento.
- `num_experiments`: Il numero di esperimenti da eseguire. (Più esperimenti eseguiti, più precisa sarà la probabilità approssimativa.)
La funzione `experiment` dovrebbe restituire una probabilità.
Ad esempio, diciamo che si vuole determinare la probabilità di ottenere almeno 2 palline rosse e 1 pallina verde quando si pescano 5 palline da un cappello contenente 6 nere, 4 rosse e 3 verdi. Per farlo, eseguiamo `N` esperimenti, contiamo quante volte `M` riceviamo almeno 2 palline rosse e 1 pallina verde, e stimiamo la probabilità come `M/N`. Ogni esperimento consiste nell'iniziare con un cappello contenente le palline specificate, pascare un certo numero di palline, e controllare se abbiamo ottenuto le palline che stavamo tentando di pescare.
Ecco come verrebbe chiamata la funzione `experiment` basata sull'esempio sopra con 2000 esperimenti:
```py
hat = Hat(black=6, red=4, green=3)
probability = experiment(hat=hat,
expected_balls={"red":2,"green":1},
num_balls_drawn=5,
num_experiments=2000)
```
Poiché questo è basato su pescaggi casuali, la probabilità sarà leggermente diversa ogni volta che il codice viene eseguito.
*Suggerimento: Considera di utilizzare i moduli già importati nella parte superiore di `prob_calculator.py`. Non inizializzare il seme casuale entro `prob_calculator.py`.*
## Sviluppo
Scrivi il tuo codice in `prob_calculator.py`. Per lo sviluppo, puoi usare `main.py` per testare il tuo codice. Fare clic sul pulsante "Run" e `main.py` verrà eseguito.
Il codice iniziale include le istruzioni di `import` per i moduli `copy` e `random`. Considera di utilizzarli nel tuo progetto.
## Test
I test unitari per questo progetto sono in `test_module.py`. Abbiamo impotato i test da `test_module.py` in `main.py` per la tua convenienza. I test eseguiranno automaticamente quando usi il bottone "run".
## Invio
Copia l'URL del tuo progetto e consegnalo nell'input qua sotto.
# --hints-- # --hints--

View File

@ -8,20 +8,63 @@ dashedName: time-calculator
# --description-- # --description--
Scrivi una funzione denominata "add_time" che possa aggiungere una durata ad un orario di inizio e restituisca il risultato. Lavorerari a [questo progetto con il nostro codice d'inizio su Replit](https://replit.com/github/freeCodeCamp/boilerplate-time-calculator).
Puoi accedere [alla descrizione completa del progetto e al codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-time-calculator). Dopo essere andato a quel collegamento, fai un fork del progetto. Una volta completato il progetto in base alle istruzioni riportate in 'README.md', invia il link del progetto qui sotto.
Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto: Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto:
<ul> - [Video corso Python for Everybody](https://www.freecodecamp.org/news/python-for-everybody/) (14 ore)
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Video corso Python for Everybody</a> (14 ore) - [Video corso Learn Python](https://www.freecodecamp.org/news/learn-python-video-course/) (10 ore)
</li>
<li> # --instructions--
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Video corso Learn Python</a> (2 ore)
</li> Scrivi una funzione denominata `add_time` che richieda due parametri obbligatori e uno opzionale:
</ul>
- un'ora di inizio nel formato dell'orologio a 12 ore (che termina in AM o PM)
- una durata che indica il numero di ore e minuti
- (facoltativo) un giorno di inizio della settimana, senza differenziare tra maiuscole e minuscole
La funzione dovrebbe sommare la durata all'ora di inizio e restituire il risultato.
Se il risultato sarà il giorno successivo, dovrebbe mostrare `(next day)` dopo l'ora. Se il risultato sarà più di un giorno dopo, dovrebbe mostrare `(n days later)` dopo il tempo, dove "n" è il numero di giorni dopo.
Se alla funzione viene passato il parametro opzionale del giorno di inizio della settimana, l'output dovrebbe visualizzare il giorno della settimana del risultato. Il giorno della settimana in output dovrebbe comparire dopo l'ora e prima del numero di giorni successivi.
Di seguito sono riportati alcuni esempi di casi diversi che la funzione dovrebbe gestire. Presta molta attenzione alla spaziatura e punteggiatura dei risultati.
```py
add_time("3:00 PM", "3:10")
# Returns: 6:10 PM
add_time("11:30 AM", "2:32", "Monday")
# Returns: 2:02 PM, Monday
add_time("11:43 AM", "00:20")
# Returns: 12:03 PM
add_time("10:10 PM", "3:30")
# Returns: 1:40 AM (next day)
add_time("11:43 PM", "24:20", "tueSday")
# Returns: 12:03 AM, Thursday (2 days later)
add_time("6:30 PM", "205:12")
# Returns: 7:42 AM (9 days later)
```
Non importare nessuna libreria Python. Supponi che gli orari di inizio siano validi. I minuti nel tempo di durata saranno un numero intero inferiore a 60, ma l'ora può essere qualsiasi numero intero.
## Sviluppo
Scrivi il tuo codice in `time_calculator.py`. Per lo sviluppo, puoi usare `main.py` per testare la tua funzione `time_calculator()`. Usa il bottone "run" e `main.py` sarà eseguito.
## Test
I test unitari per questo progetto sono in `test_module.py`. Abbiamo importato i test da `test_module.py` in `main.py` per tua convenienza. I test saranno eseguiti automaticamente quando usi il bottone "run".
## Invio
Copia l'URL del tuo progetto e consegnalo nell'input qua sotto.
# --hints-- # --hints--

View File

@ -16,7 +16,7 @@ Lavorare su questo progetto ti porterà a scrivere il tuo codice utilizzando uno
- Usare [la nostra bozza di progetto su Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-messageboard) per completare il tuo progetto. - Usare [la nostra bozza di progetto su Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-messageboard) per completare il tuo progetto.
- Usare un costruttore di siti a tua scelta per completare il progetto. Assicurati di incorporare tutti i file del nostro repository GitHub. - Usare un costruttore di siti a tua scelta per completare il progetto. Assicurati di incorporare tutti i file del nostro repository GitHub.
Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo `Solution Link`. Facoltativamente, invia anche un link al codice sorgente dei tuoi progetti nel campo `GitHub Link`. Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo `Solution Link`. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo `GitHub Link`.
# --instructions-- # --instructions--

View File

@ -9,26 +9,78 @@ dashedName: port-scanner
# --description-- # --description--
Lavorerari a [questo progetto con il nostro codice d'inizio su Replit](https://replit.com/github/freeCodeCamp/boilerplate-port-scanner).
Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto:
- [Video corso Python for Everybody](https://www.freecodecamp.org/news/python-for-everybody/) (14 ore)
- [Video corso Learn Python](https://www.freecodecamp.org/news/learn-python-video-course/) (10 ore)
# --instructions--
Crea uno scanner di porte usando Python. Crea uno scanner di porte usando Python.
Puoi accedere [alla descrizione completa del progetto e al codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-port-scanner). Nel file `port_scanner.py` file, crea una funzione denominata `get_open_ports` che richiede un argomento `target` e un argomento `port_range`. `target` può essere un URL o un indirizzo IP. `port_range` è un elenco di due numeri che indicano il primo e l'ultimo numero dell'intervallo di porte da controllare.
Dopo essere andato a quel collegamento, fai un fork del progetto. Una volta completato il progetto in base alle istruzioni riportate in 'README.md', invia il link del progetto qui sotto. Ecco alcuni esempi di come può essere chiamata la funzione:
Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno alcune delle abilità Python richieste per questo progetto: ```py
get_open_ports("209.216.230.240", [440, 445])
get_open_ports("www.stackoverflow.com", [79, 82])
```
<ul> La funzione dovrebbe restituire un elenco di porte aperte nell'intervallo specificato.
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Video corso Python for Everybody</a> (14 ore) La funzione `get_open_ports` dovrebbe anche prendere un terzo argomento opzionale di `True` per indicare la modalità "Verbose". Se impostata a true, la funzione dovrebbe restituire una stringa descrittiva invece di una lista di porte.
</li>
<li> Ecco il formato della stringa che dovrebbe essere restituita in modalità verbose (il testo all'interno di `{}` indica le informazioni che dovrebbero apparire):
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Video corso Learn Python</a> (2 ore)
</li> ```bash
</ul> Open ports for {URL} ({IP address})
PORT SERVICE
{port} {service name}
{port} {service name}
```
Puoi usare il dizionario in `common_ports.py` per ottenere il nome del servizio corretto per ogni porta.
Ad esempio, se la funzione è chiamata così:
```py
port_scanner.get_open_ports("scanme.nmap.org", [20, 80], True)
```
Dovrebbe restituire quanto segue:
```bash
Open ports for scanme.nmap.org (45.33.32.156)
PORT SERVICE
22 ssh
80 http
```
Assicurati di includere una spaziatura adeguata e nuovi caratteri di riga.
Se l'URL passato alla funzione `get_open_ports` non è valido, la funzione dovrebbe restituire la stringa: "Error: Invalid hostname".
Se l'indirizzo IP passato alla funzione `get_open_ports` non è valido, la funzione dovrebbe restituire la stringa: "Error: Invalid IP address".
## Sviluppo
Scrivi il tuo codice in `port_scanner.py`. Per lo sviluppo, puoi usare `main.py` per testare il tuo codice. Fare clic sul pulsante "Run" e `main.py` verrà eseguito.
## Test
I test unitari per questo progetto sono in `test_module.py`. Abbiamo importato i test da `test_module.py` in `main.py` per tua comodità. I test saranno eseguiti automaticamente quando usi il bottone "run".
## Invio
Copia l'URL del tuo progetto e invialo a freeCodeCamp.
# --hints-- # --hints--
Dovrebbe superare tutti i test Python. Dovrebbe superare tutti i test di Python.
```js ```js

View File

@ -9,22 +9,51 @@ dashedName: sha-1-password-cracker
# --description-- # --description--
In questo progetto si impara l'importanza di una buona sicurezza creando un cracker di password per capire le password di cui è stato fatto l'hash utilizzando SHA-1. Lavorerari a [questo progetto con il nostro codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-SHA-1-password-cracker).
Puoi accedere [alla descrizione completa del progetto e al codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-SHA-1-password-cracker). Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto:
Dopo essere andato a quel collegamento, fai un fork del progetto. Una volta completato il progetto in base alle istruzioni riportate in 'README.md', invia il link del progetto qui sotto. - [Video corso Python for Everybody](https://www.freecodecamp.org/news/python-for-everybody/) (14 ore)
Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno alcune delle abilità Python richieste per questo progetto: - [Video corso Learn Python](https://www.freecodecamp.org/news/learn-python-video-course/) (10 ore)
<ul> # --instructions--
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Video corso Python for Everybody</a> (14 ore) Le password non devono mai essere memorizzate come semplice testo in chiaro. Esse dovrebbero essere memorizzate come hash, nel caso in cui la lista delle password fosse scoperta. Tuttavia, non tutti gli hash sono creati allo stesso modo.
</li>
<li> In questo progetto comprenderai l'importanza di avere una buona sicurezza, creando un cracker di password per ottenere le password di cui è stato fatto l'hash utilizzando SHA-1.
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Video corso Learn Python</a> (2 ore)
</li> Creare una funzione che riceve un hash SHA-1 di una password e restituisce la password se è una delle 10000 password più utilizzate. Se l'hash SHA-1 NON è di una password nel database, restituisce "PASSWORD NOT IN DATABASE".
</ul>
La funzione dovrebbe calcolare l'hash di ogni password da `top-10000-passwords.txt` e confrontarla con l'hash passato nella funzione.
La funzione dovrebbe prendere un secondo argomento opzionale chiamato `use_salts`. Se impostato a true, ogni stringa di salt dal file `known-salts.txt` dovrebbe essere aggiunto prima e dopo ogni password presa da `top-10000-passwords.txt` prima di fare l'hashing e prima di confrontarlo con l'hash passato alla funzione.
Ecco l'hash di alcune password con cui testare la funzione:
- `b305921a3723cd5d70a375cd21a61e60aabb84ec` dovrebbe restituire "sammy123"
- `c7ab388a5ebefbf4d550652f1eb4d833e5316e3e` dovrebbe restituire "abacab"
- `5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8` dovrebbe restituire "password"
Ecco l'hash di alcune password con cui testare la funzione con `use_salts` impostato a `True`:
- `53d8b3dc9d39f0184144674e310185e41a87ffd5` dovrebbe restituire "superman"
- `da5a4e8cf89539e66097acd2f8af128acae2f8ae` dovrebbe restituire "q1w2e3r4t5"
- `ea3f62d498e3b98557f9f9cd0d905028b3b019e1` dovrebbe restituire "bubbles1"
La libreria `hashlib` è stata importata per te. Considera di usarla nel tuo codice. [Scopri di più su "hashlib" qui.](https://docs.python.org/3/library/hashlib.html)
## Sviluppo
Scrivi il tuo codice in `password_cracker.py`. Per lo sviluppo, puoi usare `main.py` per testare il tuo codice. Usa il bottone "run" e `main.py` sarà eseguito.
## Test
I test unitari per questo progetto sono in `test_module.py`. Abbiamo importato i test da `test_module.py` in `main.py` per tua convenienza. I test saranno eseguiti automaticamente quando usi il bottone "run".
## Invio
Copia l'URL del tuo progetto e consegnalo nell'input qua sotto.
# --hints-- # --hints--

View File

@ -18,7 +18,7 @@ Lavorare su questo progetto ti porterà a scrivere il tuo codice utilizzando uno
- Usare [la nostra bozza di progetto su Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-stockchecker) per completare il tuo progetto. - Usare [la nostra bozza di progetto su Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-stockchecker) per completare il tuo progetto.
- Usare un costruttore di siti di tua scelta per completare il progetto. Assicurati di incorporare tutti i file del nostro repository GitHub. - Usare un costruttore di siti di tua scelta per completare il progetto. Assicurati di incorporare tutti i file del nostro repository GitHub.
Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo `Solution Link`. Facoltativamente, invia anche un link al codice sorgente dei tuoi progetti nel campo `GitHub Link`. Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo `Solution Link`. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo `GitHub Link`.
# --instructions-- # --instructions--