仿照求$ \sum_{i=1}^mi + \sum_{i=1}^ni + \sum_{i=1}^ki$的完整代码,写程序,可求m!+n!+k!


In [1]:
def compute_sum(n):
    i=0
    sum=0
    while i<n:
        i=i+1
        sum+=i
    return sum
m=int(input('plz input m: '))
n=int(input('plz input n: '))
k=int(input('plz input k: '))
print(compute_sum(m) + compute_sum(n) + compute_sum(k))


plz input m: 5
plz input n: 4
plz input k: 6
46

写函数可返回1 - 1/3 + 1/5 - 1/7...的前n项的和。在主程序中,分别令n=1000及100000,打印4倍该函数的和。


In [10]:
def compute_sum(n):
    i=0
    total=0
    while i<n:
        i+=1
        if i%2==0:
            total-=1/(2*i-1)
        else:
            total+=1/(2*i-1)
    return total
print(compute_sum(1000))
print('*4: ',4*compute_sum(1000))
print(compute_sum(10000))
print('*4: ',4*compute_sum(10000))


0.7851481634599485
*4:  3.140592653839794
0.7853731633975086
*4:  3.1414926535900345

将task3中的练习1及练习4改写为函数,并进行调用。 练习 1:写程序,可由键盘读入用户姓名例如Mr. right,让用户输入出生的月份与日期,判断用户星座,假设用户是金牛座,则输出,Mr. right,你是非常有性格的金牛座!。 练习 4:英文单词单数转复数,要求输入一个英文动词(单数形式),能够得到其复数形式,或给出单数转复数形式的建议(提示,some_string.endswith(some_letter)函数可以判断某字符串结尾字符,可尝试运行:'myname'.endswith('me'),liupengyuan'.endswith('n'))。


In [13]:
def Constellation(n,m,d):
    if (m>=3 and d>21) or (m<=4 and d<19):
        return (n,'你是白羊座')
    elif (m>=4 and d>20) or (m<=5 and d<20):
            return (n,'你是金牛座')
    elif (m>=5 and d>21) or (m<=6 and d<21):
            return (n,'你是双子座')
    elif (m>=6 and d>22) or (m<=7 and d<22):
            return (n,'你是巨蟹座')
    elif (m>=7 and d>23) or (m<=8 and d<22):
            return (n,'你是狮子座')
    elif (m>=8 and d>23) or (m<=9 and d<22):
            return (n,'你是处女座')
    elif (m>=9 and d>23) or (m<=10 and d<23):
            return (n,'你是天秤座')
    elif (m>=10 and d>24) or (m<=11 and d<23):
            return (n,'你是天蝎座')
    elif (m>=11 and d>23) or (m<=12 and d<21):
            return (n,'你是射手座')
    elif (m>=12 and d>22) or (m<=1 and d<19):
            return (n,'你是摩羯座')
    elif (m>=1 and d>20) or (m<=2 and d<18):
            return (n,'你是水瓶座')
    elif (m>=2 and d>19) or (m<=3 and d<20):
            return (n,'你是双鱼座')
n=str(input('plz input name:'))
m=int(input('plz input birth_mon: '))
k=int(input('plz input birth_day: '))
print(Constellation(n,m,k))


plz input name:jessica
plz input birth_mon: 8
plz input birth_day: 15
('jessica', '你是狮子座')

In [25]:
def Plurality(word):
    if ( word.endswith('ch') or word.endswith('sh') or word.endswith('s') or word.endswith('x') ):
        print(word,'es',sep='')
       
    else:
        print(word,'s',sep='')
w=str(input('plz input a word'))
Plurality(w)


plz input a wordapple
apples

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


In [27]:
def count_sum(m,n,k):
    i=0
    total=0
    while i+k<n:
        i=i+k
        total+=i+k
    return total

m=int(input('plz input m:'))
n=int(input('plz input n:'))
k=int(input('plz input k:'))
print(count_sum(m,n,k))


plz input m:4
plz input n:8
plz input k:2
18