×ばつn。 实例 [mycode3 type='python'] #!/usr/bin/python3 # Filename : test.py # author by : www.runoob.com # 通过用户输入数字计算阶乘 # ..">

菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown Python sys 模块 Python Pickle 模块 Python subprocess 模块 Python queue 模块 Python StringIO 模块 Python logging 模块 Python datetime 模块 Python re 模块 Python csv 模块 Python threading 模块 Python asyncio 模块 Python PyQt Python for 循环 Python while 循环
(追記) (追記ここまで)

Python 阶乘实例

Document 对象参考手册 Python3 实例

整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,0的阶乘为1。即:n!=×ばつn。

实例

#!/usr/bin/python3# Filename : test.py# author by : www.runoob.com# 通过用户输入数字计算阶乘# 获取用户输入的数字num = int(input("请输入一个数字: "))factorial = 1# 查看数字是负数,0 或 正数ifnum < 0: print("抱歉,负数没有阶乘")elifnum == 0: print("0 的阶乘为 1")else: foriinrange(1,num + 1): factorial = factorial*iprint("%d 的阶乘为 %d" %(num,factorial))

执行以上代码输出结果为:

请输入一个数字: 3
3 的阶乘为 6

Document 对象参考手册 Python3 实例

AI 思考中...

4 篇笔记 写笔记

  1. #0

    shohong

    210***[email protected]

    23

    参考方法:

    #!/usr/bin/python3
    from functools import reduce
    sum=reduce(lambda x,y:x*y,range(1,7))
    print(sum)
    

    shohong

    210***[email protected]

    9年前 (2017年06月07日)
  2. #0
    59

    查了一下 math 库的帮助,发现自带阶乘函数。所以代码可以简洁一点。

    # -*- coding: UTF-8 -*-
    # Filename : factorial.py
    # author : Pt
    import math
    num = int(input("请输入一个数字:"))
    if num < 0:
     print("负数是没有阶乘的!")
    else:
     print("{0} 的阶乘为 {1}".format(num, math.factorial(num)))
    9年前 (2017年10月04日)
  3. #0

    ben

    bj0***[email protected]

    1

    递归实现

    def factorial(n):
     if n > 1:
     return n*factorial(n-1)
     return 1
    while True:
     try:
     n = input("请输入一个数字(输入 q 退出):")
     if n == "q":
     break
     n = int(n)
     if n < 1:
     raise ValueError
     x = factorial(n)
     print(x)
     except ValueError:
     print("不是一个正数")

    ben

    bj0***[email protected]

    8年前 (2018年06月14日)
  4. #0

    teachdark

    101***[email protected]

    68

    学渣观点:

    1.递归实现不可取

    def factorial(n):
     if n > 1:
     return n*factorial(n-1)
     return 1
    while True:
     try:
     n = input("请输入一个数字(输入 q 退出):")
     if n == "q":
     break
     n = int(n)
     if n < 1:
     raise ValueError
     x = factorial(n)
     print(x)
     except ValueError:
     print("不是一个正数")

    超过 1000 的阶乘计算后会报错:

    RecursionError: maximum recursion depth exceeded in comparison

    报错提示:超过最大递归深度

    解决办法:可以修改递归深度的值,让它变大大一点。

    代码看起来很好,但是有个致命问题,你试试看 1000 的阶乘,记得一个经典例题 IBM 出 1000 的阶乘,都说很容易,但是考虑过这数据的存储吗?递归做这种大数字计算感觉不怎么行了。而且有更加简单且有效的方法,python 的特点应该是自带的数学公式。

    2.示例代码,和下面用阶乘函数的代码,实际操作 70000 的阶乘计算速度才受到一些影响,肉眼感觉相差不大。

    3.入门python感觉,python最大的优势还是在于自带的数学计算式,代码的简洁,大数的计算,因此学python应尽可能用数学公式来码代码。 学渣观点,有疑问接受反驳,QQ:1017736803

    teachdark

    101***[email protected]

    7年前 (2019年05月10日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /