您好。我刚开始学习Python,想向您请教一些问题。
有一个经典问题是比较三个数的大小,然后从小到大输出
具体指令是
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
c = int(input("请输入第三个数:"))
if a>b:
a,b=b,a
if a>c:
a,c=c,a
if b>c:
b,c=c,b
print("abc从小到大依次输出位:%d,%d,%d"%(a,b,c))
我想问的从if开始的思路是什么,两两比较数字后,为什么要把两个数的值转换,恳请您的解答,谢谢!
。。。
第一个if 是确认a,b之间的大小,如果a > b 那么ab互换,也就是 if 过后 必定a<b .
第二个if 是确认a,c之间的大小,如果a > c 那么ac 互换, 也就是 if过后必定a<c
第三个if 同理,if过后必定b<c
也就是三个if确定了abc之间的大小关系。
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
c = int(input("请输入第三个数:"))
list1 = [a,b,c]
list1.sort() ### 排序即可
print("abc从小到大依次输出为:%d,%d,%d"%(list[0],list[1],list[2]))
其中sort()方法语法为:list.sort(cmp=None, key=None, reverse=False)
reverse 表示排序规则,reverse = True 降序, reverse = False 升序(默认)。
使用sort()默认方法直接从小到大排序
要修改字典中的值,可以依次指定字典名、用方括号括起的键以及与该键关联的新的值。
user = {"name":"yuejinzhao","age":18}
user["age"] = 22
print(user) #{'name': 'yuejinzhao', 'age': 22}
针对问题所需,可以采用以下代码解决:
num1 = int(input('请输入第一个数字:'))
num2 = int(input('请输入第二个数字:'))
num3 = int(input('请输入第三个数字:'))
# 判断最小值
if num1 <= num2 and num1 <= num3:
minNum = num1
elif num2 <= num1 and num2 <= num3:
minNum = num2
else:
minNum = num3
# 判断最大值
if num1 >= num2 and num1 >= num3:
maxNum = num1
elif num2 >= num1 and num2 >= num3:
maxNum = num2
else:
maxNum = num3
# 计算中间值
midNum = num1 + num2 + num3 - maxNum - minNum
print('三个数从小到大排序为:', minNum, midNum, maxNum)
首先接收用户输入的三个数,然后通过if语句进行大小关系的判断。第一个if语句用来寻找最小值,第二个if语句用来寻找最大值。因为三个数中除了最大值和最小值外,剩下的就是中间值,所以可以用三个数总和减去最大值和最小值,就得到中间值。最后输出排好序的三个数。经过分析上述代码可以发现,因为需要进行三个数的大小比较,并以清晰易懂的方式输出,所以需要对两个数的值进行转换,同时需要嵌套if语句进行比较并输出。