• python基础练习题(输入三个整数x,y,z,请把这三个数由小到大输出)


    day3

    ---------------------------------------------------------------

    实例005:三数排序

    题目: 输入三个整数x,y,z,请把这三个数由小到大输出。

    分析:很常见的排序,不直接调排序函数的话,可以多写几个if,但是自己不满足,试试冒泡排序,还好写出来了

     1 list = []
     2 for i in range(1,6):
     3     list.append(int(input(f"请输入第{i}个数:")))
     4 for j in range(0,len(list)):
     5     k = 0
     6     while k<=(len(list)-j-2):
     7         if list[k] >list[k+1]:
     8             list[k+1],list[k] = list[k],list[k+1]
     9         k+=1
    10 print(list)

    个人还比较满意,哈哈哈,看看标准答案:

     1 raw = []
     2 for i in range(3):
     3     x = int(input('int%d: ' % (i)))
     4     raw.append(x)
     5 
     6 for i in range(len(raw)):
     7     for j in range(i, len(raw)):
     8         if raw[i] > raw[j]:
     9             raw[i], raw[j] = raw[j], raw[i]
    10 print(raw)

    感觉原理差不多,不过标准答案比我的易读一点,相对来说少两行,把raw[i]看成是较大的数,然后依次比较。

    最后上个调用函数的:

    1 raw2=[]
    2 for i in range(3):
    3     x=int(input('int%d: '%(i)))
    4     raw2.append(x)
    5 print(sorted(raw2))

    这直接砍掉一半的代码,编写的效率确实高,sorted(raw2)可直接对列表排序,也可直接调用raw2.sort()方法,需要注意的是raw2.sort()方法会改变原列表,而sorted()是重新生成列表,不改变原列表,所以看情况使用。

  • 相关阅读:
    CodeForces 660D Number of Parallelograms
    【POJ 1082】 Calendar Game
    【POJ 2352】 Stars
    【POJ 2481】 Cows
    【POJ 1733】 Parity Game
    【NOI 2002】 银河英雄传说
    【NOI 2015】 程序自动分析
    【POJ 1704】 Georgia and Bob
    【HDU 2176】 取(m堆)石子游戏
    【SDOI 2016】 排列计数
  • 原文地址:https://www.cnblogs.com/qgc1995/p/14775160.html
Copyright © 2020-2023  润新知