如何从if else条件中获取值?

问题描述 投票:1回答:4

我试图使用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'

如何为其他条件工作呢?

python python-3.x if-statement condition
4个回答
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_

2
投票

当您评估字符串的逻辑真/假时,您的if语句始终评估为true。你应该用

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

要么

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

1
投票

代替

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

使用

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

0
投票
  • 你应该定义l1l2变量。
  • 使用别而不是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)
© www.soinside.com 2019 - 2024. All rights reserved.