我试图使用if else条件获取代码。我希望从if 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)
如果mname不是'CS1TFD22',我得到的输出总是mcode ='CS122S003'和icode ='CS122S003d13_L1_mh_'。例如,如果我输入mname为CS1TFD23,则icode应为'CS123S003',icode应为'CS123S003d13_mh'
如何为其他条件工作呢?
代码中的一些错误
if mname=="CS1TFD22" or "cs1tfd22":
,但if mname=="CS1TFD22" or mname=="cs1tfd22":
,你也可以通过做if mname.lower()=="cs1tfd22":
来简化这个。elif
中额外的if l1l2=="NULL":
,只需else
就可以。icode = CS1'+m[5]+m[6]+'S003d13_L1_mh_'
的单引号li2
,不知道你从哪里取出它,所以我把它当作我输入的代码包含所有这些问题的代码可能如此
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)
您的代码中的一些输出将是。
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_
当您评估字符串的逻辑真/假时,您的if语句始终评估为true。你应该用
if mname=="CS1TFD22" or mname=="cs1tfd22":
要么
if mname in ("CS1TFD22","cs1tfd22"):
代替
if mname=="CS1TFD22" or "cs1tfd22":
使用
if mname=="CS1TFD22" or mname=="cs1tfd22":
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)