练习 1:仿照求$ \sum_{i=1}^mi + \sum_{i=1}^ni + \sum_{i=1}^ki$的完整代码,写程序,可求m!+n!+k!
In [2]:
def compute_multi(end):
i = 0
multi = 1
while i < end:
i = i + 1
multi = multi * i
return multi
n = int(input('请输入第1个整数,以回车结束。'))
m = int(input('请输入第2个整数,以回车结束。'))
k = int(input('请输入第3个整数,以回车结束。'))
print('最终的和是:', compute_multi(m) + compute_multi(n) + compute_multi(k))
练习 2:写函数可返回1 - 1/3 + 1/5 - 1/7...的前n项的和。在主程序中,分别令n=1000及100000,打印4倍该函数的和。
In [3]:
def compute_sum(end):
a = 1
total = 0
x = 0
while a < n:
if a % 2 == 0:
x = - 1 / (2*a-1)
else:
x = 1 / (2*a-1)
a = a + 1
total = total + x
return total
n=int(input('你想输入的数是1000还是100000:'))
print('1-1/3+1/5-1/7...的4倍是:',4*compute_sum(n))
练习 3:将task3中的练习1及练习4改写为函数,并进行调用。
改写第三周练习 1:写程序,可由键盘读入用户姓名例如Mr. right,让用户输入出生的月份与日期,判断用户星座,假设用户是金牛座,则输出,Mr. right,你是非常有性格的金牛座!。
In [4]:
def xingzuo(month,date):
if month == 3:
if date >=21:
print(name,',你是白羊座。')
else:
print(name,',你是双鱼座。')
elif month == 4:
if date >= 20:
print(name,',你是金牛座。')
else:
print(name,',你是白羊座。')
elif month == 5:
if date >= 21:
print(name,',你是双子座。')
else:
print(name,',你是金牛座。')
elif month == 6:
if date >= 22:
print(name,',你是巨蟹座。')
else:
print(name,',你是双子座。')
elif month == 7:
if date >= 23:
print(name,',你是狮子座。')
else:
print(name,',你是巨蟹座。')
elif month == 8:
if date >= 23:
print(name,',你是处女座。')
else:
print(name,',你是狮子座。')
elif month == 9:
if date >= 23:
print(name,',你是天秤座。')
else:
print(name,',你是处女座。')
elif month == 10:
if date >= 24:
print(name,',你是天蝎座。')
else:
print(name,',你是天秤座。')
elif month == 11:
if date >= 23:
print(name,',你是射手座。')
else:
print(name,',你是天蝎座。')
elif month == 12:
if date >= 22:
print(name,',你是摩羯座。')
else:
print(name,',你是射手座。')
elif month == 1:
if date >= 20:
print(name,',你是水瓶座。')
else:
print(name,',你是摩羯座。')
elif month == 2:
if date >= 19:
print(name,',你是双鱼座。')
else:
print(name,',你是水瓶座。')
return xingzuo
#主程序
name=input('请输入你的姓名,回车结束:')
print(name,'你好!')
a=int(input('请输入你的出生月份,回车结束:'))
b=int(input('请输入你的出生日期,回车结束:'))
xingzuo(a,b)
Out[4]:
改写第三周练习 4:英文单词单数转复数,要求输入一个英文动词(单数形式),能够得到其复数形式,或给出单数转复数形式的建议(提示,some_string.endswith(some_letter)函数可以判断某字符串结尾字符)。
In [2]:
def ciwei(a):
if a.endswith('o'):
print(s,'加es')
elif a.endswith('ch') or s.endswith('sh'):
print(s,'加es')
else:
print(s,'加s')
#主程序
s=input('请输入一个英文单词,回车结束')
ciwei(s)
挑战性练习:写程序,可以求从整数m到整数n累加的和,间隔为k,求和部分需用函数实现,主程序中由用户输入m,n,k调用函数验证正确性。
In [ ]:
def compute_sum(end):
total = 0
i = 0
while i < end:
i =+ k
total =+ i
return total
#主程序
m = int(input('请输入一个较小的整数'))
n = int(input('请输入一个较大的整数'))
k = int(input('求和间隔是'))
print(compute_sum(n)-compute_sum(m))
In [ ]:
In [ ]: