Python编程练习之判断三个数的大小

大部分初学编程的人来说刚开始都会练习判断两个数或者三个数的大小,来熟悉某种语言的特性和最基本的if,else循环,当我们学习了更高级的语法知识后,又会有不同的实现方式,比如这道练习题依次接收用户输入的3个数,排序后打印现在我们来看一下在Python中都有哪些方法来实现:

1, 采用分支结构,用最基本的if和else来实现:

a = int(input('a>>>'))
b = int(input('b>>>'))
c = int(input('c>>>'))
if a>b:
    if b>c:
        print('a>b>c')
    else:
        if a>c:
            print('a>c>b')
        else:
            print('c>a>b')
elif a<b:
    if b<c:
        print('c>b>a')
    else:
        if c>a:
            print('b>c>a')
        else:
            print('b>a>c')

这可能是大部分初学编程er的第一想法,但较为繁琐,由于我最近刚学到列表list,那么如果用list来实现的话方法有哪些呢

2,引入列表

nums = []
for i in range(3):
    nums.append(int(input('{}; '.format(i))))
if nums[0]>nums[1]:
        if nums[0]>nums[2]:
            i3 = nums[0]
            if nums[1] > nums[2]:
                i2 = nums[1]
                i1 = nums[0]
            else:
                i2 = nums[0]
                i1 = nums[1]
        else:#0<2  1<0
                i3 = nums[2]
                i2 = nums[0]
                i1 = nums[1]
else: #[0]<[1]
    if nums[0] < nums[2]:
        i1 = nums[0]
        if nums[1] < nums[2]:
            i2 = nums[1]
            i3 = nums[2]
        else:#[1]>[2]
            if nums[0] > nums[2]:
                i2 = nums[0]
                i3 = mums[2]
            else:
                i2 = nums[2]
                i3 = mums[0]
print(i1,i2,i3)

虽然我们在这里用了list,但是逻辑上还是第一种逐个比较后再打印的思想,所以可以看到,并没有变简洁。

3,使用Max函数

nums = []
for i in range(3):
    nums.append(int(input('{}: '.format(i))))
#此处不能使用for循环,不能一边迭代该列表,同时删除或者增加该列表
while True:
    x = max(nums)
    print(x)
    nums.remove(x)
    if len(nums) == 1:
        print(nums[0])
        break

这种方法的思路是找出最大值,打印再剔除,直到最后打印出最小值。这样的话我们就能以较少的代码来实现这一任务了。max函数和min函数是Python的内置函数,在求最大值和最小值上更快速便捷。但当我们需要比较并打印出很多的数字时,这种方法就没那么高效了。

4,用列表的sort操作来实现大小比较并打印输出

sort(key=None, reverse=False) -> None
对列表元素进行排序,就地修改,默认升序

nums = []
out = None
for i in range(3):
    nums.append(int(input('{}: '.format(i))))
nums.sort()
print(nums)

这一次可以看到,代码简洁了很多,而且即便我们需要增加输入量,比较多个数据也只需要做很少的改动即可。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 12,225评论 1 118
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,235评论 17 410
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,391评论 19 139
  • 二棉酷阅读 1,696评论 0 0
  • 宝宝从托福回来一进门就说:“妈妈,今晚我不能洗澡了。”我的第一反应是他又想偷懒,可是他却说“因为我的腿受伤了,不能...
    金浩麻麻阅读 1,729评论 0 0