Python实验之——函数

  1. 编写一个函数 sumN(n),返回前 n 个自然数的立方和。
def sumN(n):
    sum=0
    if n>=1:
        for i in range(1,n+1):
            sum +=i*i*i
    return sum

print(sumN(3))
结果:
36

进程已结束,退出代码0

2.2. 编写一个函数计算下面的数列。
m(i) = 1/2 + 2/3 + … + i/( i+1)

def sumMI(i):
    sum=0
    if i>=1:
        for n in range(1,i+1):
            sum +=n/(n+1)
    return sum

print(sumMI(3))
结果:
1.9166666666666665

进程已结束,退出代码0

3.编写一个函数,以某一年为参数,返回该年的天数。编写一个测试程序,显示从 2010 年到 2020 年每年的天数。

def sumDays(year):
    sum=0
    if (year%400==0 or (year%4==0 and year%100!=0)):
            sum =366
    else:
        sum=365
    return sum
for y in range (2010,2021):
    print(sumDays(y))
结果:
365
365
366
365
365
365
366
365
365
365
366

进程已结束,退出代码0

4.如果一个素数可以写成 2的p次方-1 的形式,其中 p 为一个正整数,那么这个数被称作梅森素数。编写程序找出所有的 p <= 31 的梅森素数。

def sushu(n):
    k=1
    for i in range(2,n):
      if a%i==0:
         k=0
         return False
    if k==1:
         return True


p=1
while p<=31:
    a=(2**p)-1
    p+=1
    if sushu(a):
        print(a,end=',')

结果:
在这里插入图片描述
5.神奇的 Collatz 序列。编写一个名为 collatz 的函数,它接收一个名为 number 的整数参数,如果 number是偶数,就打印 number//2,并返回该值。否则打印 3*number+1 并返回。同时编写主程序,让用户输入一个整数,并不断地调用该函数(用第一次的返回值做第二次的参数,以此类推),直到函数返回 1.例如用户输入 3,则输出应依次为 10 5 16 8 4 2 1.

def collatz(number):
    if number%2==0:
      a=number//2
      print(a)
      return a
    else:
      b=3*number+1
      print(b)
      return b



def main():
 num=eval(input("请输入一个整数:"))
 while 1:
    num=collatz(num)
    if num == 1:
      break
    
main()

结果:
在这里插入图片描述
6.编写一个程序用 turtle 显示 sin 函数图像(至少画出两个周期)。

import turtle
import math

turtle.speed(1)

# 画 x 轴
turtle.penup()
turtle.goto(-220, 0)
turtle.pendown()
turtle.goto(220, 0)

# 画 x 轴箭头
turtle.setheading(150)
turtle.forward(20)
turtle.penup()
turtle.goto(220, 0)
turtle.setheading(-150)
turtle.pendown()
turtle.forward(20)

# 显示x
turtle.penup()
turtle.goto(225, 0)
turtle.write('X')

# 画 y 轴
turtle.penup()
turtle.goto(0, -100)
turtle.pendown()
turtle.goto(0, 100)

# 画 y 轴箭头
turtle.setheading(240)
turtle.forward(20)
turtle.penup()
turtle.goto(0, 100)
turtle.pendown()
turtle.setheading(-60)
turtle.forward(20)

# 显示Y
turtle.penup()
turtle.goto(0, 110)
turtle.write('Y')

# 画正弦曲线
x = -175
turtle.pensize(2)
turtle.color('blue')
turtle.penup()
turtle.goto(x, 50 * math.sin((x / 100) * 2 * math.pi))
turtle.pendown()
for x in range(-175, 176):
    turtle.goto(x, 50 * math.sin((x / 100) * 2 * math.pi))

# 将-2π的位置标示出来
turtle.penup()
turtle.goto(-100, -20)
turtle.write('-2π')

# 将2π的位置标示出来
turtle.penup()
turtle.goto(100, -20)
turtle.write('2π')
turtle.hideturtle()
turtle.done()

结果:
在这里插入图片描述

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值