- 编写一个函数 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()
结果: