python - 从用户那里获取输入并找到输入的阶乘
问题描述
我想定义一个函数阶乘(x),但我想这样做
x = int(input("x"))
需要在函数内部
该函数应该是递归的。所以它需要自己调用。
我尝试这样做,但由于每个递归步骤都会调用输入,因此该函数无法以预期的方式工作。
任何人都可以定义这样的工作功能吗?
解决方案
你可以让阶乘的输入成为一个可选参数,默认为无。没有输入值时提示一个值。输入设置好后,只需使用众所周知的阶乘递归公式即可。
def factorial(n=None): # optional default parameter
if n == None: # sets value when no input
n = int(input('Enter number: '))
if n == 0:
return 1
else:
return n * factorial(n-1)
print(factorial()) # prompts for input
推荐阅读
- android - LiveData 的包装类
- jhipster - 如何更新 JHipster 中的 Swagger UI 文档?
- python - 哪个跑得更快
- c++ - 使用指向指针 C++ 的指针删除只有一个子节点的二叉树
- python - Python中的相似度度量
- html - Embedding HTML into SVG - 如何在 HTML 命名空间元素中正确呈现 HTML 标记,与我的 SVG 内联?
- java - 我可以将 hibernate/jpa 查询的结果映射到不是实体的类吗?
- angular - 列 TEXT 的离子 SQLite 插入值未定义
- variables - 如何在corona sdk(Lua)中从脚本获取变量到其他脚本
- javascript - 我的 javascript 代码无法正常工作