| NVRE a întrebat:


Recent m-am reapucat de python deoarece l-am lasat pentru a invata linux dar este timpul pentru a invata in continuare python.
Am o problema la un script care avea rolul de a scana o retea.
O sa las doar partea in care sa intampla eroarea :


#!/usr/bin/python3.5
ip=input ("Type the ip addres you want to scan: ")
ok=input ("If you want to scan this ip adress press 1, if you want to exit press 0: ")
if ok==1 :
print ("Preparing to scan "+ str(ip))
if ok==0:
print ("Scan has stoped.")
else:
print ("Invalid option! ")


Eroarea este ca dupa ce introduc 1 sau 0 mereu imi afisaza conditia else ( Invalid option!) si daca scot acea parte nu imi mai afiseaza nimic dupa ce introduc 1 sau 0.
Tin sa mentionez ca folosesc vim si am o intrebare :
Dupa ce fac o conditie ca de ex:
if a > b:
textul incepe de aici nu are acel spatiu ca in ex. 2


if a > b:
asa ar trebui sa inceapa

Problema este ca nu stiu parametri in care ar trebui sa scriu dupa ce scriu conditia.
Ar trebui sa fac update la Vim sau sa il descarc de pe siteul oficial?

Răspuns Câştigător
suntserios
| suntserios a răspuns:

Ai doua greseli.

1. Dupa ce citesti ok cu input el e string. Poti vedea asta

print (str(type(ok)))

Asa ca tu compari un string cu un int
Modifica in
if int(ok)==1 :

A doua greseala e ca daca ok = 1 si intra in primul if va intra si pe else ul din al doilea if

5 răspunsuri:
| doctorandus a răspuns:

Nu are instrucțiunea case?

| NVRE explică (pentru doctorandus):

Adica?

| NVRE explică (pentru suntserios):

Explica-mi mai bine a doua greseala, te rog!

suntserios
| suntserios a răspuns (pentru NVRE):

Daca ok == 1
Va intra atat pe primul if cat si pe else celui de al doilea if.

| NVRE explică (pentru suntserios):

Am rezolvat problema
Mersi oricum