J'essaie d'obtenir un code en utilisant la condition if else Je souhaite prendre des valeurs de la condition if else.
Actuellement, si la condition fonctionne, ne fonctionne pas pour la condition else.
mname=input("Enter name: ") m=[] if mname=="CS1TFD22" or "cs1tfd22": mcode='CS122S003' if l1l2=="NULL": icode = 'CS122S003d13_mh_' elif l1l2!="NULL": icode = 'CS122S003d13_L1_mh_' else: for i in mname: m.append(i) mcode = 'CS1'+m[5]+m[6]+'S003' if l1l2=="NULL": icode='CS1'+m[5]+m[6]+'S003d113_mh_' elif l1l2 != "NULL": icode = CS1'+m[5]+m[6]+'S003d13_L1_mh_' print(mcode,icode)
4 Réponses :
Au lieu de
if mname=="CS1TFD22" or mname=="cs1tfd22":
utilisez
if mname=="CS1TFD22" or "cs1tfd22":
ou vous pouvez également utiliser casefold ()
c'est correct. "cs1tfd22" prend toujours la valeur True, donc la condition else n'est jamais atteinte
Votre instruction if évalue toujours vrai, car vous évaluez le vrai / faux logique d'une chaîne. Vous devez utiliser
if mname in ("CS1TFD22","cs1tfd22"):
ou
if mname=="CS1TFD22" or mname=="cs1tfd22":
Votre jamais quel caractère serait majuscule ou minuscule. Il est donc préférable d'utiliser casefold ()
En fait, je n'ai même pas remarqué qu'il s'agissait de la même chaîne dans un cas différent! Dans ce cas oui, il faut absolument utiliser casefold ()
Quelques erreurs dans votre code
Vous vérifiez deux conditions ou non par si mname == "CS1TFD22" ou "cs1tfd22":
, mais par si mname == "CS1TFD22" ou mname == "cs1tfd22":
, vous pouvez également simplifier cela en faisant if mname.lower () == "cs1tfd22":
.
Vous n'avez pas besoin du elif
supplémentaire dans si l1l2 == "NULL":
, seulement else
ferait l'affaire.
icode = CS1 '+ m [5] + m [6] +' S003d13_L1_mh_ '
li2
nulle part, vous ne savez pas d'où vous le prenez, donc je le prends comme entrée dans mon code Le code avec tous ces problèmes pourrait ressembler à ceci
Enter name: cs1tfd22 Enter l1l2: NULL CS122S003 CS122S003d13_mh_ Enter name: abcdefgh Enter l1l2: NULL CS1fgS003 CS1fgS003d113_mh_ Enter name: xyzabcd Enter l1l2: HELLO CS1cdS003 CS1cdS003d13_L1_mh_
Certaines sorties de votre code le seront.
mname=input("Enter name: ") l1l2=input("Enter l1l2") m=[] #Convert mname to lower case and then compare if mname.lower() == 'cs1tfd22': mcode='CS122S003' #If-else case 1 if l1l2=="NULL": icode = 'CS122S003d13_mh_' else: icode = 'CS122S003d13_L1_mh_' else: for i in mname: m.append(i) mcode = 'CS1'+m[5]+m[6]+'S003' # If-else case 1 if l1l2=="NULL": icode='CS1'+m[5]+m[6]+'S003d113_mh_' else: icode = 'CS1'+m[5]+m[6]+'S003d13_L1_mh_' print(mcode,icode)
`aussi vous pouvez simplifier cela en faisant si mname.lower () ==" CS1TFD22 ":` c'est faux, devrait être mname.upper ()
Mince! Je l'ai mis correctement dans le code mais incorrectement dans l'exemple! Je les ai corrigés aux deux endroits! merci @Netwave Veuillez jeter un coup d'oeil à nouveau et si cela semble bon, veuillez envisager de voter pour
c'est ok maintenant, gj :)
Qu'est-ce que gj! Je ne sais pas ça!
Aah putain! J'apprends toujours les ficelles de SO, donc tout commentaire est toujours apprécié @Netwave Surtout d'un utilisateur à haute réputation comme vous :)
Pas vraiment haut, je suis assez loin des vraies bêtes ici. J'apprends aussi mon chemin;)
Eh bien 3 fois alors la mienne aussi, donc tu es une bête pour moi aussi lol;)
utilisez plutôt casefold ()
Eh bien, le bas et le boîtier fonctionneraient de la même manière dans ce scénario, donc l'un ou l'autre peut être utilisé
N'oubliez pas de marquer avant CS1 à la dernière ligne.
mname=input("Enter name: ") m=[] l1l2=input("Enter l1l2: ") if mname=="CS1TFD22" or "cs1tfd22": mcode='CS122S003' if l1l2=="NULL": icode = 'CS122S003d13_mh_' else: icode = 'CS122S003d13_L1_mh_' else: for i in mname: m.append(i) mcode = 'CS1'+m[5]+m[6]+'S003' if l1l2=="NULL": icode='CS1'+m[5]+m[6]+'S003d113_mh_' else: icode = 'CS1'+m[5]+m[6]+'S003d13_L1_mh_' print(mcode,icode)
Ceci est certainement faux
si mname == "CS1TFD22" ou "cs1tfd22":
, devrait êtresi mname dans ("CS1TFD22", "cs1tfd22"):
Double possible de Comment tester plusieurs variables par rapport à une valeur?
Que doit faire le code? Veuillez également inclure cette explication dans votre code!
Corrigez votre première instruction if comme celle-ci
if mname == "CS1TFD22" ou mname == "cs1tfd22":