简单的Python程序

2 投票
8 回答
817 浏览
提问于 2025-04-17 06:51

请耐心听我说,我对编程的世界还非常陌生。我正在尝试设计一个简单的数据录入/回答程序,用于处理与医疗账单相关的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 代码当作键,把答案或描述当作值。这样你就可以放很多代码和描述,而不需要写一大堆的 ifelif。你可以考虑通过读取文件来填充这个 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,它可以存储带小数的数字(也就是有小数部分的数字)。不过,这种类型不适合你的应用,因为你并不打算用这些数字进行计算。

撰写回答