Randint Python – In questa lezione svilupperemo altri semplici algoritmi in Python sulle liste, utilizzando anche la funzione randint per generare dei numeri random.

Randint Python – primo esercizio

Inserire n numeri interi random tra 230 e 280. Dopo l’inserimento visualizzare gli elementi della lista.
Poi trovare quante volte ricorre il numero 250 e sostituire tutti i valori multipli di 10 con il valore 250. Infine visualizzare nuovamente gli elementi della lista.

Per sviluppare questo esempio utilizzo la funzione randint di Python importando l’apposito modulo random in questo modo:

from random import randint

Questo consente di poter successivamente utilizzare la funzione in questo modo:

randint(230,280)

Quindi, dopo aver popolato la lista con dei numeri random tra 230 e 280, con un altro ciclo for, visualizzo gli elementi inseriti uno di seguito all’altro.

Poi faccio un controllo e sostituisco ad ogni elemento multiplo di 10 il valore 250. Infine visualizzo nuovamente gli elementi della lista.

Banner Pubblicitario

Ecco dunque una possibile soluzione all’algoritmo che utilizza la funzione randint in Python.


from random import randint

n=20
casuali=[]
c=0

for i in range(n):
    numero=randint(230,280)
    casuali.append(numero)

for i in range(n):
    print(casuali[i],end=' , ')

print()
print('Lista modificata')
for i in range(n):
    if casuali[i]%10==0:
        casuali[i]=250

for i in range(n):
    print(casuali[i],end=' , ')

Secondo esercizio

Inserire n numeri interi random tra 200 e 500. Dopo l’inserimento visualizzare tutti gli elementi della lista. Poi dividere ciascun numero per 2. Infine con un altro ciclo stampare solo i numeri la cui somma delle cifre è 8.

Utilizziamo sempre il modulo random e la funzione randint di Python per generare i numeri casuali tra 200 e 500.

Dunque innanzitutto popoliamo la lista casuali con gli n numeri e dopo visualizziamo gli elementi della lista utilizzando un altro ciclo for.

Poi modifichiamo la lista dividendo ciascun elemento per 2.

Infine dobbiamo trovare, per ciascun numero, la somma delle sue cifre. Per fare ciò dobbiamo copiare ciascun elemento in una variabile temporanea e dopo estrapolare le cifre.

Poi consideriamo il resto della divisione del numero diviso 10 per ottenere la prima cifra.

Banner pubblicitario

Ad esempio se il numero è 255 allora:

255%10 il resto è 5

Poi divido il numero rimanente per 10 e considero nuovamente il resto, cioè

25%10 il resto è 5

e così via fino a quando ci sono cifre disponibili, ovvero finché temp>0.

2%10 il resto è 2

abbiamo terminato le cifre quindi ci fermiamo e confrontiamo se la somma è uguale ad 8.

Ecco dunque una possibile soluzione che utilizza la funzione randint in Python:


from random import randint

n = int(input('Quanti numeri? '))
casuali = []

for i in range(n):
    numero = randint(200,500)
    casuali.append(numero)

for i in range(n):
    print(casuali[i], end = ' ')

print()
print('Lista modificata')
for i in range(n):
    casuali[i] //= 2

for i in range(n):
    print(casuali[i], end = '  ')


print()
print('I numeri la cui somma delle cifre è uguale a 8 sono:')
for i in range(n):
    s = 0
    temp = casuali[i]
    while temp>0:
        u = temp%10
        temp //= 10
        s += u
    if s == 8:
        print(casuali[i], end = ' ')

Prova nell’editor:

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili