30/09/2018, 23:49
Print trong python
E muốn tạo một chương trình: khi người ta nhập tên vào chương trình sẽ in ra tên người đó bằng dấu ‘*’
e đang gặp khó khi print chữ ra nhập vào print ra không đúng ý muốn @@! đặc biệt là không biết chạy for làm sao để print nhiều chữ một lúc
Bài liên quan
Định nghĩa character vậy không hay, nên định nghĩa 1 character là 1 string thôi, lúc đó print ra sẽ dễ hơn, VD:
Lúc đó khối for cuối cùng bạn chỉ cần viết:
Góp ý: trong code bạn có 1 số chỗ dùng chưa hay, mình thấy chưa tận dụng dc thế mạnh sytax python, như:
Cuối cùng là code nên để vào Markdown cho người khác dẽ copy mà test, có 1 file code mà bạn chụp 3 tấm hình
Bạn nên tạo 1
dict
với key làa, b, c
, value là các string ascii. Lưu ý dùng triple quote'''
cho value.Nói chung là mình không rõ lắm nhưng mình đề xuất ý kiến như thế này:
Bạn thử cách này xem sao.
lúc đầu e làm như thế đó nhưng như vậy có print ngang được mô?
nhưng nếu ở đây là nhiều chữ thì nó sẽ in theo hàng dọc nó không theo hàng ngang -__- khó là khó vậy =]]
Chuyện gì lạ vậy? Bạn có thể post code lên diễn đàn hay đâu đó để mình thử xem sao.
Mà nếu quá nhiều chữ thì màn hình console không chứa hết, chỉ cần di chuyển output vào 1 file rồi xem kết quả là xong.
Nếu bạn muốn nói là
print
tự xuống dòng không theo ý muốn thì bạn coi kỹ lại code của mình, để ý dấu','
. Khi sử dụngprint "Hello",
thìprint
sẽ in ra “Hello” và 1 khoảng trắng thay vì ký tự xuống dòng.Mình không biết python nên mình dùng java nhé.
Mình nghĩ bạn nên cho mỗi chữ thành một mảng, mỗi phần tử trong mảng là một hàng (Với điều kiện các chữ cái đều phải có cùng số hàng). VD
Rồi bạn dùng 2 vòng for lồng nhau, vòng bên ngoài sẽ đi hết các hàng, vòng bên trong đi hết các chữ cái, rồi in ra hàng tương ứng của từng chữ
for (int hang = 0; hang < tongSoHang; hang++){
for (int chu = 0; chu < tongSoChu; chu++){
in ra hàng thứ “hang” của chữ thứ “chu”
}
}
print
trong Python nó khác vớiprintf
trong C ở chỗ là nó tự động thêm\n
vào cuối, cho nên bạn chỉ in dọc được là đúng rồi. Muốn in ngang, bạn dùngprint(some_str, end=' ')
nhé, nó sẽ thay\n
bằng dấu cách.print
nó còn nhiều thứ hay ho lắm, bạn xem thêm trong Documentation nhé.cái đó thì chỉ có thể in một chữ thôi còn nhiều chữ là đứt liền
khi print nhiều sẽ bị dọc e đã test case đó lâu rồi ạ
Dọc sao được bạn. Mỗi chữ cái nằm trong 1 ô mxn, chỗ nào không muốn đi nét thì thay bằng các dấu cách sao cho thành 1 hình chữ nhật, mình in theo hàng, mỗi hàng kết quả bao gồm hàng của tất cả các chữ mà
Mình nghĩ bạn nên post code để cho mọi người xem xét. (Tụi mình không lấy code của bạn vào thương mại đâu, bạn đừng lo) Việc đó sẽ tốt hơn là bắt mọi người tưởng tượng để đưa ra phương án giải quyết. Tụi mình đang cố gắng giúp bạn và bạn nên tạo điều kiện tốt nhất để tụi mình có thể giúp bạn nhé. Vì việc ngồi tìm hay gõ ra mấy chữ “a”, “b”, “c”,… bằng dấu sao thì hơi phiền.
P/s: bạn nên thử đặt mình vào vai trò người giúp đỡ để xem có thể trả lời cho vướng mắc của bạn được không nha.
e mới hoàn thành xong =]]] hahaha
cái print(some_str, end=’ ') cái đó e test thì nó không được
hình như là nó dành cho python 3 thì phải còn e thì dùng python 2
Python 2 thì dùng
print some_str,
hoặcsys.stdout.write(some_str)
. Cả 2 đều không xuống dòng bạn nhé. (Lưu ý dấu phẩy phía cuốisome_str
, không phải lỗi cú pháp đâu).À ờ, mình xin lỗi không để ý .
Nhưng có một cách để có thể dùng
print()
của Python3 trong Python2 (nhưng lại không thể dùngprint
statement kiểu cũ nữa):from __future__ import print_function
Hoặc bạn có thể ghi trực tiếp ra standart output như @aliston nói. Bản chất của
print
cũng là từ đây mà ra cả).P/s:
__future__
module là một thư viện để mang những tính năng của Python3 lên Python2.mình không biết nhiều nên lúc đó mình chỉ nghĩ được một cách duy nhất để print ngang đó là để dòng chữ ở trong list 1 chữ = 1 list 8 value
Và??? Cho vào trong list rồi làm gì tiếp nhỉ? Mình không hiểu ý tưởng của bạn lắm.
đây là cái mình làm