数据结构与算法: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)
zeromemory函数是什么功能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,4]))# 结果是从列表中随机选择⼀个数创新题
二叉树的对称序列是什么意思def has_odd_pair(data):
count =0
for j in range(len(data)):
if data[j]%2==1:
count +=1
if count ==2:
return True
return False
print(has_odd_pair([5,1,3,6]))
# 乘积要是奇数,奇数个数必须⾄少有两个
# 让后⼀个数和前⾯的数⼀次进⾏⽐较,类似冒泡排序
python编程基础教程课后答案def distinct(data):
for k in range(1,len(data)):
for j in range(k):
if data[j]== data[k]:
return False
return True
print(distinct([1,3,6,5,4]))# True
print(distinct([1,3,6,3,4]))# False
lis=[i*(i+1)for i in range(0,10)]
print(lis)
Alphabet =[chr(k)for k in range(97,123)]
print(Alphabet)
# 法⼆
Alphabet =list(map((lambda x:chr(ord('a')+ x)),range(26)))
print(Alphabet)
'''
Hint:
Consider randomly swapping an element to the first position,
then randomly swapping a remaining element to the second position, and so on.
jquery非空验证'''
# 翻转 reversed 列表才有
lines =[]
while True:
try:
single =input()
lines.append(single)
except EOFError:
# 出现“EOFError Python”,就意味着发现了⼀个不期望的⽂件尾,⽽这个⽂件尾通常是Ctrl-d引起的break
print('\n'.join(reversed(lines)))
'''
fjsd
fasdf
asdfwe
浪琴男表^D # 结束
asdfwe
fasdf
fjsd
springbatch写数据库d
'''
return[a[k]*b[k]for k in range(n)]
def get_num(a, b):
import numpy as np
return np.array(a)* np.array(b)
a =[1,2,3]
b =[4,5,6]
print(get_num(a ,b))
def get_erro(data, i):
try:
return data[i]
except IndexError:
print("Don't try buffer overflow attacks in Python!")
data =[1,2,3]
get_erro(data,3)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论