这个博客权当我自己的学习记录,所以参考一些网上的代码 数据结构与算法Python语言实现第一章课后习题(完整篇)_王胖子总叫我减肥的博客-优快云博客 这位大牛的代码让我获益良多,感谢感谢。
1.1
def is_multiple(n,m):
if n%m==0:
return True
else:
return False
print(is_multiple(12,5))
1.2
def is_even(num):
num=str(num)
unit=num[-1]
if unit in ['0','2','4','6','8']:
return True
else:
return False
print(is_even(47))
1.3自己的思路
做这道题一定要注意的是列表中的数据是什么格式,如果是int,没问题,如果是字符串格式的,进入if判断前必须先转换为int格式,否则比出来的结果是不对的,字符串在内存中也有一个值 ,如果不转换,比的就是它的值。
def maxmin(data):
length=len(data) #6
max_num=0
for i in range(length-1): #5,只能取到4,如果是(1,length)会报错,少取一个数,
if int(data[i])>int(data[i+1]): #但下面有i+1,所以并不会漏掉最后一个
data[i],data[i+1]=data[i+1],data[i]
max_num=data[i+1]#取最后一个,因为第一个和第二个比,大的话换位置,大的在后面
print(data[i+1]) # 6
min_num = 0
for j in range(length - 1):
if int(data[j]) < int(data[j + 1]):
data[j],data[j+1]=data[j+1],data[j]
print(data[j+1]) #还是最后一个,前两个比,如果第一个小,换位置,小的还是在后面
min_num=data[j+1] #1
# print的值和return的值不一样,i最后的存留值是4,加1为5,此时data的顺序已变了,
# 最后一个是最小的,而前面赋值的,max,min不会变化
# print(data.index(data[i+1]),data[i+1],data.index(data[j+1]),data[j+1])
return max_num,min_num
print(maxmin(['3', '4', '2', '1', '6', '5']))
方法二:用选择排序做
# 用选择排序做
def maxmin(data):
length=len(data)
for i in range(length-1):
for j in range(i+1,length):
if int(data[i])>int(data[j]):
data[i],data[j]=data[j],data[i]
return '{}为最大的数{}为最小的数'.format(data[5],data[0])
print(maxmin(['3', '2', '4', '5', '6', '1']))
方法三:用冒泡排序做
def maxmin(data):
length=len(data)
for i in range(1,length):
for j in range(length-i):
if int(data[j])>int(data[j+1]):
data[j],data[j+1]=data[j+1],data[j]
return '最小的数为%s最大的数为%s'%(data[0],data[5])
print(maxmin(['3', '2', '4', '5', '6', '1']))
1.4
def sum_squares():
inp=int(input('请输入整数:\n'))
temp=0
for i in range(1,inp+1):
temp+=i**2
return temp
print(sum_squares())
1.5
a=sum([i*i for i in range(11)])
print(a)
##########1.6 # def a_add(a): # c=0 # for i in range(a): # if i%2!=0: # b=i**2 # c+=b # return c # print(a_add(int(input('数字:')))) #1.7 # n=int(input("数字:")) # even_square_sum=sum([i*i for i in range(n) if i%2!=0]) # print(even_square_sum) # 1.8
k=-5
a=['1', '2', '3', '4', '5', '6', '7']
length=len(a)
print(a[k])
j=k+length
print(a[j])
# 1.9
for i in range(50,90,10):
print(i,end="")
# 1.10 # for i in range(8,-9,-2): # print(i)
1.11
list1=[2**i for i in range(9)]
1.12
data=['1', '2', '3', '4', '5', '6', '7'] def Mychoice(data): import random return data[random.randrange(len(d