標籤:函數 result 冒泡排序 pytho fun div 序列 直接 color
一,冒泡排序
給出一個純數字列表. 請對列表進行排序(升級題).
思路:
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重點題