Hướng dẫn how do you count vowels and consonants in a file in python? - làm thế nào để bạn đếm các nguyên âm và phụ âm trong một tệp bằng python?

Tôi cần tạo một chương trình sẽ đọc một tệp văn bản và in có bao nhiêu nguyên âm và phụ âm. Tôi tạo một tệp văn bản để kiểm tra và điều duy nhất trong đó là "Đây là một bài kiểm tra". Tuy nhiên, đầu ra luôn luôn:

Nhập tệp để kiểm tra: test.txt

Số lượng nguyên âm là: 1

Số lượng phụ âm là: 0

fileName = input["Enter the file to check: "].strip[]

infile = open[fileName, "r"]


vowels = set["A E I O U a e i o u"]
cons = set["b c d f g h j k l m n p q r s t v w x y z B C D F G H J K L M N P Q R S T V W X Y Z"]

text = infile.read[].split[]


countV = 0
for V in text:
    if V in vowels:
        countV += 1

countC = 0
for C in text:
    if C in cons:
        countC += 1

print["The number of Vowels is: ",countV,"\nThe number of consonants is: ",countC]

Nếu có một cách tốt hơn để nhập các giá trị cho các nguyên âm và nhược điểm tôi cũng muốn biết, vì tôi gặp lỗi khi tôi cố gắng người dùng .lower [] để chuyển đổi mọi thứ trong tệp thành chữ thường .....

cs95

350K87 Huy hiệu vàng643 Huy hiệu bạc694 Huy hiệu Đồng87 gold badges643 silver badges694 bronze badges

Hỏi ngày 6 tháng 8 năm 2017 lúc 18:46Aug 6, 2017 at 18:46

1

  1. set["A E I O U a e i o u"] sẽ dẫn đến {' ', 'A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u'}. Nếu bạn nhận thấy, không gian cũng được xem xét. Bạn sẽ cần phải loại bỏ các khoảng trống giữa các chữ cái.

  2. infile.read[].split[] sẽ phân chia dựa trên khoảng trắng để bạn có được một danh sách các từ. Sau đó, bạn tiến hành lặp lại các từ và thử so sánh thành viên giữa các từ và các chữ cái. Điều này sẽ không làm việc cho bạn.

  3. Bạn không cần lặp lại hai lần. Một lần là đủ.

Đây là phiên bản làm sạch mã của bạn.

vowels = set["AEIOUaeiou"]
cons = set["bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ"]

countV = 0
countC = 0
for c in infile.read[]:
    if c in vowels:
        countV += 1
    elif c in cons:
        countC += 1

Là một cải tiến, hãy xem xét việc sử dụng collections.Counter. Nó thực hiện việc đếm cho bạn, và bạn chỉ cần tổng hợp số đếm.

import collections
c = collections.Counter[infile.read[]]

countV = sum[c[k] for k in c if k in vowels]
countC = sum[c[k] for k in c if k in cons]

Đã trả lời ngày 6 tháng 8 năm 2017 lúc 18:52Aug 6, 2017 at 18:52

cs95cs95cs95

350K87 Huy hiệu vàng643 Huy hiệu bạc694 Huy hiệu Đồng87 gold badges643 silver badges694 bronze badges

3

Hỏi ngày 6 tháng 8 năm 2017 lúc 18:46

import re
text = re.split["\s+", re.sub["[.,\n+]", " ", infile.read[]]]

set["A E I O U a e i o u"] sẽ dẫn đến {' ', 'A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u'}. Nếu bạn nhận thấy, không gian cũng được xem xét. Bạn sẽ cần phải loại bỏ các khoảng trống giữa các chữ cái.

infile.read[].split[] sẽ phân chia dựa trên khoảng trắng để bạn có được một danh sách các từ. Sau đó, bạn tiến hành lặp lại các từ và thử so sánh thành viên giữa các từ và các chữ cái. Điều này sẽ không làm việc cho bạn.May 10, 2018 at 19:58

Bạn không cần lặp lại hai lần. Một lần là đủ.Rodolfo Alvarez

Đây là phiên bản làm sạch mã của bạn.2 gold badges10 silver badges18 bronze badges

fileName = input["Enter the file to check: "].strip[]

infile = open[fileName, "r"]
  
vowels = set["A E I O U a e i o u"]
cons = set["b c d f g h j k l m n p q r s t v w x y z B C D F G H J K L M N P Q R S T V W X Y Z"]

text = infile.read[].split[]
    
countV = 0
for V in text:
    if V in vowels:
        countV += 1

countC = 0
for C in text:
    if C in cons:
        countC += 1

print["The number of Vowels is: ", countV, "\nThe number of consonants is: ", countC]

Là một cải tiến, hãy xem xét việc sử dụng collections.Counter. Nó thực hiện việc đếm cho bạn, và bạn chỉ cần tổng hợp số đếm.

Đã trả lời ngày 6 tháng 8 năm 2017 lúc 18:5210 gold badges41 silver badges48 bronze badges

Nếu tệp đầu vào fileName chứa các ký tự khác với các nguyên âm và phụ âm như

vowels = set["AEIOUaeiou"]
cons = set["bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ"]

countV = 0
countC = 0
for c in infile.read[]:
    if c in vowels:
        countV += 1
    elif c in cons:
        countC += 1
0, một giải pháp là sử dụng
vowels = set["AEIOUaeiou"]
cons = set["bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ"]

countV = 0
countC = 0
for c in infile.read[]:
    if c in vowels:
        countV += 1
    elif c in cons:
        countC += 1
1 và
vowels = set["AEIOUaeiou"]
cons = set["bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ"]

countV = 0
countC = 0
for c in infile.read[]:
    if c in vowels:
        countV += 1
    elif c in cons:
        countC += 1
2 thay vì phương thức
vowels = set["AEIOUaeiou"]
cons = set["bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ"]

countV = 0
countC = 0
for c in infile.read[]:
    if c in vowels:
        countV += 1
    elif c in cons:
        countC += 1
3:Feb 23 at 15:47

Làm thế nào để bạn đếm các phụ âm và nguyên âm trong Python?

Algorithm..
Xác định một chuỗi ..
Chuyển đổi chuỗi thành chữ thường để có thể giảm so sánh. ....
Nếu bất kỳ ký tự nào trong chuỗi khớp với các nguyên âm [A, E, I, O, U] thì hãy tăng vcount lên 1 ..
Nếu bất kỳ ký tự nào nằm giữa 'A' và 'Z' ngoại trừ các nguyên âm, thì hãy tăng số lượng cho CCount lên 1 ..
In cả số đếm ..

Làm thế nào để bạn đếm các chữ cái trong một tệp trong Python?

Xem xét tệp văn bản sau ...
Tệp văn bản.....
Chương trình Python #Open Tệp trong Chế độ Đọc tệp = Mở ["C: \ data.txt", "R"] #Đọc nội dung của tệp dữ liệu = file.read []] in ['số lượng ký tự trong tệp văn bản:', number_of_characters].

Làm thế nào để bạn đếm các phụ âm trong một danh sách trong Python?

Để đếm số lượng nguyên âm và phụ âm trong một chuỗi, chúng tôi lặp lại bằng cách sử dụng vòng lặp qua từng ký tự của chuỗi và kiểm tra xem nó có khớp với nguyên âm không. Nếu có, chúng tôi tăng bộ đếm nguyên âm khác tăng bộ đếm phụ âm.iterate using a for loop through each character of the string and check if it matches a vowel. If yes then, we increment the vowel counter otherwise increment the consonant counter.

Làm thế nào để bạn đếm một số nguyên âm và phụ âm trong một chuỗi nhất định?

Approach:..
Lấy chuỗi làm đầu vào ..
Lấy từng ký tự từ chuỗi này để kiểm tra ..
Nếu ký tự này là một nguyên âm, hãy tăng số lượng nguyên âm ..
Khác tăng số lượng phụ âm ..
In tổng số nguyên âm và phụ âm cuối cùng ..

Bài Viết Liên Quan

Chủ Đề