非常基本的Python函数的issu

2024-04-26 06:02: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()之后求正方形的边吗?你知道吗

谢谢你。你知道吗


Tags: the函数forreturnmaindefsqrtside
3条回答

问题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

只在main方法中包含print diagonal(1),而不是只包含diagonal(1)

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

那应该是你的main()。你知道吗

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

if __name__ == "__main__":
    main()

这可以防止在将脚本作为另一个脚本中的模块导入时意外调用main函数。你知道吗

其次,您需要打印以查看任何输出。在Python 3中:

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

在python2中,它应该是print diagonal(1)(没有括号-在python2中,它是一个关键字,而不是一个函数)

使用这两种方法,您现在应该可以看到输入提示和输出。但是为了解决问题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的答案。你知道吗

相关问题 更多 >