Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写一个简单的Python程序_Python - Fatal编程技术网

编写一个简单的Python程序

编写一个简单的Python程序,python,Python,我很难为初学者编程类编写简单的Python程序。如果有人能看看我目前的代码,并指导我在正确的方向,它将不胜感激!代码如下: 有助于满足护士对患者人员配置需求的计划 将代码的最后一段更改为: def printInfo(patients, nurses, nurseAssistants): print 'The number of patients for this shift is:', patients print 'The number of nurses needed is

我很难为初学者编程类编写简单的Python程序。如果有人能看看我目前的代码,并指导我在正确的方向,它将不胜感激!代码如下:

有助于满足护士对患者人员配置需求的计划
将代码的最后一段更改为:

def printInfo(patients, nurses, nurseAssistants):
    print 'The number of patients for this shift is:', patients
    print 'The number of nurses needed is:', nurses
    print 'The number of nurses Assistants is:', nurseAssistants

main()
因为python是基于缩进执行的。另外,从
printInfo
语句中删除
=
,并使其:

nurses = getNurses(patients)
nurseAssistants = getAssistants(nurses)
printInfo(patients, nurses, nurseAssistants)
我注意到两件事:

首先,您的代码没有缩进。这可能只是您如何复制到此站点的后遗症,但请记住,在Python中,空格是非常重要的。特别是,代码块由缩进级别标识。例如,main()函数应该如下所示:

def main(): 
    print 'Welcome to the PACU nurse to patient program' 
    print 
    patients = inputPatients() 
    nurses = getNurses(patients) 
    nurseAssistants = getAssistants(nurses) 
    printInfo (patients, nurses, nurseAssistants) 

    raw_input() 
函数中的所有内容都缩进。根据您使用的IDE,您可能只需突出显示内容,然后按tab按钮


下一个不太重要的问题是,您正在使用浮点数来表示NURSER的数量。由于很难找到护士的一小部分,因此您可能希望将其提升到下一个整数,使用类似于ceil()的方法之前的答案已经暗示了主要问题,但没有解释为什么您没有看到任何输出

下面为名为
printInfo
的变量分配一个包含患者、护士和护士助理3个值的变量

printInfo = (patients, nurses, nurseAssistants)
它不会产生任何输出,也不会像您可能期望的那样调用函数
printInfo()
。您实际需要的是进行函数调用:

printInfo(patients, nurses, nurseAssistants)

Nerd Herd和mhawke已经用printInfo和缩进解释了这个问题,但听起来你仍然对如何获得3名而不是2.5名护士助理感到困惑。例如,您会说,“现在如何计算如何规划比率。”

通过使用浮点,您可能会遇到这样的问题:不是每个十进制浮点值都可以精确地表示为IEEE浮点值。这一点可以通过“编程比率”来解决,例如,使用
分数。分数(1,2)
而不是
1.0/2.0
,或者使用十进制浮点数,如
decimal(1)/decimal(2)
。但这并不是你真正遇到的问题

你遇到的问题是,你想要取整,而这并不是自动发生的。您必须明确地执行此操作,例如,通过调用
math.ceil
。有两个地方可以做,语义不同,所以你必须决定哪一个对你的问题有意义

选项1是尽快汇总,如下所示:

def getNurses(patients):
    nurses = math.ceil((1.0 / 3.0) * patients)
    return nurses

def getAssistants(nurses):
    nurseAssistants = math.ceil((1.0 / 2.0) * nurses)
    return nurseAssistants
def printInfo(patients, nurses, nurseAssistants):
    print 'The number of patients for this shift is:', math.ceil(patients)
    print 'The number of nurses needed is:', math.ceil(nurses)
    print 'The number of nurses Assistants is:', math.ceil(nurseAssistants)
选项2是尽可能晚地汇总,如下所示:

def getNurses(patients):
    nurses = math.ceil((1.0 / 3.0) * patients)
    return nurses

def getAssistants(nurses):
    nurseAssistants = math.ceil((1.0 / 2.0) * nurses)
    return nurseAssistants
def printInfo(patients, nurses, nurseAssistants):
    print 'The number of patients for this shift is:', math.ceil(patients)
    print 'The number of nurses needed is:', math.ceil(nurses)
    print 'The number of nurses Assistants is:', math.ceil(nurseAssistants)
在你的案例中,这些事实上会给出相同的答案(假设患者数量始终是一个整数,希望是…),但希望你能看到这些如何在类似的案例中给出不同的答案,所以你必须决定哪一个是正确的


与此同时,
math.ceil(2.66666)
将以“3.0”打印,而您可能需要的是“3”。要做到这一点,只需将
math.ceil(护士)
更改为
int(math.ceil(护士))
,等等。

您遇到了什么问题?好的,重新设置Inspectorge4dget是问题的核心。也要考虑到你给护士和护士助理提供了分数,我很难让程序正常运行。这是一个非常直接的程序,我的代码一定有问题。只是不确定我出了什么问题。为什么要为
15
患者配备
2.5
助手是的,这是将代码粘贴到站点的后遗症。Python中的代码缩进正确。你买的第二期可能有问题,我是说计算比率,每3个病人有1个护士,每2个护士有1个护士助理。你知道我该如何输入比率吗?有几个选项,其中一个是分数模块。是的,这让它运行起来了。非常感谢。现在如何计算出如何编程呢?@MichaelHanson可能取6的最接近倍数?或者将小数点四舍五入到最接近的值。如果您的问题只是“我如何做比率”,最直接的答案是
分数。分数(1,3)
,但实际上,(1.0/3.0)很好。最终,无论您使用比率、小数、浮点数还是手动放大整数(正如Nerd Herd所建议的那样),您仍然需要在某个地方添加代码,以将2.5个助手的代码汇总到3个,例如,通过
nurseAssistants=math.ceil((1.0/2.0)*护士)