Python教程

基于 Python 的计算思维训练——函数

本文主要是介绍基于 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))))

第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))

这篇关于基于 Python 的计算思维训练——函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!