每个题目均为自己设计的代码,优化与重构方面与标准答案可能有所不同。
参考教材:Python程序设计基础与应用(机械工业出版社/董付国)
5-1 编写函数,接收圆的半径作为参数,返回圆的面积。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import math
def areas(r):
# 接收圆的半径r,返回圆的面积
area = math.pi * r * r
print(area)
areas(10)
5-2 编写函数,实现辗转相除法,接受两个整数,返回这两个整数的最大公约数
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def demo(a, b):
# 筛选出a与b的较大数与较小数
m = max(a, b)
n = min(a, b)
r = m % n
# 用辗转相除法求最大公约数
while r != 0:
m = n
n = r
r = m % n
print("{0}与{1}的最大公约数为{2}".format(a, b, n))
demo(12, 64)
5-3 编写函数,接收参数a和n,计算并返回形式如a+aa+aaa+aaaa+···+aaa···aaa的表达式前项的值,其中a为小于10的自然数。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def demo(a, n):
# 计算a+aa+aaa+...+aaa...aaa的前n项值(其中a小于10)
if a > 10:
print("请输入小于10的自然数")
else:
# 计算前n项值
result = 0
b = 0
for i in range(n):
b = a + b*10
result += b
print(result)
demo(6, 10)
5-4 编写函数,接受一个字符串,判断该字符串是否为回文。所谓回文是指,从前向后读和从后向前读是一样的。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def demo(a):
length = len(a)
# 倒序进行对比
if a == a[::-1]:
print("这是回文。")
else:
print("这不是回文。")
demo("computer")
demo("abcba")
5-5 编写函数,模拟标准库itertools中的cycle()函数的功能。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def cycle(a):
# 生成器依次生成每个字母
while True:
for item in a:
yield item
b = cycle("computer")
# 这里重复16次,即打印2次computer
for i in range(16):
print(next(b))
5-6 编写函数,模拟标准库itertools中count()函数的功能。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def count(a):
# 编写自定义的count()函数
b = {}
for i in a:
if i not in b:
b[i] = 1
else:
b[i] += 1
for i in b:
print(str(i) + '的个数为:' + str(b[i]))
list_1 = [1, 2, 5, 5, 3, 3, 5, 7, 7, 9]
count(list_1)
5-7 编写函数,模拟内置函数reversed()的功能。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def count(a):
# 编写自定义的count()函数
b = {}
for i in a:
if i not in b:
b[i] = 1
else:
b[i] += 1
for i in b:
print(str(i) + '的个数为:' + str(b[i]))
list_1 = [1, 2, 5, 5, 3, 3, 5, 7, 7, 9]
count(list_1)
5-8 编写函数,模拟内置函数all()的功能
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def all(a):
# 模拟函数all()
for i in a:
if not i:
return False
return True
# 举两个例子测试
example_1 = all([0, 1, 2])
print(example_1)
example_2 = all([4, 1, 2])
print(example_2)
5-9 编写函数,模拟内置函数any()的功能。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def any(a):
# 模拟函数any()
for i in a:
if i:
return True
return False
# 举两个例子测试
example_1 = any([0, 1, 2])
print(example_1)
example_2 = any([4, 1, 2])
print(example_2)