如何打印函数数学结果? [python函数](已编辑)

时间:2019-11-12 21:20:39

标签: python function

我有3个不同的小程序,我不知道如何显示它们,我已经完成了数学和其他工作,除了要我拼命的帮助之外,我真的不知道该说些什么,因为我不需要我一生中有在这方面有经验并且可以帮助我的人。

  1. 此函数使用一种功能来确定是否有任何年份是a年。使您的函数返回布尔值。 (Le年可被4整除,除非它们发生在新世纪初不能被400整除的年份。1900年不是a年; 2000年是a年。)
  2. 一个程序,该程序接受一条线上的两个点,并在等式y = m x + b中返回m和b的值。 (m =(y1-y2)/(x1-x2)和b = y1-m x1)
  3. 在子程序中使用欧几里得算法的程序,以找到两个数字的最大公因数。示例:45和55的GCF为5,顺序为:55、45、10、5、0。返回GCF

编码为1。

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar) 
getSupportActionBar().setSupportActionBar(toolbar)
[This is my screen.](https://i.stack.imgur.com/OWIxx.png)![enter image description here](https://i.stack.imgur.com/VyEPM.png)

编码为2。

def isLeapYear(year):
    if year % 4 == 0:
        if year % 100 == 0:
            if year % 400 == 0:
                return True
            else:
                return False
        else:
            return True
    else:
        return False

编码为3。

    rise = y2-y1
    run = x2-x1
    m = rise/run
    b = y2/(m*x2)
    return print("m = " + str(m) + " and b = " + str(b))

编辑:对不起,我不好解释,例如,我希望the年的功能类似; “输入leap年!” (存储功能) 对不起,但是(输入的le年)不是a年! (或)(他们输入的跨年)是a年!

是的,有人说这是因为我也英语不好,我想打印编码结果

2 个答案:

答案 0 :(得分:2)

听起来您正在解决一项家庭作业问题,而该问题要求您编写函数来完成三项不同的任务。它不是不需要,而是要求您在它们周围编写包装器代码以调用函数并打印出结果,但是您可能出于自己的原因而希望这样做(例如,在进行分配之前先测试函数,或只是为了学习如何。)

无论如何,要学习的关键是如何调用函数。对于the年函数,您可能希望在if语句中进行调用,因为您将根据返回的布尔结果打印两种不同的消息。

year = int(input("Enter your leap year!")) # prompt the user to enter a year, convert to int

if isLeapYear(year):
    print(year, "is a leap year!")
else:
    print("I'm sorry,", year, "is not a leap year.")

对于第二个函数,您可能需要将其代码更改为returnmb的值,并将打印内容保留给调用代码,因为这就是问题说明说要做。在Python中,您可以返回值的元组,在大多数情况下,该值的工作方式类似于一次返回两个值(您可以非常轻松地打包和解包元组)。您切断了第二个函数的名称,但是如果我们将其命名为calcLine,则更新后的函数和调用代码可能如下所示:

def calcLine(x1, y1, x2, y2):
    rise = y2-y1
    run = x2-x1
    m = rise/run
    b = y2 - (m*x2) # math fix, as suggested in the comments above
    return m, b  # return a 2-tuple, rather than printing here

coords_string = input("Enter x1, y1, x2, y2 coordinates: ") # get a string of coordinates
x1, y1, x2, y2 = map(float, coords_string.split(','))       # parse the string into numbers

slope, intercept = calcLine(x1, y1, x2, y2)                 # do the calculation

print("m = {} and b = {}".format(slope, intercept))         # print our results

如果您不完全了解调用代码的字符串解析和格式化部分,请不要担心,您可以理解的关键是函数调用:m, b = calcLine(x1, y1, x2, y2)。这将调用上面定义的函数,并保存在元组中返回的mb值,并将它们解包为两个新的全局变量,我们以后可以使用(我选择使用不同的以mb的名称命名,以明确表示它们与函数的变量分开,并认为它们具有相同的值。)

最后一个功能可能是最容易处理的,尽管由于您没有说出要打印的内容,所以我留给您!

答案 1 :(得分:1)

对于第一个问题,请使用:

y = int(input('Enter year: '))
if isLeapYear(y):
  print('%d is a leap year' % y)
else:
  print('%d is not a leap year' % y)

第二个问题:

return print("m = " + str(m) + " and b = " + str(b))

返回None。这是因为函数print返回None。用于打印。

您可能想要创建一个返回某些内容的函数,或者想要打印一些内容。

如果您需要从函数中返回两件事,请执行以下操作:

return m,b

然后在调用该函数的代码中:

m,b = CalcMB(x1,y1,x2,y2)