简单的Python程序
请耐心听我说,我对编程的世界还非常陌生。我正在尝试设计一个简单的数据录入/回答程序,用于处理与医疗账单相关的ICD-9代码。
举个例子:
Enter ICD-9: "487.1"
Answer: "Influenza with respiratory manifestations"
Enter ICD-9 Code: "844.2"
Answer: "Cruciate Ligament Tear of Knee"
我花了几分钟画了个草图,但我不知道怎么让程序读取一系列数字,而不是只读取一个数字。我还遇到了ValueErrors错误:int()的无效字面量,基数为10:844.2,所以我用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')
我知道这很基础……我只需要一个指引,告诉我该往哪个方向走。
谢谢!
8 个回答
1
你可以通过使用 float()
来解决 ValueError
的问题,而不是用 int()
。因为 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')
3
如果你有一组预先定义好的数字想要使用,你可以在一个字典里检查这些数字是否存在:
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')
3
在Python中,int
数据类型只能存储整数,也就是没有小数部分的数字。对于你的应用来说,因为你不会对输入的数字进行任何实际的算术运算,所以最好把它们当作字符串来处理。因此,根本不需要使用int
。
number = "844"
guess = input('Enter ICD-9 Code')
注意我把number
改成了带引号的"844"
。这意味着它可以包含任何字符,比如"844.2"
或者"fred"
。
还有一种数据类型叫float
,它可以存储带小数的数字(也就是有小数部分的数字)。不过,这种类型不适合你的应用,因为你并不打算用这些数字进行计算。