一段时间以来,我一直在努力解决此问题,并且想知道如何做到这一点。
使用random.randrange()函数生成-20至20(包括两个端点)之间的3个偶数整数。
确定使用min()函数生成的最小随机数,以及使用max()函数生成的最大随机数。通过将3个数字相加,然后从合计值中减去最小数字和最大数字,来确定中间数字。
按升序打印3个随机数
我了解如何生成随机数,但不了解如何使它们按升序排列并使中间数保持在20以下。不允许使用“ if”等条件语句。
下面是我所做的
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))
输出应类似于:升序随机数:-6 10 20
数字可以是任意,偶数和升序。
答案 0 :(得分:2)
print('Random numbers in ascending order:', end='')
print(sorted([number1, number2, number3]))
答案 1 :(得分:1)
您应该对所有3个数字(而不只是其中2个)执行min
和max
。您也不需要在abs
上调用total
函数:
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)