Discuss / Python / 请教个关于作业的问题

请教个关于作业的问题

Topic source

import math def quadratic(a,b,c): derta = b*2-4ac if derta < 0: return 'no value' elif derta> 0: return x1,x2 else: return 'null' x1=(-b+math.sqrt(derta))/(a2) x2=(-b-math.sqrt(derta))/(a*2) print('请依次输入a,b,c的值,求解该一元二次方程的解:') a = float(input('请输入a的值:')) b = float(input('请输入b的值:')) c = float(input('请输入c的值:')) r = quadratic(a,b,c) print('第一个解为:',r[0]) print('第二个解为:',r[1]) 刚刚接触python,看了下其他人的代码,为什么在运行时会提示“ local variable 'x1' referenced before assignment”??请各位大神给个解决方法

*咋被自动删除了??

yun___雲

#3 Created at ... [Delete] [Delete and Lock User]

你没发现你的代码少了部分乘号吗?还有x1和x2的函数放错位置了。(如果derta=0,其实还是有一个解的) 这个是修正后的:

# -*- coding: utf-8 -*-
import math
def quadratic(a,b,c):
    derta = b**2-4*a*c
    if derta < 0:
        return 'no value'
    elif derta> 0:
        x1=(-b+math.sqrt(derta))/(a*2)
        x2=(-b-math.sqrt(derta))/(a*2)
        return x1,x2
    else:
        return 'null'


print('请依次输入a,b,c的值,求解该一元二次方程的解:')
a = float(input('请输入a的值:'))
b = float(input('请输入b的值:'))
c = float(input('请输入c的值:'))
r = quadratic(a,b,c)
print('第一个解为:',r[0])
print('第二个解为:',r[1])

多谢指教。。。乘号应该是发帖时被吞了。。。

AzioAuditore

#5 Created at ... [Delete] [Delete and Lock User]

很奇怪啊 为什么会在return x1,x2那里报Invalid syntax呢


  • 1

Reply