python重点题
Posted panda/勇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python重点题相关的知识,希望对你有一定的参考价值。
一,冒泡排序
给出一个纯数字列表. 请对列表进行排序(升级题).
思路:
1. 完成a和b的数据交换. 例如, a = 10, b = 24 交换之后, a = 24, b = 10
2. 循环列表. 判断a[i]和a[i+1]之间的大小关系, 如果a[i]比a[i+1]大. 则进行互换. 循环结束的时候.
当前列表中最大的数据就会被移动到最右端.
3. 想一想, 如果再次执行一次上面的操作. 最终第二大的数据就移动到了右端. 以此类推. 如果反
复的进行执行相应的操作. 那这个列表就变成了一个有序列表.
lis=[12,3,5,8,2,45,1] for n in range(len(lis)): for i in range(len(lis)-1): if lis[i]>lis[i+1]: lis[i],lis[i+1]=lis[i+1],lis[i] print(lis)
二,
写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}
例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数)
方法一:
def func(*args): return {‘最大值‘:max(args),‘最小值‘:min(args)}
方法二
def func(*num): m=num[0] m1=num[0] for i in num: if i>m: m=i if i<m1: m1=i return{‘最大值‘:m,‘最小值‘:m1} print(func()
三,
有如下值li=[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,
将小于66的值保存至第二个key的值中(在原有代码上补充不允许改变原有代码)
li=[11,22,33,44,55,66,77,88,99,90] result={} for row in li: if row<66: l=result.get(‘k1‘) #拿k1 if l==None: #k1 不存在 result[‘k1‘]=[row] #创建一个 k1 else: result[‘k1‘].append(row) #存在k1时,直接追加 else: l=result.get(‘k2‘) #拿k2 if l==None: result[‘k2‘]=[row] else: result[‘k2‘].append(row) print(result)
四,
写代码完成99乘法表
a=1
while a<=9:
b=1
while b<=a:
print(‘%d*%d=%d‘ % (a,b,a*b),end=‘‘)
b+=1
print()
a+=1
以上是关于python重点题的主要内容,如果未能解决你的问题,请参考以下文章