非常基本的Python函数问题

时间:2018-03-08 11:54:09

标签: python

我一直在尝试编写一个函数,它接受一个正方形的值并计算它的对角线:

def diagonal(side):
    return side*cmath.sqrt(2)

def main():
    diagonal(1) # Evaluating for the specific case that side = 1

问题#1:

  • 当我运行代码时,我看不到任何输出/打印。为什么?

问题#2:

  • 有没有办法在不使用cmath库的情况下取平方根?

当我尝试从用户侧面获取值时,我也看不到任何内容(请检查下面的代码)。

def diagonal(side):side = int(input("Side measure (integer): "))
    return side*cmath.sqrt(2)

def main():
    diagonal(1) # Evaluating for the specific case that side = 1

问题#3:

  • a)实施有什么问题?
  • b)我应该在main()之后或Gin.joins(:botanicals).where("botanicals.name LIKE ?", "%#{@botanical.name}%") 之后要求正方形的内部的一侧?

谢谢。

3 个答案:

答案 0 :(得分:1)

首先,与C或Java等语言不同,Python实际上并没有寻找main函数作为进入脚本的第一个点。因此,main函数不会自动执行。你需要在任何函数之外调用它。最好有一个main函数,然后是以下表格中的一些代码:

if __name__ == "__main__":
    main()

当您将脚本作为另一个脚本中的模块导入时,这可以防止无意中调用main函数。

其次,您需要打印才能看到任何输出。在Python 3中:

def main():
    print(diagonal(1))

在Python 2中它将是print diagonal(1)(没有括号 - 在Python 2中,它是关键字,而不是函数)

对于这两件事,您现在应该看到输入提示和输出。但是为了解决问题3,我会将输入提示放在main函数中,而不是diagonal函数中;这作为角色的分工更有意义。所以:

import cmath # don't forget to import!

def diagonal(side):
    return side*cmath.sqrt(2)

def main():
    userInput = int(input("Side measure (integer): "))
    answer = diagonal(userInput)
    print(answer)

if __name__ == "__main__":
    main()

至于问题2,我不知道,所以我会接受@ gonczor的回答。

答案 1 :(得分:0)

问题#1:

def diagonal(side):
    return side*cmath.sqrt(2)

def main():
    return diagonal(1)

问题#2和3: 无论如何,我会这样做:

def diagonal(side):
    return side**0.5

def main():
    side = float(input('type the side: '))
    # side =float((raw_input('type the side: ')) # this input is valid too
    return diagonal(side)

代码来自IDE:

>>> def diagonal(side):
...    return side**0.5
>>> def main():
...    side = float(input('type the side: '))
...    # side =float((raw_input('type the side: ')) # this input is valid too
...    print(diagonal(side))
>>> main()
type the side: >? 5
2.23606797749979

enter image description here

答案 2 :(得分:0)

只需在主要方法中加入print diagonal(1),而不只是diagonal(1)

def main():
  side = input("Side measure (integer): ")
  print (diagonal(side))
main()

那应该是你的main()