【Python练习笔记二】

  1. 写一个实现四舍五入的函数
"""
写一个四舍五入的函数
"""
def round_number(a_number):
    if type(a_number) is int:
        return a_number
    elif a_number< 0:
        return int(a_number-0.5)
    elif a_number >= 0:
        return int(a_number+0.5)


if __name__== '__main__':
    while True:
        a_number = eval(input("请输入一个数字: "))
        # print(a_number)
        try:
            result = round_number(a_number)
            print(result)
        except ValueError:
            print("请输入一个数字!!!")
  1. round()函数四舍五入

python中round()函数的用法 round(number, pos)
number需要进行四舍五入的数字。
pos指定的位数,按此位数进行四舍五入。

官方解释

def round(*args, **kwargs): # real signature unknown
    """
    Round a number to a given precision in decimal digits.
    
    The return value is an integer if ndigits is omitted or None.  Otherwise
    the return value has the same type as the number.  ndigits may be negative.
    """
    pass

round()如果只有一个数作为参数,不指定位数的时候:返回的是一个整数,而且是最靠近的整数,相当于四舍五入。但是当出现小数.5的时候,两边的距离都一样,round()取靠近的偶数。
当指定取舍的小数点位数的时候:一般情况也是使用四舍五入的规则,但是碰到小数.5的这样情况,如果要取舍的位数前的小数是奇数,则直接舍弃,如果偶数这向上取舍。

num = 552.7536
print(round(num, 1))
print(round(num, 2))
print(round(num, 3))
print(round(num, 4))
print(round(num, 0))
print(round(num, -1))
print(round(num, -2))
print(round(num))
print('----------------')
print(round(22.358, 1))
print(round(22.358, 2))
print(round(22.358, 3))
print(round(22.358, 0))
print(round(22.358))
print('----------------------')

print(round(22.675, 2))	
print(round(8.675, 2))
print(round(2.675, 2))


### output
552.8
552.75
552.754
552.7536
553.0
550.0
600.0
553
----------------
22.4
22.36
22.358
22.0
22
----------------------
22.68
8.68
2.67

但有时会出现一些奇怪的现象;

print(round(22.675, 2))	
print(round(8.675, 2))
print(round(2.675, 2))
### output 就很奇特,尽量只用round(num),四舍五入保留整数
22.68
8.68
2.67

round()函数虽然和python版本有关,但round(2.675, 2) 的结果,不论我们从python2还是3来看,结果都应该是2.68的,结果它偏偏是2.67,为什么?这跟浮点数的精度有关。我们知道在机器中浮点数不一定能精确表达,因为换算成一串1和0后可能是无限位数的,机器已经做出了截断处理。那么在机器中保存的2.675这个数字就比实际数字要小那么一点点。这一点点就导致了它离2.67要更近一点点,所以保留两位小数时就近似到了2.67。
这一点需要注意

  1. 局部变量local和全局变量global
    在这里插入图片描述在这里插入图片描述尽量不要global来把局部变量变为全局变量,否则在大型程序中容易出错

  2. 获取ascll码的函数ord()

格式:ord(“字符串“)
说明: 函数返回值类型为 int类型
例如 : ord(“0”),结果显示:48

可根据ascll码分别统计出一行字符中的英文字母、空格、数字和其它字符的个数。

  1. python 中常用数学函数
    math.dist()
    Python中的方法用于计算两个点p和q之间的欧几里得距离,每个点以坐标序列(或可迭代)给出。这两个点必须具有相同的尺寸。此方法是Python版本3.8中的新增功能。
    用法: math.dist(p, q)
    参数:
    p:代表第一个点的坐标序列或可迭代
    q:代表第二点的坐标序列或可迭代
    返回:计算出的给定点之间的欧几里得距离。

猜你喜欢

转载自blog.csdn.net/zhiqingAI/article/details/126558691
今日推荐