我給定的指令:撰寫一個程式,在 -5 和 5 之間連續生成 2 個數字。生成每個數字后,從最小到最大顯示每一對以及對的總和。當程式生成一對是另一個的負數時程式停止(例如,-5 和 5 或 -2 和 2) 在程式結束時顯示生成的所有數字的總和。
這是我的代碼:我的問題是我不知道如何從最小到最大顯示每一對以及對的總和。我也不確定是否顯示所有生成的數字的總和。
`
import random
i = 0
while i < 1:
number1= random.randint(-5,5)
number2= random.randint(-5,5)
print("(", number1, ",", number2, ")")
if number1 == -number2:
break
if number2 == -number1:
break
`
uj5u.com熱心網友回復:
我認為我下面的代碼是不言自明的。但是,如果您有任何疑問或問題,我很樂意解釋
# random is a python built-in library which has multiple functions regarding random events
import random
total_sum = 0
# a while loop with a final break statement is the closest idiomatic way for a do-while AFAIK
while True:
# the randint functions takes two numbers, and generates a random integer in the given range (inclusive)
a, b = random.randint(-5, 5), random.randint(-5, 5)
# I'd like to have A as the smaller one. therefore, if this is not the case, we can simply swap them
if a > b:
a, b = b, a
print("generated pair:", a, b)
print("sum:", a b)
total_sum = a b
if a == -b:
break
print("total sum:", total_sum)
uj5u.com熱心網友回復:
您可以使用這樣一個事實,即如果它們的總和為零(是的,我也計算 0 / 0,因為 -0 == 0),那么這兩個數字就是彼此的否定:
from random import randint
def main() -> None:
total = 0
while True:
numbers = [randint(-5, 5), randint(-5, 5)]
total = (s := sum(numbers))
print('Numbers:', *sorted(numbers), '/ Sum:', s)
if s == 0:
break
print('Total sum:', total)
if __name__ == '__main__':
main()
uj5u.com熱心網友回復:
import random
total = 0
while True:
number1 = random.randint(-5,5)
number2 = random.randint(-5,5)
total = number1 number2
if number1 > number2:
print(f"{number2} {number1} total: {total}")
elif number1 < number2:
print(f"{number1} {number2} total: {total}")
if number1 == -number2 or -number1 == number2:
break
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/520685.html
標籤:Python循环范围循环
