list = []
import random
for i in range(20):
list.append(random.randrange(1,9))
print("List = ", list)
number = int(input("Tell me a number between 1 and 9: "))
if number > 0 and number < 10 and number in list:
print("The number",number,"is in the desired range", list.count(number), "times")
for number in list:
print("Indexes of", number, "=", list.index(number))
##########################
# I can′t solve this last part correctly
uj5u.com熱心網友回復:
您可以使用 enumerate 獲取串列中專案的索引和值,并檢查該值是否為數字,然后列印索引
from random import randrange
numbers = [randrange(1, 9) for _ in range(20)]
print("numbers = ", numbers)
number = int(input("Tell me a number between 1 and 9: "))
if 0 < number < 10 and number in numbers:
print("The number", number, "is in the desired range", numbers.count(number), "times")
for index, val in enumerate(numbers):
if val == number:
print("Indexes of", number, "=", index)
輸出
numbers = [3, 6, 3, 3, 5, 8, 3, 2, 4, 4, 3, 5, 7, 6, 2, 1, 2, 4, 6, 8]
Tell me a number between 1 and 9: 4
The number 4 is in the desired range 3 times
Indexes of 4 = 8
Indexes of 4 = 9
Indexes of 4 = 17
uj5u.com熱心網友回復:
看來您正在尋找索引。此外,請f-strings改用并正確命名變數。也就是說,你可以使用
import random
# initialisation
lst = [random.randrange(1, 9) for _ in range(20)]
print("List = ", lst)
# input
number = int(input("Tell me a number between 1 and 9: "))
if number in lst and (0 < number < 10):
print(f"The number {number} is in the desired range {lst.count(number)} times")
indices = [index for index, value in enumerate(lst) if value == number]
print(f"The indices are {indices}")
uj5u.com熱心網友回復:
最好不要使用built-in functionlikelist作為變數和索引總是回傳第一個索引,你需要 enumerate像下面這樣:(我盡量不要改進 OP 的代碼)
lst = []
import random
for i in range(20):
lst.append(random.randrange(1,9))
print("List = ", lst)
number = int(input("Tell me a number between 1 and 9: "))
if number > 0 and number < 10 and number in lst:
print("The number",number,"is in the desired range", lst.count(number), "times")
idxs = [idx for idx , num in enumerate(lst) if num==number]
print("Indexes of", number, "=", idxs)
輸出:
List = [4, 6, 5, 6, 6, 3, 5, 7, 5, 4, 6, 3, 4, 7, 1, 5, 2, 1, 2, 6]
Tell me a number between 1 and 9: 3
The number 3 is in the desired range 2 times
Indexes of 3 = [5, 11]
你可以試試這個方法:
(因為范圍 (1,10) 中的所有亂數,如果此范圍內的輸入數字存在于 lst 中并且您不需要number in lst)
import random
lst = [random.choice(range(1,10)) for _ in range(20)]
print("List = ", lst)
number = int(input("Tell me a number between 1 and 9: "))
if number in range(1,10):
print("The number",number,"is in the desired range", lst.count(number), "times")
idxs = [idx for idx , num in enumerate(lst) if num==number]
print("Indexes of", number, "=", idxs)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322289.html
