Python求绝对值

img

img


用户输入一个数字n,输出n的绝对值,要求保持输出结果与输入数据的类型相同,


def abs(num,t=False):
    for i in num:#遍历num(此时num为str)
        if i == '.':
            num = float(num)#当num含有'.'时 说明num为float
            t = True
    if t != True:#当遍历完后t仍为False则为int
        num = int(num)
    if num >= 0.0:#当num>=0时 则直接返回num
        return num
    else:#若不是 则返回0-num(就是-num)
        return 0 - num
num = input()
print(abs(num))
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7807616
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Python练习题——输入一个列表和n值,返回列表中大于n的值
  • 除此之外, 这篇博客: Python 传入一个参数n,返回n的阶乘中的 一、使用简单的循环 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 使用 for 循环,并定义一个 num=1 的变量,根据这个变量一个一个阶乘

        def cal_one(n):
            if n == 1:return 1          # 如果n是1的话,直接返回1即可,1的阶乘还是1
            elif n ==0:return 0         # 同理,直接返回0
            num = 1
            for i in list(range(1,n+1)):
                num *= i
            return num
    	print(cal_one(7))
    
  • 您还可以看一下 武沛齐-银角大王老师的彻底学会Python装饰器课程中的 装饰器优化支持n个参数小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    答案:

    可以使用Python内置的abs()函数来求一个数的绝对值,并保持输出结果与输入数据的类型相同。例如:

    num = -5
    abs_num = abs(num)
    print(type(num))  # <class 'int'>
    print(type(abs_num))  # <class 'int'>
    
    num = -3.14
    abs_num = abs(num)
    print(type(num))  # <class 'float'>
    print(type(abs_num))  # <class 'float'>
    

    输出结果分别为:

    <class 'int'>
    <class 'int'>
    <class 'float'>
    <class 'float'>
    

    说明输入数据的类型和输出结果的类型相同。

    如果要自己实现绝对值函数,可以使用条件表达式,如下所示:

    def my_abs(x):
        return x if x >= 0 else -x
    
    num = -5
    abs_num = my_abs(num)
    print(type(num))  # <class 'int'>
    print(type(abs_num))  # <class 'int'>
    
    num = -3.14
    abs_num = my_abs(num)
    print(type(num))  # <class 'float'>
    print(type(abs_num))  # <class 'float'>
    

    参考资料中介绍了Python中的几种可变类型,但并没有与题目直接相关的答案。关于Python的开源框架,参考资料中提供了七种框架的优缺点,供读者了解参考。