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

  

猜你喜欢

转载自www.cnblogs.com/panda-pandeyong/p/9332893.html
今日推荐