赞
踩
要求对于输入的a
,b
,c
三个数,编写函数roots(a,b,c)
,求方程 ax2+bx+c=0
的解,返回由方程根构成的列表,若方程有无数解,返回['inf']
。
- # coding:utf-8
- from math import sqrt
- a = float(input()); b = float(input()); c = float(input())
- #请在此添加代码,求方程 ax^2+bx+c = 0的解,返回由方程根构成的列表,若方程有无数解,返回['inf']
- #********** Begin *********#
- x=[]
- def roots(a,b,c):
- if b**2-4*a*c>0:
- x.append((-b+sqrt(b**2-4*a*c))/(2*a))
- x.append((-b-sqrt(b**2-4*a*c))/(2*a))
- return(x)
- elif b**2-4*a*c==0:
- x.append((-b+sqrt(b**2-4*a*c))/(2*a))
- return(x)
- else:
- return(['inf'])
- #********** End **********#
- print (roots(a,b,c))
根据第三关方程求根的例子,我们现在假设一元二次方程 ax2+bx+c=0 的二次项系数 a 不等于 0,此时方程必有两个根。再次编写函数roots(a,b,c)
返回该方程的两个根。
- # coding:utf-8
- from math import sqrt
- a=float(input()); b=float(input()); c=float(input())
- #请在此添加代码,在a不等于0的情况下编写函数求解方程的两个根并将根返回
- #********** Begin *********#
- def roots(a,b,c):
- x1=(-b+sqrt(b**2-4*a*c))/(2*a)
- x2=(-b-sqrt(b**2-4*a*c))/(2*a)
- return(x1,x2)
- #********** End **********#
- if a != 0:
- print (roots(a,b,c))
给定全局变量counter
,初始值设为 0 ,补全函数access
,使得其每被调用一次,counter
的值就增加 1 。
- # coding:utf-8
- counter = 0
- def access():
- #请在此添加代码,实现counter的调用,每次调用counter的值加1
- #********** Begin *********#
- global counter
- counter+=1
- #********** End **********#
- for i in range(5):
- access()
- print (counter)
完成函数diff(f)
,它返回函数f
的导数。
本任务中,Δx
的值取 0.001 ,存放于变量 delX
中。
- # coding:utf-8
- from math import sin, cos
- delX = 0.001
- x = float(input())
- def diff(x):
- #请在此添加代码,求出函数f的导数
- #********** Begin *********#
- return(cos(x))
- #********** End *********#
- print("{:.2f}".format(diff(x)))
本关的编程任务是定义函数solve(),在方程有解的前提下,求解并返回方程的2个根。请补全文件中的代码。
- import math
- #请在此添加代码,定义solve函数,求一元二次方程的的两个根
- #********** Begin *********#
- def solve(a,b,c=-4):
- if b*b-4*a*c>=0:
- d=math.sqrt(b**2-4*a*c)
- x1=(-b+d)/2/a
- x2=(-b-d)/2/a
- return(x1,x2)
- #********** End *********#
- a=eval(input())
- b=eval(input())
- c=eval(input())
- x1, x2 = solve(a, b) #默认第三个参数为-4
- print('x1=%f, x2=%f' % (x1, x2))
编写函数 sum_of_paras(*arg)
,假设限定输入参数类型均为整数,它返回参数列表 arg
中所有数的和。
本关要求学习者直接填入代码,然后运行程序并根据程序输出的结果判断填入的代码是否正确。
- # coding:utf-8
- import random
- from functools import reduce
-
- n = input() # useless
- n = random.randint(5,10)
- L = []
- for i in range(n):
- L.append(random.randint(1,n))
-
- def sum_of_paras(*arg):
- #请在此添加代码,返回参数列表 arg 中所有数的和
- #********** Begin *********#
- return sum(arg)
- #********** End *********#
-
- strcall = "sum_of_paras(";
- strcall += reduce(lambda x, y: x+","+y, [str(s) for s in L])
- strcall +=")"
-
- if eval(strcall) == sum(L):
- print("Y")
- else:
- print("N")
斐波那契数列的是这样一个数列:0、1、1、2、3、5、8、13、21、34....,即第一项 f(1) = 0,第二项 f(2) = 1.....,第 n 项为 f(n) = f(n-1) + f(n-2)。 定义一个函数fib()求斐波那契数列第 n 项的值并返回。
- n=int(input())
- #请在此添加代码,返回斐波拉契数量第n项的值
- #********** Begin *********#
- def fib(n):
- a=0
- b=1
- if n==1:
- return a
- else:
- for i in range(n-1):
- c=a+b
- a=b
- b=c
- return a
- #********** End *********#
- print(fib(n))
重点考察对函数思想的理解,包括系统封装性和模块化思维的掌握。。
求求三连啦。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。