如何从其他条件中获取值?

时间:2019-05-01 05:44:17

标签: python python-3.x if-statement conditional-statements

我正在尝试使用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'

还要如何为其他条件工作?

4 个答案:

答案 0 :(得分:2)

您的if语句始终评估为true,因为您评估的是字符串的逻辑true / false。您应该使用

if mname=="CS1TFD22" or mname=="cs1tfd22":

if mname in ("CS1TFD22","cs1tfd22"):

答案 1 :(得分:1)

代替

if mname=="CS1TFD22" or "cs1tfd22":

使用

 if mname=="CS1TFD22" or mname=="cs1tfd22":

答案 2 :(得分:1)

代码中的某些错误

  1. 您不是通过if mname=="CS1TFD22" or "cs1tfd22":而是通过if mname=="CS1TFD22" or mname=="cs1tfd22":检查两个或多个条件,也可以通过执行if mname.lower()=="cs1tfd22":来简化此操作。

  2. 您不需要elif中多余的if l1l2=="NULL":,只需else就可以了。

  3. 您错过了icode = CS1'+m[5]+m[6]+'S003d13_L1_mh_'中的单引号
  4. 您尚未在任何地方定义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_

答案 3 :(得分:0)

  • 您应该定义l1l2变量。
  • 使用else代替elif。
  • 别忘了最后一行CS1之前的'标记。

    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)