這個問題看起來很簡單,但我正在努力解決它。這只是一個演算法練習。這是我到目前為止所擁有的:
positivesum = 0
negativeqt = 0
value = int(input(("Enter the numbers: ")))
for _ in range(20):
value
if value > 0:
positivesum = positivesum value
print("The sum of positives is ", positivesum)`
另外,如果有人可以用 Javascript 翻譯相同的練習,我將不勝感激。
uj5u.com熱心網友回復:
像這樣的東西?
Python:
sum_positive_number = 0
negative_number_quantities = 0
numbers = 20
for i in range(numbers):
number_input = int(input(f'Enter number #{i 1}: '))
if number_input > 0:
sum_positive_number = number_input
elif number_input < 0:
negative_number_quantities = 1
print('Sum of positive numbers: ', sum_positive_number)
print('Quantities of negative numbers: ', negative_number_quantities)
uj5u.com熱心網友回復:
int_list = [int(inp) for inp in input("Enter 20 numbers: ").split()]
pos_sum = sum(num for num in int_list if num > 0)
neg_quantity = len([num for num in int_list if num < 0])
print(f"{pos_sum=} {neg_quantity=}")
這個怎么運作
int_list是一種叫做串列理解的東西。當提示輸入時,用戶可以輸入 20 個數字,由于呼叫split(). split()默認情況下將由空格字符分割。split()將回傳一個可迭代串列,因此我們使用for inp in …. int(inp)會將每個數字從 type 轉換str為 type int。input()回傳一個字串,因此需要執行數字操作
pos_sum呼叫sum內置函式并將其傳遞給生成器運算式。它遍歷所有完成的操作產生的串列int_list,只查找大于 0 的數字。它將把這些加起來,給我們我們的總和。
neg_quantity呼叫len內置函式并將可迭代串列傳遞給len,通過串列理解構造。推導式的結果串列將包含int_list小于 0 的所有數字,len并將回傳該串列的長度,為我們提供負數
uj5u.com熱心網友回復:
nums = list(map(int, input('Enter the numbers: ').split()))
pos = sum(num for num in nums if num > 0)
neg = len(num for num in nums if num < 0)
print(pos, neg)
split默認情況下,輸入由空格分隔,并將每個子字串(即數字)映射到其int. list初始化一個串列以存盤 的結果map。
注意sum需要iterable. 形式的運算式num for num in nums if num > 0是生成器。生成器根據條件一一產生結果,直到它終止。當生成器運算式作為引數傳遞給函式時,結果作為 a tuplewhich is傳遞iterable。因此pos為您提供串列中所有正數的總和。與串列推導相比,生成器不需要額外的空間,一旦傳入結果,python 可以自動為您收集垃圾。
這個答案解釋了更多關于生成器運算式的資訊,并提供了另一種獲取和存盤輸入的方法。
總和(可迭代,/,開始 = 0)
鏡片)
地圖(函式,可迭代,...)
uj5u.com熱心網友回復:
您的問題是您將input陳述句放在錯誤的位置:
positivesum = 0
negativeqt = 0
for _ in range(20):
value = int(input(("Enter the numbers: ")))
if value > 0:
positivesum = value
else if value < 0:
negativeqt = 1
如果你只要求一個輸入,那么用戶只能給你一個數字。由于您需要 20 個數字,因此您需要將其input放入 for 回圈中,這樣每次您需要一個值時都會得到一個值。
關于計算positivesum和之間的差異negativeqt,您正在尋找正項的總數,因此您需要將它們加在一起,而您只需要負項的數量,因此每次看到一個時我們都會增加一次。
uj5u.com熱心網友回復:
positive = 0
negative = 0
for i in range(-10 , 10):
print(i)
if i >= 0:
positive = i
elif i <= 0:
negative = 1
print(positive)
print(negative)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/478409.html
上一篇:我們是否需要epsilon值來對浮點值進行較小或較大的比較?[復制]
下一篇:黑客地球演習超過時間限制
