Python 按升序打印出3个随机数
我一直在努力解决这个问题有一段时间了,我想知道如何做到这一点Python 按升序打印出3个随机数,python,python-3.x,Python,Python 3.x,我一直在努力解决这个问题有一段时间了,我想知道如何做到这一点 使用random.randrange()函数生成3个介于-20和20之间的偶数整数(包括这两个整数) 确定使用min()函数生成的最小随机数和使用max()函数生成的最大随机数。通过将3个数字相加,然后从总值中减去最小数字和最大数字,确定中间数字 按升序打印出3个随机数 我知道如何生成随机数,但不知道如何将它们按升序排列并将中间数保持在20以下。也不允许使用“if”等条件语句 下面是我所做的 import random numbe
import random
number1 = random.randrange(-20, 20, 2)
number2 = random.randrange(-20, 20, 2)
number3 = random.randrange(-20, 20, 2)
smallest = min(number1, number2)
largest = max(number1, number3)
total = number1 + number2 + number3 - smallest - largest
print("Random numbers in ascending order:", smallest, abs(total), (largest))
输出应类似于:按升序排列的随机数:-61020
数字可以是任意、偶数和升序。您应该对所有3个数字执行
min
和max
,而不仅仅是其中的2个。您也不需要在total
上调用abs
函数:
print('Random numbers in ascending order:', end='')
print(sorted([number1, number2, number3]))
import random
number1 = random.randrange(-20, 20, 2)
number2 = random.randrange(-20, 20, 2)
number3 = random.randrange(-20, 20, 2)
smallest = min(number1, number2, number3)
largest = max(number1, number2, number3)
total = number1 + number2 + number3 - smallest - largest
print("Random numbers in random order:", number1, number2, number3)
print("Random numbers in ascending order:", smallest, total, largest)
您还可以使用列表,而不是3个重复代码的类似变量:
import random
numbers = [random.randrange(-20, 20, 2) for _ in range(3)]
smallest = min(numbers)
largest = max(numbers)
total = sum(numbers) - smallest - largest
print("Random numbers in random order:", *numbers)
print("Random numbers in ascending order:", smallest, total, largest)
“…的功能类似于”if“。不,这是一个条件语句。您的代码是正确的,请删除
abs
,然后添加最小=最小(number1,number2,number3)
和最大=最大(number1,number2,number3)