例如,如果订单编号+硬件版本+软件版本+ Mac地址+设备类型"PASS“,那么即使其中一个”失败“,也应该打印总的结果"PASS”,那么总体结果应该打印“failed”,并打印失败的内容,例如硬件版本。我希望你们能理解我想做的事情,我会写一段伪代码来解释我想要做的事情。
如果有一个字段是“
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*"")
发布于 2021-04-28 17:18:19
假设您只需要一些代码来增强您在问题中拥有的代码的功能,那么您可以做一些事情,比如维护一个标志来决定是输出一个总的传球还是失败,还有一个列表来保存您想要输出的状态。
下面是一个如何操作状态列表的示例(您可以调整它以满足您的需要):
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))
发布于 2021-04-28 16:57:25
如果我对你的理解是正确的,那就试着写这样的东西:
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')
然后遵循同样的逻辑
发布于 2021-04-28 17:18:55
还有一种解决办法。
不管字典是通过还是失败,你都可以维护它。如果它被传递,那么值就是True else False。
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()
https://stackoverflow.com/questions/67304520
复制相似问题