Rumah >pembangunan bahagian belakang >Tutorial Python >Menyelesaikan Teka-teki Kuki Perkataan: Pengembaraan Python
Bermain permainan ialah cara untuk merehatkan otak daripada tekanan hari itu, atau mungkin sekadar berehat dari kerja. Walau bagaimanapun, kadangkala, permainan boleh menjadi tekanan sendiri, jadi saya fikir adalah kes 'Word Cookies', permainan teka-teki yang menyeronokkan di mana anda diberi satu set huruf yang dikocok dan ditugaskan untuk menyelesaikan perkataan yang terkandung di dalamnya.
Semasa saya maju dalam permainan, ia terus menjadi sukar untuk diselesaikan dengan sedikit atau tiada sumber untuk membantu, saya tersekat beberapa kali. Tetapi tunggu sebentar, saya kod dalam Python, jadi mengapa saya tidak dapat mencari jalan keluar? Di sinilah bahasa Python menjadi terkenal.
Sekarang bagaimana saya menggunakan Python untuk menyelesaikan masalah yang lebih baik. Saya memerlukan cara untuk menyemak perkataan dalam huruf yang dikocak dan saya memecahkan pelaksanaannya kepada langkah-langkah mudah.
Pertama sekali saya mencari dalam talian dan menemui kamus yang boleh saya muat turun dalam format csv dan membahagikannya kepada fail CSV berasingan yang mengandungi setiap huruf. Begini rupanya:
Seterusnya, saya mendapat kod python untuk menyemak CSV dari A-Z dan memilih perkataan 3 huruf dan meninggalkan perkataan dengan ruang dan format lain yang tidak boleh digunakan. Ini dilakukan pada masa yang sama kepada perkataan 4, 5, 6 dan 7 huruf.
Begini rupanya:
import os import csv import re import pandas as pd # Define folder paths input_folder = 'C:\Users\Zenbook\Desktop\Word lists in csv' output_folder = 'C:\Users\Zenbook\Desktop\Word list output' # Function to find words of specific lengths in text def find_words_of_length(text, length): words = re.findall(r'\b\w+\b', text) return [word for word in words if len(word) == length] # Initialize dictionaries to store words of each length words_by_length = {3: set(), 4: set(), 5: set(), 6: set(), 7: set()} # Loop through all CSV files in the input folder for filename in os.listdir(input_folder): if filename.endswith('.csv'): filepath = os.path.join(input_folder, filename) # Read each CSV file with a fallback encoding with open(filepath, 'r', encoding='ISO-8859-1') as file: reader = csv.reader(file) for row in reader: # Loop through each cell in the row for cell in row: for length in words_by_length.keys(): words = find_words_of_length(cell, length) words_by_length[length].update(words) # Save words of each length to separate CSV files for length, words in words_by_length.items(): output_file = os.path.join(output_folder, f'{length}_letters.csv') with open(output_file, 'w', newline='', encoding='utf-8') as file: writer = csv.writer(file) for word in sorted(words): # Sort words for neatness writer.writerow([word]) print("Words have been saved to separate CSV files based on their length.")
Berikut ialah hasil dalam folder output yang saya nyatakan:
Sekarang dengan folder output ini, saya hanya perlu menyemak perkataan di dalamnya untuk melihat sama ada ia terkandung dalam huruf yang dikocak. Berikut ialah kod yang melakukannya:
import csv # Define the string to check against check_string = 'langaur' # Define the folder path for CSV files input_folder = 'C:\Users\Zenbook\Desktop\Word list output' # Function to check if all letters in word can be found in check_string def is_word_in_string(word, check_string): # Check if each letter in the word is in the string for letter in word: if word.count(letter) > check_string.count(letter): return False return True # Check words for 3, 4, 5, 6 and 7-letter CSVs for length in [3, 4, 5, 6, 7]: input_file = f'{input_folder}/{length}_letters.csv' print(f"\nLength {length}:") with open(input_file, 'r', encoding='utf-8') as file: reader = csv.reader(file) found_words = [] for row in reader: word = row[0].strip() # Remove any extra whitespace if is_word_in_string(word, check_string): found_words.append(word) # Print all found words for the given length for i in found_words: print(i)
Kami mengambil folder output daripada kod sebelumnya dan menggunakannya sebagai folder input dalam kod penyelesaian sebenar di atas. Keindahan penyelesaian ini adalah dalam kesederhanaan fungsi 'is_word_in_string'. Kami tidak perlu menyemak adalah huruf individu terkandung dalam perkataan yang dikacau, kerana ia akan menjadi logik tambahan untuk huruf yang muncul lebih daripada sekali.
Kami hanya perlu menyemak sama ada untuk setiap huruf dalam perkataan kamus, ia kelihatan kurang daripada atau sama dengan jumlah kali ia muncul dalam perkataan yang dikacau, dan ledakan, kami boleh mengesahkan sama ada setiap huruf perkataan kamus itu benar-benar wujud dalam surat yang dikoyak.
Hore! Dan sekarang saya mempunyai cara untuk bergerak ke hadapan apabila saya tersekat. Ia bukan sahaja tentang menipu sistem sentiasa, tidak ada keseronokan dalam hal itu, tetapi apabila saya benar-benar memerlukannya, penyelesai ini berguna. Saya juga boleh mendapatkan sebanyak mungkin perkataan tambahan supaya saya boleh mengisi balang itu dan mendapatkan beberapa sumber yang hebat.
Dan begitulah. Python ialah bahasa serba boleh untuk mengautomasikan bahan pantas. Anda boleh menggunakannya secara ringkas dalam aktiviti harian anda seperti ini, atau untuk tugas kerja yang kompleks dan kerja yang jauh lebih maju seperti Pembelajaran Mesin. Cari projek ular sawa untuk diusahakan hari ini. Tahniah.
Hai nama saya jika Ifedolapo, saya seorang pembangun bahagian hadapan dan pengaturcara python (saya juga mereka bentuk). Anda boleh mengetahui lebih lanjut tentang saya dari laman web Portfolio
Terima kasih kerana membaca siaran ini.
Atas ialah kandungan terperinci Menyelesaikan Teka-teki Kuki Perkataan: Pengembaraan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!