jilles
Profilo di
Nome | jilles |
---|---|
Indirizzo email | n/a |
Messaggi | 6 |
-
- 2015-09-21 14:26:34
- Resettare Input
- Forum >> Principianti
- Ciao a tutti!
Domanda:
Come faccio a resettare gli input?
Nel caso specifico sotto "operatore1", "operatore2" e "calcolo" vengono definiti all' inizio del programma ma dopo che viene eseguito il calcolo in teoria dovrebbe essere possibile eseguirne un altro con "input" diversi, ho provato vari loop e modi ma proprio non so come fare...
HELP!
<def myscript():
import sys
while True:
if operatore1 and calcolo and operatore2 != None:
break
operatore1 = input('inserire operatore 1: ')
calcolo = raw_input("inserire l' operatore (+, *, /, -): ")
operatore2 = input('inserire operatore 2: ')
def addiz():
print "risultato:"
print operatore1 + operatore2
dig = raw_input('uscire y/n? ')
if dig == 'n':
myscript()
else:
if dig == 'y':
sys.exit()
def multip():
print "risultato:"
print operatore1 * operatore2
dig = raw_input('uscire y/n? ')
if dig == 'n':
myscript()
else:
if dig == 'y':
sys.exit()
def divis():
print "risultato:"
print operatore1 / operatore2
dig = raw_input('uscire y/n? ')
if dig == 'n':
myscript()
else:
if dig == 'y':
sys.exit()
def sottraz():
print "risultato:"
print operatore1 - operatore2
dig = raw_input('uscire y/n? ')
if dig == 'n':
myscript()
else:
if dig == 'y':
sys.exit()
if calcolo == '+':
addiz()
elif calcolo == '*':
multip()
elif calcolo == '/':
divis()
else:
if calcolo == '-':
sottraz()
myscript()>
-
- 2015-08-25 13:30:48
- Modulo EBCDIC per python
- Forum >> Principianti
- Ciao a tutti
Mi sono trovato a dover fare manutenzione ad una sezione di codice che "cripta" le password e poi le spedisce via mail.
A tutti gli effetti converte ( o dovrebbe convertire ) un testo stringa da ascii in esadecimale ed infine da esadecimale ad EBCDIC ( cp500 o cp1144 ), il mio problema è che l' output di conversione risulta in kanji giapponesi o coreani o chi per esso....
qualcuno ha avuto gli stessi problemi?
sbaglio qualcosa?
<>import ebcdic
import time
#----------------------------------------------------------------------------------------------------------------#
#nazionalità ebcdic:
#•cp1140 - Australia, Brazil, Canada, New Zealand, Portugal, South Africa, USA
#•cp1141 - Austria, Germany, Switzerland
#•cp1142 - Denmark, Norway
#•cp1143 - Finland, Sweden
#•cp1144 - Italy
#•cp1145 - Latin America, Spain
#•cp1146 - Great Britain, Ireland, North Ireland
#•cp1147 - France
#•cp1148 - international
#•cp1149 - Iceland
#legacy code:
#•cp037 - Australia, Brazil, Canada, New Zealand, Portugal, South Africa; similar to cp1140 but without Euro sign
#•cp273 - Austria, Germany, Switzerland; similar to cp1141 but without Euro sign
#•cp277 - Denmark, Norway; similar to cp1142 but without Euro sign
#•cp278 - Finland, Sweden; similar to cp1143 but without Euro sign
#•cp280 - Italy; similar to cp1141 but without Euro sign
#•cp284 - Latin America, Spain; similar to cp1145 but without Euro sign
#•cp285 - Great Britain, Ireland, North Ireland; similar to cp1146 but without Euro sign
#•cp297 - France; similar to cp1147 but without Euro sign
#•cp500 - international; similar to cp1140 but without Euro sign
#•cp871 - Iceland; similar to cp1149 but without Euro sign
#•cp1047 - Open Systems (MVS C compiler)
#----------------------------------------------------------------------------------------------------------------#
digit = raw_input("Inserire il testo da codificare: ")
stringa = str(digit)
output = stringa.encode('hex') #conversione esadecimale#
output2 = output.encode('cp500')
#codifica testuale ebcdic
print "----- INIZIO TEST MODULO -----"
print " "
print dir(ebcdic)
print " "
print "----- FINE TEST MODULO -----"
print " "
print "----- INIZIO CODIFICA-----"
print " "
print time.ctime()
print " "
print digit
print " "
if digit!= None:
print output
print output2
-
- 2015-08-04 10:52:16
- Re: print valori sbagliati
- Forum >> Principianti
- Ora la formattazione della stringa è corretta però mi da questo errore:
TypeError: 'dict' object is not callable
if digit != None:
digit = list(digit)
digit2 = str(digit).strip(' []' )
print "test string: " + digit2
print alfanum(digit2)
con l' istruzione for invece:
for digit2 in alfanum:
print digit2
Viene fuori una lista senza senso....
-
- 2015-08-04 09:43:37
- Re: print valori sbagliati
- Forum >> Principianti
- Corretto l' EBCDIC, e corretto anche il "poi lo diventeranno"...
Giusto per farsi 2 risate, la software house che ha prodotto l' sw che sto provando a sistemare ha inserito l' encryption ebcdic ( dal latino ) ad-canis-cazzum e quindi serve un wrap che assegni i valori giusti per poi riconvertirli, e come penso sia palese sto diventando scemo a provarci...
La giustificazione dell' encryption "CUSTOM" è stata semplicemente:
-Perché dovremmo usare delle encryption standard poco sicure?
Fine premessa, ora provo a sistemare qua e la e ti faccio sapere, grazie ancora per la pazienza
-
- 2015-08-03 10:24:17
- Re: print valori sbagliati
- Forum >> Principianti
- Ciao!
Grazie per la risposta e per lo sforzo di comprensione
Ad ogni modo si, mi serviva capire che funzione usare per convertire la lista già formattata e spaziata a singole lettere o sillabe utilizzando l' apposito "dizionario" alfanum.
Questo programma è una parte di codice per convertire caratteri e numeri e decriptarli per un altro programma scritto in RPG free per as400...
quindi stavo provando a scriverlo in python ma mi è ancora ostica la sintassi anche se per molti versi simile.
-
- 2015-07-30 16:25:47
- print valori sbagliati
- Forum >> Principianti
- Ciao a tutti!
Premesso che ho iniziato con python 2.7 da 1 settimana ho questo problema:
digit = raw_input("testo: ")
alfanum = {a:'000000', b:'000001', c:'000010', d:'000100',\
e:'001000',\
f:'010000', g:'100000', h:'000011', i:'000110',\
j:'001100', k:'011000', l:'110000', m:'110100',\
n:'110010', o:'110001', p:'111000', q:'110100',\
r:'110010',\
s:'110001',t:'111100',u:'111010', v:'111001',\
w:'111110',\
x:'111101',y:'111111', z:'000002', 1:n1, 2:n2,\
3:n3, 4:n4, 5:n5, 6:n6, 7:n7, 8:n8, 9:n9, 0:n0}
n1 = '111111f'
n2 = '111110f'
n3 = '111101f'
n4 = '111011f'
n5 = '110111f'
n6 = '101111f'
n7 = '111100f'
n8 = '111001f'
n9 = '110011f'
n0 = '100111f'
if digit != None:
digit = list(digit)
print digit <---- ( con valori dell' insieme "alfanum")
Inoltre quando provo a "stampare" ( print ) un numero qualsiasi in modalità interprete mi riposta sempre lo stesso valore scritto e non il valore che vorrei...
HELP ME!
--- Ultima modifica di jilles in data 2015-07-30 16:50:23 ---