题目:
输入三个整数X,Y,Z,请把这三个数由小到大输出
分析:
1. 输入三个整数
2. 通过比较交换,使得X最小,Z最大,Y在中间(或者使用中间变量存储排序后的结果)
3. 按顺序输出
第一种方法:
编码:
# 获取用户输入的三个整数,用空格分隔 input_str = input("请输入三个整数(用空格分隔):") # 将输入的字符串按空格分割,并转换成整数列表 number = [int(x) for x in input_str.split()] # 使用冒泡顺序算法对三个数进行升序排序 # 第一轮比较,比较前两个元素 if number[0] > number[1]: # 如果第一个数大于第二个数,交换他们的位置 number[0],number[1] = number[1],number[0] # 第二轮比较,比较后两个元素 if number[1] > number[2]: number[1],number[2] = number[2],number[1] # 第三轮比较,再次比较前两个数(确保最小的数在首位) if number[0] > number[1]: number[0],number[1] = number[1],number[0] #输出结果 print("从小到大排序的结果:",number)结果:
请输入三个整数(用空格分隔):98 109 23
从小到大排序的结果: [23, 98, 109]
第二种方法:
编码:
# 获取用户输入的三个整数(用空格分隔) input_num = input("请输入三个整数(用空格分隔):") # 将输入的字符串按空格分割,并转换成整数 numbers = [int(y) for y in input_num.split()] # 使用列表的sort()方法进行排序(默认升序) numbers.sort() # 输出排序结果 print("从小到大的排序结果:",numbers)结果:
请输入三个整数(用空格分隔):3 4 1
从小到大的排序结果: [1, 3, 4]
其中,input_str.split(),split() 是字符串的内置方法,用于将字符串分割成多个子字符串,默认情况下,它会按空格分割字符串。比如:
input_str = "10 20 30" result = input_str.split() # 结果是:['10', '20', '30']
for x in input_str.split() 这是一个循环,会遍历分割后的每个元素。示例中,x 会依次取值为 '10' → '20' → '30'
int(x):int() 函数将字符串转换为整数。比如:
int('10') # 结果是整数 10 int('20') # 结果是整数 20number = [int(x) for x in input_str.split()]整体作用:将输入的字符串分割成多个部分;将每个部分从字符串转换为整数;将所有转换后的整数放入一个新列表。
如果不使用推导式(int(x) for x in ...),替代写法为:
input_str = input("请输入三个整数: ") parts = input_str.split() # 分割字符串 numbers = [] # 创建空列表 for s in parts: # 遍历每个部分 num = int(s) # 转换为整数 numbers.append(num) # 添加到列表