我有几种编号的训练类型,它们都有相关的值
可能的培训类型:
小:0.5
大:0.7
小:0.7
大:0.8
等等
如果选择了1号训练类型,如何确定用于计算的一对相关值?例如,如果培训类型为1:
small = (220 - 60)*0.5
big = (220 - 60)*0.7
我想知道如何编写代码,以便后续计算中使用的值根据所选的训练类型而变化
到目前为止我所拥有的:
training = str(input("Choose training type (1, 2, 3): "))
s1 = 0.5
s2 = 0.7
s3 = 0.8
b1 = 0.7
b2 = 0.8
b3 = 0.88
spulse = "Small pulse: "
bpulse = "Big pulse: "
if training == 1:
small = (220 - 60) * s1
big = (220 - 60) * b1
elif training == 2:
small = (220 - 60) * s2
big = (220 - 60) * b2
elif training == 3:
small = (220 - 60) * s3
big = (220 - 60) * b3
print(spulse + str(small) + bpulse + str(big))
如果将
input
转换为int
而不是str
,并且在决策语句之外初始化small
和big
,则代码将正常工作,如下所示:但是,一种替代办法可以是:
这样,如果用户在提示符处输入
1
作为type_
的值,则输出为:但是,如果用户在提示符处输入
2
作为type_
的值,则输出为:如果用户在提示符处输入
3
作为type_
的值,则输出为:对于输入的任何其他值,输出为
print("Invalid type.")
在python3中,
input()
函数返回一个字符串(与python2不同),但是所有的if training == ...
语句都将返回的值与整数进行比较,因此它们总是会失败。要解决此问题,请更改第一行,如下所示:产出:
更新
最好使用Python字典来实现这一点。这样做被称为“数据驱动”,也可以通过添加更多的训练类型和/或与每个类型关联更多的值,使调试和扩展更容易。我认为它还使代码更清晰,可读性更强
这说明了我的意思:
如果使用内置输入功能,可以执行以下操作:
结果:
相关问题 更多 >
编程相关推荐