请耐心听我说,我是编程领域的新手。我正在尝试为与医疗账单相关的ICD-9代码设计一个简单的数据输入/应答程序。
示例:
Enter ICD-9: "487.1"
Answer: "Influenza with respiratory manifestations"
Enter ICD-9 Code: "844.2"
Answer: "Cruciate Ligament Tear of Knee"我在几分钟内就勾勒出了这一点,但我不知道如何让程序读取一系列数字,而不仅仅是一个数字。对于基数为10: 844.2的int(),我也得到了ValueErrors: invalid文本,所以我使用844值只是为了测试。
文件名: icd9wizard.py
number = 844
running = True
while running:
guess = int(input('Enter ICD-9 Code: '))
if guess == number:
print('Cruciate Ligament Tear of Knee')
elif guess < number:
print('Invalid entry')
else:
print('Invalid entry')我知道这是基本的..。我只需要一个箭头为我指明正确的方向。
谢谢!
发布于 2011-11-23 02:00:05
在Python中,int数据类型只能包含完整的整数,没有小数部分。对于您的应用程序,由于您不会对输入的数字进行任何实际的算术运算,因此最好将它们保留为字符串。所以根本不要调用int:
number = "844"
guess = input('Enter ICD-9 Code')请注意,我如何更改number,使"844"出现在引号中。这意味着它可以包含任何字符值,例如"844.2"或"fred"。
还有另一种名为float的数据类型,它保存浮点值(带有小数部分的数字)。但是,这种类型不适合您的应用程序,因为您不会使用这些数字进行计算。
发布于 2011-11-23 02:02:23
如果你有一组预定义的数字想要使用,你可以测试字典中是否包含:
good_numbers = {"487.1": "Influenza with respiratory manifestations",
"844.2": "Cruciate Ligament Tear of Knee",
"133.7": "Being awesome at code"}
running = True
while running:
guess = raw_input('Enter ICD-9 Code: ')
if guess in good_numbers:
print good_numbers[guess]
else:
print('Invalid entry')发布于 2011-11-23 02:00:26
您可以使用float()而不是int()来修复ValueError。int不能存储非整数,即小数点后有值的数字。
至于剩下的问题,您应该考虑使用dictionary (请参阅python文档),将ICD-9代码作为关键字,将答案/描述作为值。通过这种方式,您可以输入大量的代码和描述,而不必使用大量的if和elif。考虑通过读取文件或其他内容来填充此dictionary。
例如(填写完字典后):
number = 844.2
running = True
while running:
guess = float(input('Enter ICD-9 Code: '))
if guess in icd_9_dict.keys():
print(icd_9_dict[guess])
else:
print('Invalid entry')https://stackoverflow.com/questions/8231388
复制相似问题