Chương trình đếm số chữ cái và chữ số trong câu bị sai

tình hình là em có chép code 1 bài ở quản trị mạng, chương trình vẫn chạy được không hề báo sai nhưng cách hoạt động lại có vấn đề, đề bài như sau ạ:

Viết một chương trình chấp nhận đầu vào là một câu, đếm số chữ cái và chữ số trong câu đó. Giả sử đầu vào sau được cấp cho chương trình: hello world! 123
Thì đầu ra sẽ là:
Số chữ cái là: 10
Số chữ số là: 3

s = input("Nhập câu của bạn: ")
d={"DIGITS":0, "LETTERS":0}
for c in s:
 if c.isdigit():
 d["DIGITS"]+=1
 elif c.isalpha():
 d["LETTERS"]+=1
 else:
 pass
print ("Số chữ cái là:", d["LETTERS"])
print ("Số chữ số là:", d["DIGITS"])

Và vấn đề ở đây là khi em nhập số trước thì chương trình chỉ thực thi việc đếm chữ số, còn khi em nhập chữ trước thì chương trình lại chỉ thực thi việc đếm chữ cái. Chứ không thực hiện cả 2 được, kể cả em thêm dấu phẩy, nếu viết liền số và chữ lại không in ra gì ạ. Em đang dùng Python 3.8.1. Mong mọi người chỉ giúp em, tiện thể mọi người có cách viết nào để chỉ nhập cụm ký tự như: afbfaldf123xyz assssjj333368ks mà đếm được số chữ cái và số chữ số in ra màn hình không ạ. Em xin cảm ơn

Bạn vui lòng đọc:

3 Likes

Sau khi sửa lại cú pháp thì chạy ngon ơ mà :slight_smile: https://repl.it/repls/SpottedFavorableAnalysis

p/s: dùng biến với tuple được rồi, ko nên dùng dict nhiều.

4 Likes

vâng bác, em sẽ nghiên cứu và sửa lại xem

em giờ mới thời gian xem lại, hóa ra nó có vấn đề do em không viết 2 câu lệnh print cuối vào đầu dòng ạ. Nên chắc chương trình tưởng chưa kết thúc hẳn vòng lặp nên không thể chạy đúng cách phải không ạ? Hay là gì hả anh

dù sao cũng cảm ơn anh nhiều, em bất cẩn quá

Vì bạn viết pass ngang hàng với else!

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