Forum
>>
Principianti
>>
[risolto] Valore di variabile globale non riconosciuto dalle funzioni
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Idle |
2018-12-26 12:58:24 - [risolto] Valore di variabile globale non riconosciuto dalle funzioni
|
Buongiorno e buone feste.
Sono iscritto da un po' al Forum e di solito mi limito a leggervi, ma ora vorrei chiedervi aiuto per risolvere un problema di cui non riesco a venire a capo, malgrado ore di tentativi. Per testare le conoscenze di Python durante lo studio, scrivo dei piccoli programmi. Uno in particolare dovrebbe analizzare i testi, usando anche le regex. Dato un file con testo: Uno. Due. Tre. Quattro. il programma dovrebbe aprirlo e restituire il numero di righe, di capoversi e di periodi. Il codice è il seguente: import re
def Avvio():
global Testo
Testo = open('Testo.txt', 'r')
def Righe():
global Righe
global RigheTotale
Righe = []
for n in Testo.read().splitlines():
Righe.append(n)
RigheTotale = len(Righe)
def Capoversi():
global CapoversiTotale
CapoversiTotale = Righe.count('')
def Periodi():
global PeriodiTotale
Testo2 = str(Testo.readlines())
Periodi1 = re.findall(r'[.\$]', Testo2)
PeriodiTotale = len(Periodi1)
Avvio()
Righe()
Capoversi()
Periodi()
print('RIGHE: ', RigheTotale)
print('CAPOVERSI: ', CapoversiTotale)
print('PERIODI: ', PeriodiTotale)
Righe e Capoversi li conta correttamente (3 e 1), ma per i Periodi restituisce 0. Se invece antepongo la funzione Periodi() a Righe() e Capoversi(), conta correttamente i 4 Periodi, ma restituisce 0 per Righe e Capoversi. È come se la chiamata di una funzione relativa alla variabile globale Testo ne modificasse il contenuto, che diventa nullo per le funzioni successive. Dove sbaglio? Grazie a chi vorrà aiutarmi. --- Ultima modifica di Eric Idle in data 2018-12-26 12:59:42 --- --- Ultima modifica di Eric Idle in data 2018-12-26 13:00:00 --- --- Ultima modifica di Eric Idle in data 2018-12-26 13:02:32 --- --- Ultima modifica di Idle in data 2018-12-26 17:52:20 --- |
|
Scritto da ㎝ |
2018-12-26 15:22:10 - Re: Valore di variabile globale non riconosciuto dalle funzioni
|
prova con un
Testo.seek(0)prima di leggere il file la seconda volta. THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝ |
|
Scritto da Idle |
2018-12-26 17:51:02 - Re: Valore di variabile globale non riconosciuto dalle funzioni
|
Ti ringrazio del suggerimento: funziona.
Quello che non capisco è perché questo problema si è presentato solo in relazione a una regex, ma non con altri metodi di lettura e analisi del file. Cercherò di venirne a capo partendo dalla soluzione. Ciao. --- Ultima modifica di Idle in data 2018-12-26 17:51:18 --- |
Pagina: 1
Esegui il login per scrivere una risposta.