Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
Python - operatii
Last Updated: Mar 02 2017 18:18, Started by
pinguinul666
, Mar 01 2017 15:19
·
0
#1
Posted 01 March 2017 - 15:19
sal
in Linux, am scris un mic script de python, numit simplu calcul.py, rudimentar, ce calculeaza media aritmetica a doua numere pozitive introduse de user. scriptul verifica valorile introduse, ca ambele sa fie pozitive (mai mari ca zero) (altfel, da avertisment) intai, userul introduce cele 2 cifre. apoi, scriptul le transforma in floating points (nr reale, in caz ca suma nu e numar par) apoi, odata transformate, cele doua numere sunt adunate si impartite la 2, iar suma e aratata am proleme la final, unde vreau sa scriu pur si simplu, valoare1 + valoare 2, ambele impartite la 2 imi da eroarea si o citez aici: Quote traceback (most recent call last): File "calcul.py", line 16, in <module> print (valoare1 + valoare2)/2.0 TypeError: unsupported operand type(s) for /: 'NoneType' and 'float' Codul sursa al micului script: Quote #!/usr/bin/env python3 cifra1 = input ('Introdu prima cifra: '); cifra2 = input ('Introdu a doua cifra: '); valoare1 = float (cifra1); valoare2 = float (cifra2); if valoare1 <= 0.0 : print ('Doar numere pozitive, mai mari de 0 !') quit() if valoare2 <= 0.0 : print ('Doar numere POZITIVEE, mai mari de 0 !') quit() else: print (valoare1 + valoare2)/2.0 ce gresesc? si care e solutia? multumesc Later Edit: am "trisat" nitel - adica am mai definit o variabila numita "suma = valoare1 + valoare2", iar la sfarsit am simplu: print (suma/2) insa as dori, daca se poate, sa fac asta fara a mai defini o alta variabila pt suma valorilor introduse....sa adun direct valorile introduse Si inca ceva - as dori ca verificarea faptului ca sunt pozitive numerele, sa se intample dupa introducerea fiecaruia, nu dupa ce ambele au fost introduse! Adica asa cum faceam in C++, cand puteam verifica fiecare valoare individual. in C++, daca primul numar introdus era negativ, se oprea programul. Or aici remarc ca programul imi cere si a doua cifra, desi prima valoare e negativa (sau egala cu zero). Se poate asta ? Edited by pinguinul666, 01 March 2017 - 15:33. |
#2
Posted 01 March 2017 - 15:36
In Python3 "print" este o functie.
Deci o folosesti cam asa: print("salut") Tu pe ultima linie ai print (valoare1 + valoare2)deci iti afiseaza suma celor doua valori si returneaza un None (null), iar apoi imparte acest None la 2, ceea ce nu se poate face: print (valoare1 + valoare2) / 2.0fiind echivalent cu ( print (valoare1 + valoare2) ) / 2.0 Ia incearca pe ultima linie: print ( (valoare1 + valoare2) / 2.0 ) Edited by dd13, 01 March 2017 - 15:43. |
#3
Posted 01 March 2017 - 15:46
GATA!
si verificarea dupa fiecare cifra ! am rationalizat nitel si am schimbat ordinea operatiunilor - adica am pus operatiunea de verificare dupa introducerea primei cifre si abia apoi sa te lase sa o introduci si pe a doua! adica stil C++ Noul cod: Quote #!/usr/bin/env python3 cifra1 = input ('Introdu prima cifra: '); valoare1 = float (cifra1); if valoare1 <= 0.0 : print ('Doar numere pozitive, mai mari de 0 !') quit() else: cifra2 = input ('Introdu a doua cifra: '); valoare2 = float (cifra2); if valoare2 <= 0.0 : print ('Doar numere POZITIVEE, mai mari de 0 !') quit() suma = valoare1 + valoare2; print (suma / 2.0); dar problema initiala a ramas ....anume a adunarii valorilor valoare 1 si 2 si impartirea lor la 2, fara a apela la o variabila intermediara pt suma lor dd13, on 01 martie 2017 - 15:36, said:
In Python3 "print" este o functie. Deci o folosesti cam asa: print("salut") Tu pe ultima linie ai print (valoare1 + valoare2)deci iti afiseaza suma celor doua valori si returneaza un None (null), iar apoi imparte acest None la 2, ceea ce nu se poate face: print (valoare1 + valoare2) / 2.0fiind echivalent cu ( print (valoare1 + valoare2) ) / 2.0 Ia incearca pe ultima linie: print ( (valoare1 + valoare2) / 2.0 ) multe multumiri Edited by pinguinul666, 01 March 2017 - 15:40. |
#4
Posted 01 March 2017 - 16:12
Ai incercat:
print(str((valoare1 + valoare2)/2))? Edited by Konatau, 01 March 2017 - 16:12. |
#5
Posted 01 March 2017 - 16:18
In loc sa te complici cu 4 variabile incearca asa:
cifra1=float(input("Introdu valoarea A: )) cifra2=float(input("Introdu valoarea B: )) Verificarea numerelor: if cifra1 >= 0.0 and cifra2 >= 0.0: ''' calculezi si faci ce ai de facut ''' else: print("Valoarea X e mai mica ca 0. Valorile acceptate sunt cele mai mari sau egale cu 0.") break Vezi asa daca merge si pare mai frumos. Edited by MembruAnonim, 01 March 2017 - 16:19. |
#6
Posted 01 March 2017 - 16:28
pinguinul666, on 01 martie 2017 - 15:46, said: GATA! si verificarea dupa fiecare cifra ! am rationalizat nitel si am schimbat ordinea operatiunilor - adica am pus operatiunea de verificare dupa introducerea primei cifre si abia apoi sa te lase sa o introduci si pe a doua! adica stil C++ Noul cod: dar problema initiala a ramas ....anume a adunarii valorilor valoare 1 si 2 si impartirea lor la 2, fara a apela la o variabila intermediara pt suma lor multe multumiri #!/usr/bin/env python3 cifra1 = input ('Introdu prima cifra: '); valoare1 = float (cifra1); if valoare1 <= 0.0 : print ('Doar numere pozitive, mai mari de 0 !') quit() else: cifra2 = input ('Introdu a doua cifra: '); valoare2 = float (cifra2); if valoare2 <= 0.0 : print ('Doar numere POZITIVEE, mai mari de 0 !') quit() suma = valoare1 + valoare2; print (suma / 2.0); Daca am inteles eu gresit, scuze. Attached FilesEdited by poadol, 01 March 2017 - 16:24. |
#7
Posted 01 March 2017 - 20:54
suma = float(0); nrElem = 2; cifra = input ('Introdu prima cifra: '); if cifra > 0: suma += cifra; else: print("Integer Error"); quit(); cifra = input ('Introdu a doua cifra: '); if cifra > 0: suma += cifra; else: print("Integer Error"); quit(); print (suma / nrElem);observati cum se repeta codul Edited by MarianG, 01 March 2017 - 20:54. |
#8
Posted 02 March 2017 - 00:09
#9
Posted 02 March 2017 - 00:16
depinde de cum privesti problema,
ideea este ca: poate vrei sa citesti un numar arbitrar de valori nu ai sa copiezi cifra = input ('Introdu a doua cifra: '); if cifra > 0: suma += cifra; else: print("Integer Error"); quit();de X ori, ci doar trebuie sa il executi in mod repetat Edited by MarianG, 02 March 2017 - 00:17. |
#10
Posted 02 March 2017 - 01:18
Eu sunt mai incepator , nu am mai avut timp de citit
procentTVA=int(input('Tasteaza o valoare pentru TVA : ')); extragereTVA=(procentTVA+100)/100 cuTVA=float(input('Tasteaza pretul cu TVA: ')); faraTVA=float(cuTVA/extragereTVA) valoareTVA=cuTVA-faraTVA print('Pretul fara TVA este : ', format(faraTVA, '.2f')); print('Valoarea TVA este: ', format(valoareTVA, '.2f')); |
|
#11
Posted 02 March 2017 - 01:38
Atunci vezi despre try except
eu am vrut sa scot in evidenta cu totul altceva, metoda in sine o ai o singura data, iar cand corectezi (limite si exceptii) lucrezi intr-un sigur loc, |
#12
Posted 02 March 2017 - 08:56
MembruAnonim, on 01 martie 2017 - 16:18, said:
In loc sa te complici cu 4 variabile incearca asa: cifra1=float(input("Introdu valoarea A: )) cifra2=float(input("Introdu valoarea B: )) Verificarea numerelor: if cifra1 >= 0.0 and cifra2 >= 0.0: ''' calculezi si faci ce ai de facut ''' else: print("Valoarea X e mai mica ca 0. Valorile acceptate sunt cele mai mari sau egale cu 0.") break Vezi asa daca merge si pare mai frumos. multam fain! |
#13
Posted 02 March 2017 - 13:32
#!/usr/bin/python from sys import argv numbers = 0 suma = 0 readNr = 0 while readNr >= 0 and numbers < int(argv[1]): readNr = float(input("Introdu numarul: ")) suma += readNr numbers += 1 print("Media numerelor introduse este ", (suma / numbers))Apelezi jucaria cu un argument, adica cate numere vrei sa introduci de la tastatura: Quote
┌(ghost)─(Shouryuu)─(4.9.11-1-ARCH) └─(python)─(14 files, 60KB)─ $ python test.py 2 Introdu numarul: 5 Introdu numarul: 15 Media numerelor introduse este 10.0 ┌(ghost)─(Shouryuu)─(4.9.11-1-ARCH) └─(python)─(14 files, 60KB)─ $ python test.py 5 Introdu numarul: 10 Introdu numarul: 2 Introdu numarul: 4 Introdu numarul: 100 Introdu numarul: 12 Media numerelor introduse este 25.6 |
#14
Posted 02 March 2017 - 18:18
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users