所以我的任務很簡單:我要做兩個功能,
一種將用戶輸入作為整數串列。(用戶輸入多少個條目,然后開始逐個輸入)
第二個函式讀取該串列并回傳在該串列中找到所選值的次數。
出于某種原因,在組合這些函式時,只要在串列中看到 x,計數就不會停留在 0 和計數;它只是跳轉到任何初始條目計數。
代碼如下:
def get_int_list_from_user():
list1 = []
numNums = int(input("Enter number count: "))
for x in range(numNums):
nextval = int(input("Enter a whole number: "))
list1.append(nextval)
return list1
def count_target_in_list(int_list):
target_val = int(input("Enter target value: "))
count = 0
for target_val in int_list:
count = 1
print("Target counted ", count, "time(s)")
return count
在這里,我嘗試了不同的方法來呼叫函式,但每次都以相同的結果結束。
list1 = my_functions.get_int_list_from_user()
count = my_functions.count_target_in_list(int_list=list1)
我也試過這個:
my_functions.count_target_in_list(int_list=my_functions.get_int_list_from_user())
uj5u.com熱心網友回復:
此陳述句不會執行您認為的操作:
for target_val in int_list:
這實質上擦除了傳遞給函式的原始值,而是一次遍歷整個串列,一次一個元素。所以,count將始終等于串列的長度。你自找的:
for val in int_list:
if val == target_val:
count = 1
uj5u.com熱心網友回復:
def count_target_in_list(int_list):
target_val = int(input("Enter target value: "))
count = 0
for target_val in int_list:
count = 1
print("Target counted ", count, "time(s)")
return count
相反,使用此邏輯,您需要將回圈值與目標值進行比較。在上面的代碼中,目標值將被回圈的迭代覆寫。
def count_target_in_list(int_list):
target_val = int(input("Enter target value: "))
count = 0
for value in int_list:
if target_val == value :
count = 1
print("Target counted ", count, "time(s)")
return count
uj5u.com熱心網友回復:
已編輯答案
def get_int_list_from_user():
list1 = []
numNums = int(input("Enter number count: "))
for x in range(numNums):
nextval = int(input("Enter a whole number: "))
list1.append(nextval)
return list1
def count_target_in_list(int_list):
target_val = int(input("Enter target value: "))
count = 0
for target_val in int_list:
if target_val in int_list:
count = 1
print("Target counted ", count, "time(s)")
return count
list1 = get_int_list_from_user()
count = count_target_in_list(int_list=list1)
給
Enter number count: 3
Enter a whole number: 1
Enter a whole number: 2
Enter a whole number: 3
Enter target value: 2
Target counted 1 time(s)
Enter number count: 3
Enter a whole number: 1
Enter a whole number: 1
Enter a whole number: 1
Enter target value: 1
Target counted 3 time(s)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/342966.html
