Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Memfaktorkan ulang kode Python untuk modularitas yang lebih baik dan menambahkan fungsi.
Anda dapat membuat kueri model secara langsung dan menguji hasil yang ditampilkan saat menggunakan
parameter value yang berbeda dengan Konsol Cloud, atau dengan memanggil
Vertex AI API secara langsung.
Saya memiliki program Python yang menghasilkan nama acak dan melakukan berbagai jenis pemrosesan data berdasarkan pilihan pengguna dari menu di konsol. Dapatkah Anda membantu saya memfaktorkan ulang kode dengan memisahkan fungsi data_processor dan menghapusnya sepenuhnya? Selain itu, tambahkan fungsi untuk nama akronim terbalik dan pindahkan pengambilan input pengguna ke fungsi terpisah. Penjaga utama hanya boleh berisi satu panggilan fungsi.
importrandomfromfakerimportFakerdeftransform_data(data):upper_names=[name.upper()fornameindata]lower_names=[name.lower()fornameindata]reversed_names=[name[::-1]fornameindata]acronym_names=["".join([word[0]forwordinname.split()])fornameindata]returnupper_names,lower_names,reversed_names,acronym_namesdefcalculate_statistics(data):name_lengths=[len(name)fornameindata]average_length=sum(name_lengths)/len(name_lengths)max_length=max(name_lengths)min_length=min(name_lengths)returnaverage_length,max_length,min_lengthdefgroup_by_first_letter(data):grouped_data={}fornameindata:grouped_data.setdefault(name[0],[]).append(name)returngrouped_datadefanalyze_name_frequencies(data):name_counts={}fornameindata:name_counts[name]=name_counts.get(name,0)+1returnname_countsdefdisplay_menu():print("Menu:")print("1. Display original names")print("2. Display uppercased names")print("3. Display lowercased names")print("4. Display reversed names")print("5. Display acronym names")print("6. Display name statistics")print("7. Display names grouped by first letter")print("8. Display name frequencies")print("9. Exit")choice=input("Enter your choice: ")returnchoiceif__name__=="__main__":# Generate random namesfake=Faker()names=[fake.name()for_inrange(10)]upper_names,lower_names,reversed_names,acronym_names=transform_data(names)avg_length,max_length,min_length=calculate_statistics(names)grouped_names=group_by_first_letter(names)name_frequencies=analyze_name_frequencies(names)processed_data={"original_names":names,"upper_names":upper_names,"lower_names":lower_names,"reversed_names":reversed_names,"acronym_names":acronym_names,"average_length":avg_length,"max_length":max_length,"min_length":min_length,"grouped_names":grouped_names,"name_frequencies":name_frequencies}whileTrue:choice=display_menu()ifchoice=="1":print(processed_data["original_names"])elifchoice=="2":print(processed_data["upper_names"])elifchoice=="3":print(processed_data["lower_names"])elifchoice=="4":print(processed_data["reversed_names"])elifchoice=="5":print(processed_data["acronym_names"])elifchoice=="6":print(f"Average name length: {processed_data['average_length']}")print(f"Maximum name length: {processed_data['max_length']}")print(f"Minimum name length: {processed_data['min_length']}")elifchoice=="7":forletter,namesinprocessed_data["grouped_names"].items():print(f"Names starting with {letter}: {names}")elifchoice=="8":forname,countinprocessed_data["name_frequencies"].items():print(f"{name}: {count}")elifchoice=="9":breakelse:print("Invalid choice")
Respons
importrandomfromfakerimportFakerdefgenerate_names(num_names=10):fake=Faker()return[fake.name()for_inrange(num_names)]deftransform_names(names):upper_names=[name.upper()fornameinnames]lower_names=[name.lower()fornameinnames]reversed_names=[name[::-1]fornameinnames]acronym_names=["".join(word[0]forwordinname.split())fornameinnames]reversed_acronym_names=["".join(word[0]forwordinname.split())[::-1]fornameinnames]#Added reversed acronymreturnupper_names,lower_names,reversed_names,acronym_names,reversed_acronym_namesdefcalculate_statistics(names):name_lengths=[len(name)fornameinnames]average_length=sum(name_lengths)/len(name_lengths)ifname_lengthselse0max_length=max(name_lengths)ifname_lengthselse0min_length=min(name_lengths)ifname_lengthselse0returnaverage_length,max_length,min_lengthdefgroup_by_first_letter(names):grouped_data={}fornameinnames:grouped_data.setdefault(name[0],[]).append(name)returngrouped_datadefanalyze_name_frequencies(names):name_counts={}fornameinnames:name_counts[name]=name_counts.get(name,0)+1returnname_countsdefget_user_input():choice=input("Enter your choice: ")returnchoicedefdisplay_menu():print("Menu:")print("1. Display original names")print("2. Display uppercased names")print("3. Display lowercased names")print("4. Display reversed names")print("5. Display acronym names")print("6. Display reversed acronym names")#Added menu optionprint("7. Display name statistics")print("8. Display names grouped by first letter")print("9. Display name frequencies")print("10. Exit")returnget_user_input()defmain():names=generate_names()upper_names,lower_names,reversed_names,acronym_names,reversed_acronym_names=transform_names(names)avg_length,max_length,min_length=calculate_statistics(names)grouped_names=group_by_first_letter(names)name_frequencies=analyze_name_frequencies(names)processed_data={"original_names":names,"upper_names":upper_names,"lower_names":lower_names,"reversed_names":reversed_names,"acronym_names":acronym_names,"reversed_acronym_names":reversed_acronym_names,"average_length":avg_length,"max_length":max_length,"min_length":min_length,"grouped_names":grouped_names,"name_frequencies":name_frequencies}whileTrue:choice=display_menu()try:choice=int(choice)ifchoice==1:print(processed_data["original_names"])elifchoice==2:print(processed_data["upper_names"])elifchoice==3:print(processed_data["lower_names"])elifchoice==4:print(processed_data["reversed_names"])elifchoice==5:print(processed_data["acronym_names"])elifchoice==6:print(processed_data["reversed_acronym_names"])elifchoice==7:print(f"Average name length: {processed_data['average_length']}")print(f"Maximum name length: {processed_data['max_length']}")print(f"Minimum name length: {processed_data['min_length']}")elifchoice==8:forletter,namesinprocessed_data["grouped_names"].items():print(f"Names starting with {letter}: {names}")elifchoice==9:forname,countinprocessed_data["name_frequencies"].items():print(f"{name}: {count}")elifchoice==10:breakelse:print("Invalid choice")exceptValueError:print("Invalid input. Please enter a number.")if__name__=="__main__":main()
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-01-31 UTC."],[],[]]