In [15]:
def compute_multi(end):
    i=0
    tatal_n=0
    
    while i<end:
        i+=1
        total_n=total_n*i
    return total_n
n = int(input('请输入第1个整数,以回车结束:'))
m = int(input('请输入第2个整数,以回车结束:'))
k = int(input('请输入第3个整数,以回车结束:'))

print('最终的和是:', compute_sum(m) + compute_sum(n) + compute_sum(k))


请输入第1个整数,以回车结束:9
请输入第2个整数,以回车结束:8
请输入第3个整数,以回车结束:7
最终的和是: 109

In [3]:
#练习 2:写函数可返回1 - 1/3 + 1/5 - 1/7...的前n项的和。
#在主程序中,分别令n=1000及100000,打印4倍该函数的和。
def compute_sum(end):
    i=0
    total_n=0
    while i<end:
        i+=1
        total_m=((-1)**(i+1))/(2*i+1)
        total_n=total_n+total_m
    return total_n
a=4*compute_sum(1000)
b=4*compute_sum(100000)
print('当n=1000时,4倍该函数的和为:',a)
print('当n=100000时,4倍该函数的和为:',b)


当n=1000时,4倍该函数的和为: 0.8574083456604576
当n=100000时,4倍该函数的和为: 0.858397346510219

In [4]:
#练习 3:将task3中的练习4改写为函数,并进行调用。
#练习4:#英文单词单数转复数,要求输入一个英文单词(单数形式),能够得到其复数形式,或给出单数转复数形式的建议
#(提示,some_string.endswith(some_letter)函数可以判断某字符串结尾字符)。

def string_end(word):
    if word.endswith('x') or word.endswith('ch') or word.endswith('s') or word.endswith('o'):
        print(word,'es',sep='')
    elif word.endswith('y'):
        print('变y为i再加es')
    elif word.endswith('y'):
        print(word[:-1],'ies',sep='')
    else:
        print(word,'s',sep='')
word=input('请输入一个英文单词')
string_end(word)


请输入一个英文单词help
helps

In [5]:
#将task3中的练习1改写为函数,并进行调用。

def xingzuo_time(end):
    if 3.21<=date<=4.19:
        print(name,',你是有个性的白羊座')
    elif 4.20<=date<=5.20:
        print(name,',你是有个性的金牛座')
    elif 5.21<=date<=6.21:
        print(name,',你是有个性的双子座')
    elif 6.22<=date<=7.22:
        print(name,',你是有个性的巨蟹座')
    elif 7.23<=date<=8.22:
        print(name,',你是有个性的狮子座')
    elif 8.23<=date<=9.21:
        print(name,',你是有个性的处女座')
    elif 9.22<=date<=10.23:
        print(name,',你是有个性的天秤座')
    elif 10.24<=date<=11.22:
        print(name,',你是有个性的天蝎座')
    elif 11.23<=date<=12.21:
        print(name,',你是有个性的射手座')
    elif 12.22<=date<=12.31 and 0<date<=1.19:
        print(name,',你是有个性的摩羯座')
    elif 1.20<=date<=2.18:
        print(name,',你是有个性的水瓶座')
    elif 2.19<=date<=3.10:
        print(name,',你是有个性的双鱼座')

name=input('请输入你的名字')
date=float(input('请输入你的出生月份和日期,以xx.xx的形式,以回车结束'))
xingzuo_time(date)


请输入你的名字licia
请输入你的出生月份和日期,以xx.xx的形式,以回车结束11.11
licia ,你是有个性的天蝎座

In [7]:
#挑战性练习:写程序,可以求从整数m到整数n累加的和,间隔为k,求和部分需用函数实现,主程序中由用户输入m,n,k调用函数验证正确性。

def compute_sum(sum):
    sum=0
    i=m
    while n>=i:
        sum=sum+i
        i=i+k
    print(sum)
m = int(input('请输入第1个整数,以回车结束:'))
n = int(input('请输入第1个比m大的整数,以回车结束:'))
k = int(input('请输入第1个整数,以回车结束:'))
compute_sum(sum)


请输入第1个整数,以回车结束:2
请输入第1个比m大的整数,以回车结束:6
请输入第1个整数,以回车结束:2
12