簡體   English   中英

如何調用此函數從列表中隨機選擇一個數字,然后將“M”、“.”和“.wav”組合成一個文件名?

[英]How do I call this function to randomly pick a number from a list and then combine "M",".", and ".wav" to make a file name?

所以我在做一個 python mozart 項目,其中 simpleaudio 文件是使用代碼從下面顯示的列表中隨機選擇數字來獲取與聲音對應的文件名的。 我很難找到為此編寫代碼的方法。 函數minuet_filename下的代碼就是我現在所擁有的。 在這一點上我很失落。 這是該項目這部分的說明。

您負責實現四個功能。 第一個函數 minuet_filename() 接受一個參數,它是一個字符串。 該字符串將是從莫扎特的小步舞表中隨機選擇的條目之一的編號。 該函數將返回一個字符串,該字符串是相應音頻文件的文件名。 每個小步舞音樂文件都以大寫的“M”開頭,然后是表格中的數字,然后是句點“.”,然后是音頻文件的文件擴展名“wav”。

mm01 = [None, None, "96", "32", "69", "40", "148", "104", "152", "119", "98", "3", "54"]
mm02 = [None, None, "22", "6", "95", "17", "74", "157", "60", "84", "142", "87", "130"]
mm03 = [None, None, "141", "128", "158", "113", "163", "27", "171", "114", "42", "165", "10"]
mm04 = [None, None, "41", "63", "13", "85", "45", "167", "53", "50", "156", "61", "103"]
mm05 = [None, None, "105", "46", "153", "161", "80", "154", "99", "140", "75", "135", "28"]
mm06 = [None, None, "122", "46", "55", "2", "97", "68", "133", "86", "129", "47", "37"]
mm07 = [None, None, "11", "134", "110", "159", "36", "118", "21", "169", "62", "147", "37"]
mm08 = [None, None, "30", "81", "24", "100", "107", "91", "127", "94", "123", "33", "5"]
mm09 = [None, None, "70", "117", "66", "90", "25", "138", "16", "120", "65", "102", "35"]
mm10 = [None, None, "121", "39", "139", "176", "143", "71", "155", "88", "77", "4", "20"]
mm11 = [None, None, "26", "126", "15", "7", "64", "150", "57", "48", "19", "31", "108"]
mm12 = [None, None, "9", "56", "132", "34", "125", "29", "175", "166", "82", "164", "92"]
mm13 = [None, None, "112", "174", "73", "67", "76", "101", "43", "51", "137", "144", "12"]
mm14 = [None, None, "49", "18", "58", "160", "136", "162", "168", "115", "38", "59", "124"]
mm15 = [None, None, "109", "116", "145", "52", "1", "23", "89", "72", "149", "173", "44"]
mm16 = [None, None, "14", "83", "79", "170", "93", "151", "172", "111", "8", "78", "131"]

minuet_table = [mm01, mm02, mm03, mm04, mm05, mm06, mm07, mm08,
            mm09, mm10, mm11, mm12, mm13, mm14, mm15, mm16]

import random
import simpleaudio

def minuet_filename(mmid):
    print(random.choice(minuet_table))
    return (random.choice(minuet_table))

roll = minuet_filename
print(roll)

這似乎是您提供的說明所描述的內容:

def minuet_filename(mmid):
    return 'M' + mmid + '.wav'

def random_number_from_tables():
    return random.choice(random.choice(minuet_table)[2:])

number = random_number_from_tables()
print(minuet_filename(number))

結果如下所示(一次一個):

M158.wav
M109.wav
M68.wav
M160.wav

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM