Rumah >pembangunan bahagian belakang >Tutorial Python >Menyelesaikan Teka-teki Kuki Perkataan: Pengembaraan Python

Menyelesaikan Teka-teki Kuki Perkataan: Pengembaraan Python

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-16 06:30:16905semak imbas

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.

Solving Word Cookies Puzzles: A Python Adventure

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.

Pelan:

  1. Dapatkan kamus perkataan untuk menyemak huruf yang dikocak.
  2. Buat csv yang mengandungi perkataan n-huruf sahaja, dalam kes ini saya mencipta csv yang mengandungi 3-huruf-perkataan kepada 7-huruf-perkataan
  3. Semak untuk melihat sama ada perkataan daripada csv mempunyai semua hurufnya terkandung dalam huruf hancur
  4. Simpannya ke senarai bilangan perkataannya sendiri, cth, jika perkataan itu 'umur', maka ia akan disimpan ke senarai perkataan 3 huruf, dan seterusnya.
  5. Paparkan hasilnya

Mari mula bekerja:

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:

Solving Word Cookies Puzzles: A Python Adventure

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:

Solving Word Cookies Puzzles: A Python Adventure

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)

Pecahan Pantas:

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.

Mari lihat kod dalam tindakan:

Solving Word Cookies Puzzles: A Python Adventure

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn