Cần giúp đỡ về code trong python

Homework của mình là tạo một code giúp người dùng nhập 1 từ bất kì thì từ đó sẽ được dịch sang ngôn ngữ “Pig Latin”
theo 4 luật là:

  1. từ có các chữ cái A, E, I, O, U ở đầu sẽ đc thêm chữ ‘way’ ở cuối từ. ví dụ “at” becomes “atway”, “egg” becomes “eggway”
  2. từ KHÔNG chứa các chữ cái a, e, i, o, u thì cũng thêm chữ ‘way’ ở cuối từ. ví dụ “my” becomes “myway”, “by” becomes “byway”
  3. từ CÓ chứa các chữ cái trên ở trong thân thì từ đó sẽ được hoán đổi vị trí với tất cả các chữ cái ở bên trái các chữ a, e, i, o, u sẽ được dời hết về sau và thêm chữ ‘ay’. Ví dụ chữ body thì sẽ thành odybay.
    chữ cat sẽ thành atcay. chứ tree sẽ thành eetray.
  4. chữ có chữ cái phụ âm đầu viết hoa sẽ đc dời xuống cuối và thêm chữ ‘ay’. ví dụ Houston sẽ thành Oustonhay, Marry sẽ thành Arrymay.
    Mình đã làm đc luật 1&2 cần giúp đỡ ở luật 3 và 4. phần code mình để trong dấu # # là cho luật 3 nhưng sai code. mong mọi người giúp đỡ. Mình cố dùng lệnh .find() để tìm index của các chữ a, e, i, o, u trong từ nhưng không đc.
    cảm ơn mọi người
def is_vowel(letter):
    return letter.upper() in "AEIOU" 
def has_vowel(word):
    for letter in word:
        if is_vowel(letter):
            return True
    return False


def translte(word):
    if is_vowel(word[0]):
        return word + "way"
   #elif has_vowel(word):
        index = word.find('aeiou')
        return word[index:] + word[:index] + 'ay'  #
    else:
        return word + 'way'

print("This program will translate a word from English to Pig Latin.")
choice = 'Y'

while choice.upper() == 'Y':
    word = input("Please enter a word: ") 
    print(word, "becomes", translte(word) + ".")
    choice = input("Would you like another word? (Y/N) ")
print("Ankthay ouyay!")

Bạn nhìn lại trình bày code của bạn xem được mấy điểm. Python là ngôn ngữ dùng indent để xác định code block mà bạn copy 1 lèo như thế thì ai đọc được.
Cho code vào cặp dấu ``` để format

vâng, code mình copy và đã edit đúng theo cách mình chạy trên spyder nhưng khi save edit thì nó như vậy và mình được chấm điểm dựa trên code có hoạt động hay ko chứ không phải dựa trên cách trình bày ở đây. cảm ơn bạn đã góp ý

Thế thì bạn cứ tự fix lỗi của mình đi nhé. Như đã nhắc, Python là ngôn ngữ indent orientation nên việc indent sai cũng làm sai code nên nếu bạn được 0 điểm trình bày thì cũng đạt 0 điểm về code hoạt động

tôi không hiểu bạn còn không hiểu được tiếng việt thì bạn sẽ giúp tôi bằng cách nào

Anyway. Tùy bạn thôi, tôn trọng cộng đồng thì sẽ được giúp còn chỉ dựa vào cái tôi cá nhân của bạn thì tự bơi thôi. Rất nhiều newbie khác còn trình bày tốt hơn bạn sau khi được nhắc nhở còn bạn thì không. Đáng tiếc!

tất nhiên tôi tôn trọng cộng đồng chứ, chỉ là cách nói chuyện của bạn không khiến tôi tôn trọng thôi.

Đây là tôn trọng của bạn ngay cả khi được nhắc nhở hả

Đây mới là tôn trọng cộng đồng

Bạn thấy được sự khác nhau chứ. Đó là sự khác nhau giữa người xứng đáng được giúp và người không

làm người tốt khó thật :smile:

Đối với Python, sai cách trình bày là code sẽ không chạy hoặc chạy lung tung đấy bạn :joy:
Đăng cái code thế thì người khác muốn giúp cũng không giúp được.

Update: tặng cho cái link:

2 Likes

Có lẽ code của thớt trong IDE vẫn indent đàng hoàng đấy chứ, mà post code vào hộp editor của Discourse không kèm markdown ``` nên nó tự strip hết leading whitespaces

Bạn post lại code từ IDE rồi đọc hướng dẫn bọc code như của bạn trên là được.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?