头歌-Python之函数综合实训

第1关:第一个函数

# coding:utf-8 
 
deg = float(input())
 
def F(C):
#请在此添加代码,将摄氏度deg转换为华氏度
#********** Begin *********#
    f=int(C)*(9.0/5)+32#*9.0才可以*#
    return f
 
#**********  End  *********#
 
print ("%.2f" %(F(deg)))

第2关:在函数中修改全局变量

# coding:utf-8 
 
counter = 0
 
def access():
#请在此添加代码,实现counter的调用,每次调用counter的值加1
#********** Begin *********#
  global counter
  counter+=1
  return counter
 
#********** End **********#
  
for i in range(5):
  access()
  
print (counter)

第3关:练习使用参数

# coding:utf-8 
from math import sqrt
 
a = float(input()); b = float(input()); c = float(input())
 
def roots(a,b,c):
#请在此添加代码,求方程 ax^2+bx+c = 0的解,返回由方程根构成的列表,若方程有无数解,返回['inf']
#********** Begin *********#
    if (b**2-4*a*c)<0:
        return ['inf']
    else:
        x1=((-b)+sqrt(b**2-4*a*c))/(2*a)
        x2=((-b)-sqrt(b**2-4*a*c))/(2*a)
    if x1==x2:
        return [x1]
    else:
        return [x2]
 
 
 
 
#********** End **********#
print (roots(a,b,c))

第4关:具有多个返回值的函数

# coding:utf-8
from math import sqrt
 
a=float(input()); b=float(input()); c=float(input())
 
def roots(a, b, c):
#请在此添加代码,在a不等于0的情况下编写函数求解方程的两个根并将根返回
#********** Begin *********#
    if (b**2-4*a*c)<0:
        return ['inf']
    else:
        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))

第5关:Lambda 表达式

# coding:utf-8
from math import sin, cos
delX = 0.001
 
x = float(input())
b=x
def diff(f):
#请在此添加代码,求出函数f的导数
#********** Begin *********#
    global b#
    global delX
    a=lambda b,delX:((sin(b+delX)- sin(b-delX)))*1.000/(2.0*delX)
    return a(b,delX)
 
 
#**********  End  *********#
 
print("%.2f"%(diff(sin(x))))

第6关:使用关键字参数

# coding:utf-8 
from math import *
delX=0.01
 
x = float(input())
b=x
#请在此添加代码,自行定义diff函数并实现此函数
#********** Begin *********#
def diff(f):
    global b#
    global delX
    a=lambda b,delX:((sin(b+delX)- sin(b-delX)))*1.000/(2.0*delX)
    return a(b,delX)
#********** End **********#
 
print("%.6f"%(diff(sin(x))))

第7关:使用可变长参数

第8关:使用递归

# coding:utf-8
 
 
Lst = input()
Lst = Lst.split(',')
 
def abs_sum(L):
#请在此添加代码,以递归的方式设计函数abs_sum(L)返回列表L(假设其中全是整数)中所有整数绝对值之和
#********** Begin *********#
    sum=0
    for i in L:
        i=int(i)
        if i>=0:
            sum=sum+i
            continue
        else:
            sum=sum+(-1)*i
    return sum
 
 
 
#**********  End  *********#
 
print(abs_sum(Lst))

第9关:生成器与 yield

# coding:utf-8
from math import sqrt
 
def Vieta(i):
#请在此输入代码
#********** Begin *********#
    if i==0:
        return sqrt(2)/2
    else:
        return sqrt(2+2*Vieta(i-1))/2
 
#**********  End  *********#
 
N = int(input())
v = Vieta(0); p = 1.0
 
for i in range(N+1):
#请在此输入代码
#********** Begin *********#
    p=p*Vieta(i)
 
#**********  End  *********#
 
print ("%.6f"%(2.0/p))

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值