Python: esercizi sulle stringhe

Cerca nel sito

Altri risultati..

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Cerca nelle Categorie

bioinformatica

Ripasso:

Le stringhe

Le stringhe possono essere definite con ‘ o “ (in maniera del tutto indifferente)

L’uso di ‘ come carattere nella stringa può essere recuperato usando ” oppure \

Possiamo definire stringhe su più linee usando “”” “””

Il carattere \n indica il return

Esistono altri escape characters come \t per TAB o \\ per BACKSLASH

ESEMPI

'atggt'
"atggt"

'questa non e' una stringa valida'
"questa invece lo e' "
'anche questa e\'una stringa valida'

Stampare Stringhe

Pubblicità

La funzione print()

print() stampa le stringhe con un formato user friendly.
Si possono usare degli operatori (formatting operator) per stampare in maniera piu’ semplice e strutturata:

Operatori per le stringhe

manipolare stringhe

  • s1 + s2 concatena stringhe s1 ed s2
  • s1 ∗ v ripete s1 v volte
  • s1 in s2 appartenenza (vero se s1 è una sottostringa di s2)
  • s1 not in s2 non appartenenza (vero se s1 non è una sottostringa di s2).

print('atggt'+ "atggt")
print('atggt'*3)


s1 =('atggt'+ "atggt")

s2 ='gg'
print(s2 in s1)

Output:

True


s1 =('atggt'+ "atggt")

s2 ='gg'
print(s2 not in s1)

Output:

False


Altri operatori per stringhe

str[i] indicizzazione: ritorna il carattere nella posizione i (partendo da 0)
str[i:j] slicing: ritorna la sottostringa di str che parte da i (incluso) ed arriva a j (escluso)

Esercizio 1:

  1. creare una stringa che contenga 5 volte la sottostringa ‘atg’ e 2 volte la sottostringa ‘cga’;
  2. concatenare 4 stringhe a scelta in una nuova stringa, stampare la lunghezza della stringa risultante.

Soluzione

1)

my_str = 5*'atg'+2*'cga'
print(my_str)

Output:
atgatgatgatgatgcgacga

2)
s1 = 'ciao '
s2 = 'come '
s3 = 'stai '
s4 = '?'
s = s1+s2+s3+s4
print(s)
print(len(s))

Output:
ciao come stai ?
16

Ti potrebbe interessare anche:  Metodo di Newton-Raphson con Python: Teoria, Implementazione per la Ricerca di Radici

Esercizi su variabili e stringhe

Esercizio 2:

  1. data una stringa contenente i 4 caratteri a,t,c,g, calcolare e stampare la percentuale di caratteri ‘a’ e ‘t’ presenti nella stringa 
  2. creare una stringa che contenga esattamente il 25% di caratteri at
  3. date due stringhe s1 ed s2 qualsiasi, stampare True se s1 e’ una sottostringa di s2 e false altrimenti.

Soluzione

1)

dna = 4*'at'+10*'cg'
atperc = (dna.count('a')+dna.count('t'))/len(dna)
print(atperc)

Output:

0.2857142857142857

2)

dna = 25*'a'+75*'c'
print(dna)

Output:

aaaaaaaaaaaaaaaaaaaaaaaaaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

3)

s1 = 'sotto'
s2 = 'sottostringa'
s3 = 'altra stringa'
print(s1 in s2)
print(s1 in s3)

Output:

True
False

Esercizio 3:

Date due stringhe s1 ed s2 qualsiasi, stampa le due stringhe e poi True se s1 e’ una sottostringa di s2 e false altrimenti.

Soluzione

s1 = '1001'
print(s1)
s1_tmp = s1.replace('0','C')
s1_tmp = s1_tmp.replace('1','0')
s1_rev = s1_tmp.replace('C','1')
print(s1_rev)

Output:

1001
0110

Esercizio 4:

Chiedere all’utente una stringa di dna ( una stringa contenente solo i caratteri atcg) e stampare la posizione della seconda occorrenza del carattere ‘a’ .

Soluzione

dna = input("inserisci una stringa di dna:\n")
first = dna.find('a')

index = dna[first+1:].find('a')
index = (index+1) + (first + 1)

print("la posizione della seconda occorrenza del carattere 'a' e' %d" % index

Output:

inserisci una stringa di dna:
gaggggtggg

l’indice della seconda occorrenza del carattere ‘a’ e’ 2


Convertire un tipo in un altro

la funzione input(...) ritorna sempre una stringa
possiamo usare la funzione int(...) per convertire una stringa in un numero

funzioni per convertire i tipi

int(x), trasforma la stringa in x in un numero in base 10
int(x,base), trasforma la stringa x in un numero in base base
float(x), trasforma la stringa x in un numero decimale

Esercizio 5:

Chiedere all’utente una stringa di dna e stampare l’ultima occorrenza della sottosequenza ‘atg’.

Ti potrebbe interessare anche:  Modellare le Vendite con una Funzione Sinusoidale: Previsioni Stagionali e Impatto di Promozioni ed Eventi

Soluzione

dna = input("inserisci una stringa di dna:\n")
last = dna.rfind('atg')
print("l'indice della seconda occorrenza della sottosequenza 'atg' e' %d" % last)

Output:

inserisci una stringa di dna:
gatggggtatgtgggatg
l’indice della seconda occorrenza della sottosequenza ‘atg’ e’ 15

Esercizio 6:

Data una stringa composta dai caratteri 1 e 0 stampare il numero di occorrenze del carattere 1 ed il numero di occorrenze del carattere 0 usando una sola chiamata alla funzione print().

Soluzione

my_str = input("inserisci una stringa formata da 0 e 1:\n")
occ_0 = my_str.count('0')
occ_1 = my_str.count('1')
print("la stringa %s contiene %d occorrenze del carattere '0' e %d occorrenze del carattere '1'" % (my_str,occ_0,occ_1))

Output:

inserisci una stringa formata da 0 e 1:
001101010000111111
la stringa 001101010000111111 contiene 8 occorrenze del carattere ‘0’ e 10 occorrenze del carattere ‘1’

[elementor-template id=”12586″]

[no_toc]

(2537)

PubblicitàPubblicità