Python实验八 函数的应用
1.写出下列程序的运行结果
def foo(num): for j in range(2, num // 2+1): if num % j == 0: return False else: return True def main(): n,c = 8,0 for i in range(2, n+1): if foo(i): c += 1 print(c) if __name__ == __main__: main()
2.写出下列程序的运行结果
def foo(list, num): if num == 1: list.append(0) elif num == 2: foo(list, 1) list.append(1) elif num > 2: foo(list, num-1) list.append(list[-1] + list[-2]) mylist = [] foo(mylist, 10) print(mylist)
3.下列程序的作用是求两个正整数 m,n 的最大公约数,请补充程序
def gcd(m,n): if m<n: m,n=n,m if m%n==0: return n else: return gcd(n,m%n) ans=gcd(84,342) print(ans)
4.计算空间一点 p(x,y,z)的方向弦,其计算公式如下
import math def foo(x,y,z): a=x/math.sqrt(x**2+y**2+z**2) b=y/math.sqrt(x**2+y**2+z**2) c=z/math.sqrt(x**2+y**2+z**2) print(a,b,c) x,y,z=map(int,input().split()) foo(x,y,z)
5.定义一个函数,它返回整数 n 从右边开始数的第 k 个数字
def positive_number(m,n): c=0 while(m>0 and n>0): c=int(m%10) m=int(m/10) n -= 1 if(n==0): return c n=int(input(请输入整数n:)) k=int(input(请输入位置K:)) print(positive_number(n,k))
6.定义一个函数,如果数字 d 在整数 n 的某位中出现,则返回 True,否则返回 False
def fun(d,n): if str(d) in str(n): return True else: return False d=input(请输入d的值:) n=input(请输入n的值:) print(fun(d,n))
7.输入x和n的值,求y值。要求分两种情况实现:直接在程序中定义函数 s(x,n);在模块中定义函数 s(x,n)
import math def s(x,n): s=0 for i in range (1,n+1): fm=1 for j in range(1,i+1): fm*=j s+=(x**2)/fm return s x,n=map(int,input(请输入x和n的值:).split()) y=s(x,n)/(s(x+1.75,n)+s(x,n+5)) print(y)
8.若 Fibonacci 数列的第 n 项记为 fib(a,b,n),则有下面的递归定义,用递归方法求 5000 之内的最大的一项
def fib(a,b,n): if n==1: return a if n==2: return b return fib(b,a+b,n-1) maxitem=0 num=0 i=1 while True: maxitem = fib(1,1,i) if(maxitem>=5000): print(num) break num=maxitem i+=1