Domanda Problemi con un script in python

w3ll

Utente Iron
18 Novembre 2020
6
1
8
Salve a tutti, questo è il mio primo post, e volevo esporre un mio problema cercando qualcuno che potesse aiutarmi.
Sto scrivendo un programma in python e a un certo punto si richiede l'ip dell'utente per aprire una connessione con un server. Per questo script ho creato un altro file. Ecco il codice:

import os
import time
import math

print("Welcome!")
print()

alphabet = ("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")

def check():
ip = input("Enter ip > ")
if ip == alphabet:
print("Enter an IP!")
time.sleep(1.0)
os.system("cls")
return check()

check()

print("yet")
input()


Il problema è sorto quando ho voluto inserire questa funzione nel programma, la quale dovrebbe capire se si stanno inserendo cifre numeriche, e, se alfanumeriche, dare il messaggio di errore. Solo che ogni volta che inserisco una ci fra alfanumerica, mi va direttamente a "yet", invece che passare per l'errore ("Enter an IP!"). Qualcuno che mi può aiutare?
 

fisica-all

Utente Emerald
13 Aprile 2014
1,259
237
356
Ci sono vaaaarie cose:
1- non c'e' bisogno di fare un controllo in quel modo per l'ip (scrivendo tutto l'alfabeto). Potrresti dividere l'input in 4 blocchi (l'ip generalmente e' x.x.x.x) ed analizzare ogni blocco
2- tu confronti tutto il valore inserito dell'ip con una lista, non puo' combaciare quasi mai
3- in ogni ricorsione devi avere una condizione di uscita..
 

w3ll

Utente Iron
18 Novembre 2020
6
1
8
Ci sono vaaaarie cose:
1- non c'e' bisogno di fare un controllo in quel modo per l'ip (scrivendo tutto l'alfabeto). Potrresti dividere l'input in 4 blocchi (l'ip generalmente e' x.x.x.x) ed analizzare ogni blocco
2- tu confronti tutto il valore inserito dell'ip con una lista, non puo' combaciare quasi mai
3- in ogni ricorsione devi avere una condizione di uscita..
import os
import math
import time

#L'ip lo possiamo dividere in 4 blocchi: "x.x.x.x" (x = 1 blocco)
#Per questo andiamo a definire la funzione blocchi

def blocchi():
alfa = (("0">"999"),".")
alfa2 = ("0">"999")
ip = (alfa+alfa+alfa+alfa2)
input1 = input("Enter an IP > ")
if not input1 == ip:
print("Enter an IP!")
input("Press ENTER, to return...")
os.system('cls')
return blocchi()

blocchi()
print("success")
input()

Ho cambiato codice definendo un'unica funzione che analizza i blocchi come mi hai detto tu. Solo che mi da errore in "ip = (alfa+alfa+alfa+alfa2)" dicendomi: "TypeError: can only concatenate tuple (not "bool") to tuple". Consigli?
 
Banner pubblicitario per Bright Data su Inforge.net azienda di vendita Proxy, Data Collector e Content Unlocker
Supporta Inforge con una donazione