Python编程序设计基础与应用答案3


每个题目均为自己设计的代码,优化与重构方面与标准答案可能有所不同。

​ 参考教材: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)

文章作者: 陈细利
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 陈细利 !
评论
 上一篇
Python编程序设计基础与应用答案4 Python编程序设计基础与应用答案4
每个题目均为自己设计的代码,优化与重构方面与标准答案可能有所不同。 ​ 参考教材:Python程序设计基础与应用(机械工业出版社/董付国) 第六章6-2拓展本章的例6-4,为向量类增加计算内积的功能。 #!/usr/bin/e
下一篇 
Python编程序设计基础与应用答案1 Python编程序设计基础与应用答案1
每个题目均为自己设计的代码,优化与重构方面与标准答案可能有所不同。 ​ 参考教材:Python程序设计基础与应用(机械工业出版社/董付国) 3-13编写程序,让用户在键盘上输入一个自然数n,然后在区间【1,5n】上随机生成n个
  目录