数据结构与算法:Python语言实现--Python入门 数据结构与算法 Python 语言实现 课后答案

说明

'''
这是《数据结构与算法 Python 语言实现》 (古德里奇)版,每一章书后习题和自己的一些解答,、
我已经买了这本书,因为想在看完每一章后,完成习题,所以记录下来!
这篇文章是第一章的习题内容!因为题目太长,懒得自己书写,我拍下了习题,并且直接用截图作为题目!
'''

巩固题

编写一个Python函数 is_multiple(n, m),用来接收两个整数值 n 和 m,
如果 n 是 m 的倍数,即存在整数 i 使得 n = mi,那么函数返回 True,否则返回 False

def is_multiple(n, m):
    return (n % m == 0)

print(is_multiple(4, 2))

不能用乘法、除法、取余的操作来判断传入的数是偶数(返回Ture)

def is_even(k):
    return (k & 1 == 0)


print(is_even(5))
# 用减法?
def is_even(k):
    k = abs(k)
    while k > 1:
        k = k - 2
    return (k == 0)


print(is_even(10))

传入一个序列,找出其中最大和最小的值,并以一个长度为2的元组形式返回,不能使用max和min

def minmax(data):
    small = big = data[0]  # 假设非空
    for val in data:
        if val < small:
            small = val
        if val > big:
            big = val
    return small, big


print(minmax([1, 2, 5, 8, 6])) # 结果:(1,8)

接受一个正整数n,返回1~n的平方和

def sum_of_squares(n):
    total = 0
    for j in range(1, n + 1):
        total += j * j
    return total


print(sum_of_squares(5)) # 55
# 用推导式来写
def sum_of_squares(n):
    return sum(j * j for j in range(1, n + 1))


print(sum_of_squares(5)) # 55

接受一个正整数n,返回1~n中奇数的平方和

def sum_of_squares(n):
    total = 0
    for j in range(1, n + 1, 2): # 隔两个取一个,从1开始数
        total += j * j
    return total


print(sum_of_squares(5))
def sum_of_squares(n):
    return sum(j * j for j in range(1, n + 1, 2))


print(sum_of_squares(5))

在这里插入图片描述

li = [1, 2, 5, 6, 8]
print(len(li))  # 5

print(li[-4])  # 2

print(li[len(li)+(-4)]) # 2

索引规律为:负值+序列长度 即是: k+n

在这里插入图片描述

# 虽然很简单,但是“前开后闭”很容易错
range(50,81,10)

在这里插入图片描述

for i in range(8, -10, -2):
    print(i, end=" ") 

在这里插入图片描述

def get_num(n):
    return [2 ** i for i in range(n)]


print(get_num(9))

在这里插入图片描述

import random

def choice(data):
    return data[random.randrange(len(data))]


print(choice([1, 2, 3, <
  • 18
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值