当前位置:首页 » 《随便一记》 » 正文

从0开始学Python(二、数字的美)_Kinght_123的博客

3 人参与  2022年05月15日 09:10  分类 : 《随便一记》  评论

点击全文阅读


目录

    • 一、数值类型
    • 二、基本运算的函数
    • 三、数学函数模块math
    • 四、随机函数random模块
    • 五、关于算法的小知识
      • 5.1pow(x, y)函数的内部逻辑实现
      • 5.2关于sqrt(x)函数的内部逻辑实现

一、数值类型

在Python3.x种有三种数值类型,分别是:整形(int),浮点型(float),复数(comlpex),如果你使用的还是低版本Python2.x,那么还包括长整型(long)

整形(int)

包括正整数、负整数。如:10,-10.整数有四种进制可以表示。分别位:二进制、八进制、十进制、十六进制。

种类描述引导符
二进制由0和1组成0b或0B
八进制由0到7组成0o或0O
十进制默认情况为十进制
十六进制由0到9,a到f,A到F组成,不区分大小写0x或0X

浮点型

由整数部分和小数部分组成。例如:1.23、3.14。

复数

由实数部分和虚数部分组成。例如:5+4i、6-i

二、基本运算的函数

函数描述
abs(x)x的绝对值
int(x)将x转换为整数
float(x)将x转换为浮点数
complex(x, y)一个带有实部x和虚部y的复数,默认y为0
divmod(x, y)计算(x // y, x % y)的数值
pow(x, y)x的y次幂

三、数学函数模块math

要想使用数学模块math,首先需要导入math模块:

import math

引入之后我们就可以使用了,

import math
mth.sqrt(27)

math模块中的一些函数

函数描述
ceil(x)返回x的上整数,比如math.ceil(1.3),返回2
floor(x)返回x的下整数,比如math.ceil(1.6),返回1
exp(x)返回e的x次幂
math.log(x[, base])返回以base为底x的对数
log10(x)返回以10为底x的对数
sqrt(x)返回x的平方根
factorial(x)返回x的阶乘

四、随机函数random模块

首先导入random模块:

import random

random(x)函数

随机生成一个0到1的范围内的实数。

a = random(31)
prrint(a)

uniform(x, y)函数

随机生成一个x到y范围内的实数

import random
random.uniform(1,25)

注意: 都是左开右闭的区间。

五、关于算法的小知识

5.1pow(x, y)函数的内部逻辑实现

通过分而治之的方法————划分成递归的子问题

def pow(x, y):  # 计算x的y次幂
    if y == 0:  # 任何数字的0次幂都为1
        return 1
    if y >= 0:  # 如果幂y为正数
        y1 = pow(x, y // 2)  # 划分y的数值
        if y % 2 == 0:  # 如果y为偶数
            return y1 * y1
        else:  # 如果y为奇数
            return y1 * y1 * x
    else:
        return 1.0 / (pow(x, -y))

5.2关于sqrt(x)函数的内部逻辑实现

通过高中学过的二分法来进行实现。

实现算术平方根的计算(返回结果为整数)

def sqrt(x):  # 计算x的算术平方根
    left, right, ans = 0, x, 0.0  # 左边界,右边界,最终结果
    while left <= right:  # 当左边界小于等于右边界
        mid = (left + right) // 2  # 计算中间的数值
        if mid * mid <= x:
            ans = mid  # 存储结果
            left = mid + 1  # 左边界右移
        else:
            right = mid - 1  # 右边界左移
    return ans

实现算术平方根的计算(返回结果为整数)

牛顿迭代法来计算:

以上公式接受一个值n,并且通过再每一次迭代中将newguess赋值给oldguess来反复猜测平方根。大概反复迭代20次左右返回的就是n的平方根。

def sqrt(n):
    Newguess = n / 2
    for k in range(20):
        Newguess = (1 / 2) * (Newguess + n / Newguess)
    return Newguess

点击全文阅读


本文链接:http://zhangshiyu.com/post/40175.html

函数  平方根  返回  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1