Python3.x:不同情况下的变量赋值
Python3.x: Variable Assignment for Different Cases
我正在尝试根据另一个变量为一个变量分配不同的值。我已经使用 if...else
语句来做到这一点。我想知道是否有更多 efficient/simpler 方法来完成此操作。
我排除了很多代码。我正在逐行分析数据集,其中 column[3]
可以是任何数字。
我的代码:
byte_3 = format(column[3], 'b').zfill(8)
alarm = int(byte_3[1:8], 2)
if byte_3[0] == '1':
print_string += 'Alarm '
if alarm == 0:
stat = 'Voltage Dropout'
elif alarm == 1:
stat = 'Voltage Restored'
elif alarm == 2:
stat = 'Probe Started'
elif alarm == 3:
stat = 'Probe Completed'
elif alarm == 4:
stat = 'Cashbox Removed'
elif alarm == 5:
stat = 'Cashbox Restored'
print(print_string + stat)
我希望 stat
根据分配给 alarm
的值进行更改。是否有可能以不同的方式实现这一目标?分配给 alarm
的大部分值将是 1-26 中的整数,其中每个单独的整数都会更改 stat
的分配,即如果 alarm
为 0,我预计 stat
为 Voltage Dropout
或者如果 alarm
变为 4 我希望 stat
为 Cashbox Removed
有些答案会出现字典,但听起来您想要更深入的解释,希望我能提供。字典类似于列表,只是您为字典中的每个元素定义一个键和一个值。然后您可以检索给定键的值。在你的情况下,它看起来像
alarm = int(byte_3[1:8], 2)
stat_dictionary = {0:'Voltage Dropout',1:'Voltage Restored',2:'Probe Started',3:'Probe Completed',4:'Cashbox Removed',5:'Cashbox Restored'}
if byte_3[0] == '1':
print_string += 'Alarm '
print(print_string+stat_dictionary[alarm]
您可以将 stat_dictionary 替换为列表并具有相同的功能,但字典更清晰。
我正在尝试根据另一个变量为一个变量分配不同的值。我已经使用 if...else
语句来做到这一点。我想知道是否有更多 efficient/simpler 方法来完成此操作。
我排除了很多代码。我正在逐行分析数据集,其中 column[3]
可以是任何数字。
我的代码:
byte_3 = format(column[3], 'b').zfill(8)
alarm = int(byte_3[1:8], 2)
if byte_3[0] == '1':
print_string += 'Alarm '
if alarm == 0:
stat = 'Voltage Dropout'
elif alarm == 1:
stat = 'Voltage Restored'
elif alarm == 2:
stat = 'Probe Started'
elif alarm == 3:
stat = 'Probe Completed'
elif alarm == 4:
stat = 'Cashbox Removed'
elif alarm == 5:
stat = 'Cashbox Restored'
print(print_string + stat)
我希望 stat
根据分配给 alarm
的值进行更改。是否有可能以不同的方式实现这一目标?分配给 alarm
的大部分值将是 1-26 中的整数,其中每个单独的整数都会更改 stat
的分配,即如果 alarm
为 0,我预计 stat
为 Voltage Dropout
或者如果 alarm
变为 4 我希望 stat
为 Cashbox Removed
有些答案会出现字典,但听起来您想要更深入的解释,希望我能提供。字典类似于列表,只是您为字典中的每个元素定义一个键和一个值。然后您可以检索给定键的值。在你的情况下,它看起来像
alarm = int(byte_3[1:8], 2)
stat_dictionary = {0:'Voltage Dropout',1:'Voltage Restored',2:'Probe Started',3:'Probe Completed',4:'Cashbox Removed',5:'Cashbox Restored'}
if byte_3[0] == '1':
print_string += 'Alarm '
print(print_string+stat_dictionary[alarm]
您可以将 stat_dictionary 替换为列表并具有相同的功能,但字典更清晰。