Python:每日一题005

题目

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

程序分析

我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

个人的思路及代码:

两种方法:分别使用sorted()或者min()函数

  
  x,y,z = [int(x) for x in input("请输入三个数字:三个数字间以空格分隔").strip().split(" ")]
  li = [x,y,z]
  # 方式一
  new_li= sorted(li)
  for i  in new_li:
      print(i)
  ​
  # 方式二
  x = min(li)
  li.remove(min(li))
  y = min(li)
  li.remove(min(li))
  z = li[0]
  print(x,y,z)

  

修改

  
  user_input = input("请输入三个数字:三个数字间以空格分隔")
  if user_input.isdigit():
      x,y,z = [int(x) for x in user_input.strip().split(" ")]

  

分析:对用户输入的情况作出判断,不直接进行int

其他参考解答

解答1

  x=int(input('输入第一个数:'))
  y=int(input('输入第二个数:'))
  z=int(input('输入第三个数:'))
  if x>y:
      x,y=y,x
  if x>z:
      x,z=z,x
  if y>z:
      y,z=z,y
  print(x,y,z)

  

解答2

  
  x,y,z = [int(x) for x in input("请输入三个数字:三个数字间以空格分隔").strip().split(" ")]
  ns =lambda x,y,z:sorted(li)
  print(ns(x,y,z))

  

分析:使用匿名函数简化语句,调用匿名函数。

(本文编号005,首发于2018年9月15日,修改于2018年9月17日)

原文地址:https://www.cnblogs.com/Nicholas0707/p/9653079.html