Python 平方根
平方根,又叫二次方根,表示为〔√ ̄〕,如:数学语言为:√ ̄16=4。语言描述为:根号下16=4。
以下实例为通过用户输入一个数字,并计算这个数字的平方根:
实例(Python 3.0+)
# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
num = float(input('请输入一个数字: '))
num_sqrt = num ** 0.5
print(' %0.3f 的平方根为 %0.3f'%(num ,num_sqrt))
执行以上代码输出结果为:
$ python test.py 请输入一个数字: 4 4.000 的平方根为 2.000
在该实例中,我们通过用户输入一个数字,并使用指数运算符 ** 来计算该数的平方根。
该程序只适用于正数。负数和复数可以使用以下的方式:
实例(Python 3.0+)
# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
# 计算实数和复数平方根
# 导入复数数学模块
import cmath
num = int(input("请输入一个数字: "))
num_sqrt = cmath.sqrt(num)
print('{0} 的平方根为 {1:0.3f}+{2:0.3f}j'.format(num ,num_sqrt.real,num_sqrt.imag))
执行以上代码输出结果为:
$ python test.py 请输入一个数字: -8 -8 的平方根为 0.000+2.828j
该实例中,我们使用了 cmath (complex math) 模块的 sqrt() 方法。
Python3 实例
carter
616***04@qq.com
求复数的平方根。
#!/usr/bin/python3 import cmath a = float(input("请输入一个实数字: ")) b = float(input("请输入一个虚数字: ")) num_sqrt = cmath.sqrt(complex(a, b)) print('{0:0.3f}+ {1:0.3f}j 8的平方根为 {2:0.3f}+{3:0.3f}j'.format(a, b, num_sqrt.real, num_sqrt.imag))carter
616***04@qq.com
wamgxiao
229***7876@qq.com
先假设我们会用input读取一个输入,它是一个字符串格式的,然后数字常用的是 有小数点的浮点数float和整型int,再考虑可能输入带负号,那么求出的平方根是复数 complex, 所以可以分类讨论,下面的代码缺点是还没考虑到 long 型的。
可以依次输入 : -2.56 -9 1.44 16 来检验。
def sqrt(): import cmath # # 计算实数和复数平方根# # 导入复数数学模块 isinstance(num , (float,int) ) num = input('输入第一个数字:') if num.__contains__('-') and num.__contains__('.'): # 负数、浮点数 num_sqrt = cmath.sqrt(float(num)) print('{0} 的平方根为 {1:0.3f}+{2:0.3f}j'.format(float(num), num_sqrt.real, num_sqrt.imag)) elif num.__contains__('-'): # # 负数、整数 num_sqrt = cmath.sqrt(int(num)) print('{0} 的平方根为 {1:0.3f}+{2:0.3f}j'.format(int(num), num_sqrt.real, num_sqrt.imag)) else: if num.__contains__('.'): # 非负数、浮点数 整数 num_sqrt = float(num) ** 0.5 print(' %0.3f 的平方根为 %0.3f' % (float(num), num_sqrt)) else: # # 非负数、整数 num_sqrt = int(num) ** 0.5 print(' %0.3f 的平方根为 %0.3f' % (int(num), num_sqrt))wamgxiao
229***7876@qq.com
viki2002
bjz***xiaoyi@163.com
异常报错+正数+负数
import cmath try: num=float(input("请输入一个数字")) except: print("输入的数字格式不正确,退出") else: if num>=0: num_sqrt=num**0.5 print(f"{num}的平方根是{num_sqrt:.3f}") else: num_sqrt=cmath.sqrt(num) print(f"{num}的平方根是{num_sqrt.real:.3f}+{num_sqrt.imag:.3f}j")viki2002
bjz***xiaoyi@163.com
haifanyuntian
142***4308@qq.com
@carter “求复数的平方根”的输入方式和计算结果都是正确的,但是在特殊情况下显示达不到预期效果,比如输入的复数虚部数字是负数,或者计算的结果复数虚部数字是负数,最终打印结果就会存在 a +- bj 情况。
建议代码修改如下:
import cmath a = float(input("请输入复数的实部数: ")) b = float(input("请输入复数的虚部数: ")) z = complex(a, b) num_sqrt = cmath.sqrt(z) print("{0} 的平方根为 {1:.3f}".format(z, num_sqrt))haifanyuntian
142***4308@qq.com