比较python中的打印语句

2024-06-16 14:46:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图做的是生成一个总体结果,例如:如果订单号+硬件版本+软件版本+Mac地址+设备类型“通过”,则应打印总体结果“通过”。如果其中一个“失败”,则总体结果应打印“失败”,并应打印失败的内容,例如硬件版本。 我希望你们能理解我要做的,我会写一段伪代码来解释我想弄明白的东西

  1. 如果订单号=通过+硬件版本=通过+软件版本=通过+Mac地址=通过+设备类型=通过 然后总体结果=打印(“总体结果通过”)

  2. 如果甚至有一个字段为“失败”,例如: 如果订单号=失败+硬件版本=通过+软件版本=通过+Mac地址=通过+设备类型=通过 然后总体结果=打印(“总体结果失败”,“订单号失败”)

  3. 如果订单号=失败+硬件版本=失败+软件版本=通过+Mac地址=通过+设备类型=通过 然后总体结果=打印(“总体结果失败”、“订单号失败”、“硬件版本失败”)

4。。。等等

我正在尝试实现这个函数,但我真的不知道如何去做,请大家对我轻松一点,我刚开始编程,如果有人能给我一个示例代码,说明这个函数是如何实现的,我们也非常感谢您的建议

# Order number
print("Desired Order number:",d_ordernum)
print("Order number from scancode :",scan_code_cropped_artikel)
print("Ordernumber from wbm: ", ord_nmr)
if d_ordernum == ord_nmr == scan_code_cropped_artikel:
    print("Order number PASS")
else:
    print("FAIL")
print(100*"")

# Hardware version
print("Desired Hardware Version:",d_hw_version)
print("Hardware Version from wbm: ", v)
if d_hw_version == v:
    print("Hardware version PASS")
else:
    print("Wrong Hardware Version")
print(100*"")

# Software version
print("Desired Software Version:",d_sf_version)
print("Software Version from wbm: ", b)
if d_sf_version == b:
    print("Software version PASS")
else:
    print("FAIL")
print(100*"")

# Mac address
print("Mac address from scancode :",scan_code_cropped_mac)
print("Mac address from wbm: ", mac_addr)
list_of_chars = mac_addr.split(":")
mac_address_string_joined = ''.join(list_of_chars) 
if scan_code_cropped_mac == mac_address_string_joined:
    print("PASS")
else:   
    print("FAIL")
print(100*"")
# Product Code
d_product_code = pc_praefix + "-" + d_sf_version + "-" + d_hw_version
product_code = pc_praefix + "-" + b + "-" + v
print("Desired product code: ",d_product_code )
print("Product code of current device: ", product_code)
print(100*"")


#Device type
print("Desired device type:",d_dev_typ)
print("Device type from wbm: ", dev_typ)
if d_dev_typ == dev_typ:
    print("PASS")
else:
    print("FAIL")
print(100*"")

Tags: from版本if硬件versionmaccodepass
3条回答

还有一种解决方法

无论字典是否通过,您都可以维护它。若为“通过”,则该值为真,否则为假

mapping = {"d_order_num": False, "d_hw_version": False,
           "d_sf_version": False, "mac_addr_matched": False,
           "d_dev_typ": False}


def check_all_matches():
    if all(mapping.values()):
        print("PASS. All matched")
    else:
        print("FAIL")


# Order number
print("Desired Order number:", d_ordernum)
print("Order number from scancode :", scan_code_cropped_artikel)
print("Ordernumber from wbm: ", ord_nmr)
if d_ordernum == ord_nmr == scan_code_cropped_artikel:
    mapping["d_order_num"] = True

# Hardware version
print("Desired Hardware Version:", d_hw_version)
print("Hardware Version from wbm: ", v)
if d_hw_version == v:
    mapping["d_hw_version"] = True

# Software version
print("Desired Software Version:", d_sf_version)
print("Software Version from wbm: ", b)
if d_sf_version == b:
    mapping["d_sf_version"] = True

# Mac address
print("Mac address from scancode :", scan_code_cropped_mac)
print("Mac address from wbm: ", mac_addr)
list_of_chars = mac_addr.split(":")
mac_address_string_joined = ''.join(list_of_chars)
if scan_code_cropped_mac == mac_address_string_joined:
    mapping["mac_addr_matched"] = True


# Device type
print("Desired device type:", d_dev_typ)
print("Device type from wbm: ", dev_typ)
if d_dev_typ == dev_typ:
    mapping["d_dev_typ"] = True


check_all_matches()

假设您只需要一些代码来增强问题中的代码的功能,您可以做一些事情,比如维护一个标志来决定是否输出总体通过或失败,以及一个列表来保存要输出的状态

下面是一个如何操作状态列表的示例(您可以调整它以满足您的需要):

OVERALL_STATUS = 1
STATUS_LIST = []

# Order number
print("Desired Order number:",d_ordernum)
print("Order number from scancode :",scan_code_cropped_artikel)
print("Ordernumber from wbm: ", ord_nmr)
if d_ordernum == ord_nmr == scan_code_cropped_artikel:
    print("Order number PASS")
else:
    print("FAIL")
    OVERALL_STATUS = 0
    STATUS_LIST.append('Order Number FAIL')
print(100*"")

# Hardware version
print("Desired Hardware Version:",d_hw_version)
print("Hardware Version from wbm: ", v)
if d_hw_version == v:
    print("Hardware version PASS")
else:
    print("Wrong Hardware Version")
    OVERALL_STATUS = 0
    STATUS_LIST.append('Order Number FAIL')
print(100*"")

if OVERALL_STATUS:
    print('Overall Result PASS')
else:
    print('Overall Result FAIL, ' + ', '.join(STATUS_LIST))

如果我理解正确,那么试着这样写:

def my_func(d_ordernum, scan_code_cropped_artikel, ord_nmr):
    my_list = [d_ordernum, scan_code_cropped_artikel, ord_nmr]
    if 'FAIL' in my_list and 'PASS' in my_list:
        print('d_ordernum = {}\n'
              'scan_code_cropped_artikel = {}\n'
              'ord_nmr = {}'.format(d_ordernum, scan_code_cropped_artikel, ord_nmr))
    if 'FAIL' in [d_ordernum, scan_code_cropped_artikel, ord_nmr]:
        print('One or more FAIL')

然后遵循同样的逻辑

相关问题 更多 >