Forum >> Principianti >> esecuzione python in python

Pagina: 1

Buonasera a tutti,
un'informazione




Sto scrivendo un piccolo gestionale da shell che fa, attualmente, due cose. Chiede di inserire titolo ed autore di un libro, un cd ed un dvd e lo salva in append su un file di testo ed in contemporanea in un db di mySQL




Stranamente funziona, ma sta diventando prolisso




Volevo dividere la cosa, uno per la parte di scrittura su testo ed uno per mySQL. Ancora stranamente, singolarmente funzionano




A questo punto volevo scrivere un terzo script che, con un piccolo menù di scelta, permette di selezionare una modalità o un'altra




In pratica premi 1 per file txt o 2 per mySQL




ho usato un semplicissimo




import time
import libreria_txt.py
import libreria_mysql.py

def stampa_menu_totale():
print(30 * "-", "MENU", 30 * "-")
print(" 1. Salva su txt")
print(" 2. Salva in MySQL")
print(" Q. Exit")
print(66 * "-")


loop = True

while loop:
stampa_menu_totale()
print()
scelta = input("Inserire la scelta: ")

if scelta != "1" and scelta != "2" and scelta != "Q" and scelta != "q":
print("Scelta errata")
time.sleep(3)
stampa_menu()
elif scelta == 1:
os.system("libreria_txt.py")
elif scelta == 1:
os.system("libreria_mysql.py")
elif scelta == "Q" or scelta == "q":
print("Uscita dal programma")
time.sleep(3)
exit()
Il problema è che, nonostante non ci siano errori apparenti (uso pycharm) viene eseguito il programma e non quello che ho scritto

Ho pensato che fosse un problema di pycharm, che esegue solo uno script alla volta (o meglio, forse non so usarlo bene). Il problema però lo da anche da riga di comando, sia da CMD di Windows che da IDE di Python




Dove sbaglio?




Grazie



Scusate, ho sbagliato ad importare il codice



import time
import libreria_txt.py
import libreria_mysql.py

def stampa_menu_totale():
print(30 * "-", "MENU", 30 * "-")
print(" 1. Salva su txt")
print(" 2. Salva in MySQL")
print(" Q. Exit")
print(66 * "-")


loop = True

while loop:
	stampa_menu_totale()
	print()
	scelta = input("Inserire la scelta: ")

	if scelta != "1" and scelta != "2" and scelta != "3" and scelta != "Q" and scelta != "q":
	print("Scelta errata")
	time.sleep(3)
	stampa_menu()
	elif scelta == 1:
	os.system("libreria_txt.py")
	elif scelta == 1:
	os.system("libreria_mysql.py")
	elif scelta == "Q" or scelta == "q":
	print("Uscita dal programma")
	time.sleep(3)
	exit()

manca l'indentazione a gran parte del codice di sicuro un errore nell'incollaggio

io al posto tuo quel "stampa_menu_totale()" alla prima riga del while lo metterei

prima del ciclo e potresti anche togliere la variabile loop al suo posto inserire True

poi altra cosa la prima scelta "if" non serve così inseriscilo ultima opzione con "else"

senza specificare nulla e gli fai partire il print e di nuovo "stampa_menu_totale"

ps (da correggere credo) giusto? vedi se il risultato è quello che intendevi :ok:





--- Ultima modifica di pypy in data 2019-02-10 20:19:23 ---


Pagina: 1



Esegui il login per scrivere una risposta.