Tôi có một chương trình in ra tiến trình của nó cho bảng điều khiển. Cứ sau 20 bước, nó in số bước như 10 20 30, v.v. Nhưng trong đó, nó in một dấu chấm. Điều này được in bằng cách sử dụng câu lệnh in với dấu phẩy ở cuối (Python 2.x)
if epoch % 10 == 0: print epoch, else: print ".",Thật không may, tôi nhận thấy rằng các dấu chấm được in ngoài nhau, như thế này:
0 . . . . . . . . . 10 . . . . . . . . . 20 . . . . . . . . . 30Tôi muốn điều này chặt chẽ hơn, như sau:
0.........10.........20.........30Trong ngôn ngữ Visual Basic, chúng ta có thể nhận được biểu mẫu này nếu chúng ta thêm một dấu chấm phẩy vào cuối câu lệnh in thay vì dấu phẩy. Có một cách tương tự để làm như vậy trong Python, hoặc một hướng dẫn để có được đầu ra chặt chẽ hơn?
Note:
Với tất cả lời cảm ơn và tôn trọng tất cả những người đã trả lời, tôi nhận thấy rằng một số người trong số họ đã xem xét sự thay đổi trong 'Epoch' xảy ra kịp thời. Trên thực tế, nó không phải là, vì nó xảy ra sau khi hoàn thành một số lần lặp, có thể mất từ một phần hai đến vài phút.
Đây là một câu hỏi rất mới cho bài viết đầu tiên của tôi, có lẽ một cách thích hợp.
appropriately.
Tôi muốn in '....' dần dần, như một chỉ số tiến bộ. Tôi có một vòng lặp mà cứ sau 10 bước thực thi: in '.',
for-loop that every 10 steps executes:
print '.',
Điều này dẫn đến một cái gì đó như 'tải. . . . ', Trong khi tôi muốn' tải .... '
'Loading....'
Một con thú cưng, tôi không thể cho cuộc sống của tôi tìm ra cách để có được đầu ra mong muốn này.
desired output. How do I print dots - or anything for that matter - in
sequence without a space being inserted in between?
Cảm ơn. BJ�rn
Bj�rn
22 tháng 5 '07 #1
Beertje đã viết:
Đây là một câu hỏi rất mới cho bài viết đầu tiên của tôi, có lẽ một cách thích hợp.
appropriately.Tôi muốn in '....' dần dần, như một chỉ số tiến bộ. Tôi có một vòng lặp mà cứ sau 10 bước thực thi: in '.',
for-loop that every 10 steps executes:
print '.',Điều này dẫn đến một cái gì đó như 'tải. . . . ', Trong khi tôi muốn' tải .... '
'Loading....'Một con thú cưng, tôi không thể cho cuộc sống của tôi tìm ra cách để có được đầu ra mong muốn này.
desired output.
Tôi thích sự thiếu hiểu biết.
Làm cách nào để in chấm - hoặc bất cứ điều gì cho vấn đề đó - theo trình tự mà không có khoảng trống được chèn vào giữa?
sequence without a space being inserted in between?
>> nhập sys, thời gian i trong phạm vi (10):
for i in range(10):
.... sys.stdout.write (".") .... sys.stdout.flush () .... Time.s ngủ (.1) .... .......... . >>>
.... sys.stdout.flush()
.... time.sleep(.1)
....
...........>>>
viết () bài viết, Flush () là đánh bại bộ đệm; Không có nó, các dấu chấm sẽ được giữ lại cho đến khi dòng mới tiếp theo. Cuộc gọi thời gian.s ngủ () là bạn có thể thấy nó thực sự là một chấm tại một thời điểm.
dots would be withhold until
the next newline. The time.sleep() call is
that you can see it is actually one dot at a time.
Peter
22 tháng 5 '07 #2
Beertje đã viết:
Đây là một câu hỏi rất mới cho bài viết đầu tiên của tôi, có lẽ một cách thích hợp.
appropriately.Tôi muốn in '....' dần dần, như một chỉ số tiến bộ. Tôi có một vòng lặp mà cứ sau 10 bước thực thi: in '.',
for-loop that every 10 steps executes:
print '.',Điều này dẫn đến một cái gì đó như 'tải. . . . ', Trong khi tôi muốn' tải .... '
'Loading....'Một con thú cưng, tôi không thể cho cuộc sống của tôi tìm ra cách để có được đầu ra mong muốn này. Làm cách nào để in chấm - hoặc bất cứ điều gì cho vấn đề đó - theo trình tự mà không có khoảng trống được chèn vào giữa?
desired output. How do I print dots - or anything for that matter - in
sequence without a space being inserted in between?Cảm ơn. BJ�rn
Bj�rn
Tôi đã viết cái này được tặng cho Python Cookbook một thời gian trước, thưởng thức.
//aspn.activestate.com/aspn/coo.../recipe/299207
-Larry
22 tháng 5 '07 #4
Beertje đã viết:
Đây là một câu hỏi rất mới cho bài viết đầu tiên của tôi, có lẽ một cách thích hợp.
appropriately.Tôi muốn in '....' dần dần, như một chỉ số tiến bộ. Tôi có một vòng lặp mà cứ sau 10 bước thực thi: in '.',
for-loop that every 10 steps executes:
print '.',Điều này dẫn đến một cái gì đó như 'tải. . . . ', Trong khi tôi muốn' tải .... '
'Loading....'Một con thú cưng, tôi không thể cho cuộc sống của tôi tìm ra cách để có được đầu ra mong muốn này. Làm cách nào để in chấm - hoặc bất cứ điều gì cho vấn đề đó - theo trình tự mà không có khoảng trống được chèn vào giữa?
desired output. How do I print dots - or anything for that matter - in
sequence without a space being inserted in between?Cảm ơn. BJ�rn
Bj�rn
Tôi đã viết cái này được tặng cho Python Cookbook một thời gian trước, thưởng thức.
//aspn.activestate.com/aspn/coo.../recipe/299207
-Larry
22 tháng 5 '07 #4
Xem ví dụ ở đây:
22 tháng 5 '07 #5
5 ví dụ mã Python được tìm thấy liên quan đến "chấm in". Bạn có thể bỏ phiếu cho những người bạn thích hoặc bỏ phiếu cho những người bạn không thích và đi đến dự án gốc hoặc tệp nguồn bằng cách theo các liên kết trên mỗi ví dụ. print dots". You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example.
ví dụ 1
def print_dots(current, total, start=False, end=False): """Built in callback function used by Thread classes for printing status """ if SHUTDOWN_EVENT.isSet(): return sys.stdout.write('.') if current + 1 == total and end is True: sys.stdout.write('\n') sys.stdout.flush()
Ví dụ 2
def print_dots(time_delta=1.0): """ Print out a dot every time_delta seconds. Loop after three dots. """ dot_count = 0 while True: if logging.getLogger().getEffectiveLevel() <= logging.INFO: dot_count = (dot_count % 3) + 1 print(("." * dot_count) + (" " * 3), end="\r") sys.stdout.flush() time.sleep(time_delta)
Ví dụ 3
def print_dots(current, total, start=False, end=False): """Built in callback function used by Thread classes for printing status """ if SHUTDOWN_EVENT.isSet(): return sys.stdout.write('.') if current + 1 == total and end is True: sys.stdout.write('\n') sys.stdout.flush()
Ví dụ 4
def printDots(wait_time, stop_event): while (not stop_event.is_set()): print ".", stop_event.wait(wait_time) pass
Ví dụ 5
def print_dots(current, total, start=False, end=False): """Built in callback function used by Thread classes for printing status """ if SHUTDOWN_EVENT.isSet(): return sys.stdout.write('.') if current + 1 == total and end is True: sys.stdout.write('\n') sys.stdout.flush()