1. python中怎麼用控制台使用方法
本文實例講述了Python顯示進度條的方法,是Python程序設計中非常實用的技巧。分享給大家供大家參考。具體方法如下:
首先,進度條和一般的print區別在哪裡呢?
答案就是print會輸出一個\n,也就是換行符,這樣游標移動到了下一行行首,接著輸出,之前已經通過stdout輸出的東西依舊保留,而且保證我們在下面看到最新的輸出結果。
進度條不然,我們必須再原地輸出才能保證他是一個進度條,否則換行了怎麼還叫進度條?
最簡單的辦法就是,再輸出完畢後,把游標移動到行首,繼續在那裡輸出更長的進度條即可實現,新的更長的進度條把舊的短覆蓋,就形成了動畫效果。
可以想到那個轉義符了吧,那就是\ r。
轉義符r就可以把游標移動到行首而不換行,轉義符n就把游標移動到行首並且換行。
在python中,輸出stdout(標准輸出)可以使用sys.stdout.write
例如:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2
#Author: [email protected]
##2010-10-27 22:07
"""
Usage:
Just A Template
"""
from __future__ import division
import sys,time
j = '#'
if __name__ == '__main__':
for i in range(1,61):
j += '#'
sys.stdout.write(str(int((i/60)*100))+'% ||'+j+'->'+"\r")
sys.stdout.flush()
time.sleep(0.5)
print
第二種思路是用轉義符\b
轉義符\b是退格鍵,也就是說把輸出的游標往回退格子,這樣就可以不用+=了,例如:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2
#Author: [email protected]
#2010-10-27 22:07
"""
Usage:
Just A Template
"""
from __future__ import division
import sys,time
if __name__ == '__main__':
for i in range(1,61):
sys.stdout.write('#'+'->'+"\b\b")
sys.stdout.flush()
time.sleep(0.5)
print
游標回退2格,寫個#再回退,再寫,達到增長的目的了
不過寫這么多似乎是廢話,在耳邊常常聽到一句話:那就是不要重復造輪子。實際上python有豐富發lib幫你實現這個東西,你完全可以把心思放在邏輯開發上而不用注意這些小細節
下面要介紹的就是這個類「progressbar」,使用easy_install可以方便的安裝這個類庫,其實就一個文件,拿過來放到文件同一個目錄下面也直接可以import過來
如下圖所示:
下面就是基本使用舉例:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2
#Author: [email protected]
#2010-10-27 22:53
"""
Usage:
Just A Template
"""
from __future__ import division
import sys,time
from progressbar import *
total = 1000
#基本用法
progress = ProgressBar()
for i in progress(range(total)):
time.sleep(0.01)
pbar = ProgressBar().start()
for i in range(1,1000):
pbar.update(int((i/(total-1))*100))
time.sleep(0.01)
pbar.finish()
#高級用法
widgets = ['Progress: ', Percentage(), ' ', Bar(marker=RotatingMarker('>-=')),
' ', ETA(), ' ', FileTransferSpeed()]
pbar = ProgressBar(widgets=widgets, maxval=10000000).start()
for i in range(1000000):
# do something
pbar.update(10*i+1)
time.sleep(0.0001)
pbar.finish()
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# coding:utf-8
import sys
import time
from progressbar import AnimatedMarker, Bar, BouncingBar, Counter, ETA, \
FileTransferSpeed, FormatLabel, Percentage, \
ProgressBar, ReverseBar, RotatingMarker, \
SimpleProgress, Timer
examples = []
def example(fn):
try:
name = 'Example %d' % int(fn.__name__[7:])
except:
name = fn.__name__
def wrapped():
try:
sys.stdout.write('Running: %s\n' % name)
fn()
sys.stdout.write('\n')
except KeyboardInterrupt:
sys.stdout.write('\nSkipping example.\n\n')
examples.append(wrapped)
return wrapped
@example
def example0():
pbar = ProgressBar(widgets=[Percentage(), Bar()], maxval=300).start()
for i in range(300):
time.sleep(0.01)
pbar.update(i + 1)
pbar.finish()
@example
def example1():
widgets = ['Test: ', Percentage(), ' ', Bar(marker=RotatingMarker()),
' ', ETA(), ' ', FileTransferSpeed()]
pbar = ProgressBar(widgets=widgets, maxval=10000000).start()
for i in range(1000000):
# do something
pbar.update(10 * i + 1)
pbar.finish()
@example
def example2():
class CrazyFileTransferSpeed(FileTransferSpeed):
"""It's bigger between 45 and 80 percent."""
def update(self, pbar):
if 45 < pbar.percentage() < 80:
return 'Bigger Now ' + FileTransferSpeed.update(self, pbar)
else:
return FileTransferSpeed.update(self, pbar)
widgets = [CrazyFileTransferSpeed(), ' <<<', Bar(), '>>> ',
Percentage(), ' ', ETA()]
pbar = ProgressBar(widgets=widgets, maxval=10000000)
# maybe do something
pbar.start()
for i in range(2000000):
# do something
pbar.update(5 * i + 1)
pbar.finish()
@example
def example3():
widgets = [Bar('>'), ' ', ETA(), ' ', ReverseBar('<')]
pbar = ProgressBar(widgets=widgets, maxval=10000000).start()
for i in range(1000000):
# do something
pbar.update(10 * i + 1)
pbar.finish()
@example
def example4():
widgets = ['Test: ', Percentage(), ' ',
Bar(marker='0', left='[', right=']'),
' ', ETA(), ' ', FileTransferSpeed()]
pbar = ProgressBar(widgets=widgets, maxval=500)
pbar.start()
for i in range(100, 500 + 1, 50):
time.sleep(0.2)
pbar.update(i)
pbar.finish()
@example
def example5():
pbar = ProgressBar(widgets=[SimpleProgress()], maxval=17).start()
for i in range(17):
time.sleep(0.2)
pbar.update(i + 1)
pbar.finish()
@example
def example6():
pbar = ProgressBar().start()
for i in range(100):
time.sleep(0.01)
pbar.update(i + 1)
pbar.finish()
@example
def example7():
pbar = ProgressBar() # Progressbar can guess maxval automatically.
for i in pbar(range(80)):
time.sleep(0.01)
@example
def example8():
pbar = ProgressBar(maxval=80) # Progressbar can't guess maxval.
for i in pbar((i for i in range(80))):
time.sleep(0.01)
@example
def example9():
pbar = ProgressBar(widgets=['Working: ', AnimatedMarker()])
for i in pbar((i for i in range(50))):
time.sleep(.08)
@example
def example10():
widgets = ['Processed: ', Counter(), ' lines (', Timer(), ')']
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(150))):
time.sleep(0.1)
@example
def example11():
widgets = [FormatLabel('Processed: %(value)d lines (in: %(elapsed)s)')]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(150))):
time.sleep(0.1)
@example
def example12():
widgets = ['Balloon: ', AnimatedMarker(markers='.oO<a href="">@*</a> ')]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(24))):
time.sleep(0.3)
@example
def example13():
# You may need python 3.x to see this correctly
try:
widgets = ['Arrows: ', AnimatedMarker(markers='←↖↑↗→↘↓↙')]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(24))):
time.sleep(0.3)
except UnicodeError:
sys.stdout.write('Unicode error: skipping example')
@example
def example14():
# You may need python 3.x to see this correctly
try:
widgets = ['Arrows: ', AnimatedMarker(markers='◢◣◤◥')]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(24))):
time.sleep(0.3)
except UnicodeError:
sys.stdout.write('Unicode error: skipping example')
@example
def example15():
# You may need python 3.x to see this correctly
try:
widgets = ['Wheels: ', AnimatedMarker(markers='◐◓◑◒')]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(24))):
time.sleep(0.3)
except UnicodeError:
sys.stdout.write('Unicode error: skipping example')
@example
def example16():
widgets = [FormatLabel('Bouncer: value %(value)d - '), BouncingBar()]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(180))):
time.sleep(0.05)
@example
def example17():
widgets = [FormatLabel('Animated Bouncer: value %(value)d - '),
BouncingBar(marker=RotatingMarker())]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(180))):
time.sleep(0.05)
@example
def example18():
widgets = [Percentage(),
' ', Bar(),
' ', ETA(),
' ', AdaptiveETA()]
pbar = ProgressBar(widgets=widgets, maxval=500)
pbar.start()
for i in range(500):
time.sleep(0.01 + (i < 100) * 0.01 + (i > 400) * 0.9)
pbar.update(i + 1)
pbar.finish()
@example
def example19():
pbar = ProgressBar()
for i in pbar([]):
pass
pbar.finish()
try:
for example in examples:
example()
except KeyboardInterrupt:
sys.stdout('\nQuitting examples.\n')
2. python console控制台 怎麼調用函數
定義一個函數只給了函數一個名稱,指定了函數里包含的參數,和代碼塊結構。這個函數的基本結構完成以後,你可以通過另一個函數調用執行,也可以直接從Python提示符執行。如下實例調用了printme()函數:復制代碼 代碼如下:#!/usr/bin/python# Function definition is heredef printme( str ):"列印任何傳入的字元串"print str;return;# Now you can call printme functionprintme("我要調用用戶自定義函數!");printme("再次調用同一函數");#以上實例輸出結果:#我要調用用戶自定義函數!#再次調用同一函數
3. 使用python自動向console輸入文字
ulipad
可能沒有自動將輸出轉換編碼。\r\n\\「測試\\」兩個字在python2.7下,應該是utf-8編碼。\r\n\r\n你在windows下需要unicde或者是gbk或者是gb18030編碼。\r\n\r\n轉換一下就好了。\r\n\r\n如果在console狀態下用unicode,如果使用管道,或者是文件,就需要編碼。\r\n\r\n比如用utf-8或者是gb18030。\r\n\r\n如果你希望正確顯示漢字,通常要與操作系統locale編碼相同。不同的操作系統的當前預設編碼不一樣。要自己試驗。
4. pycharm下的Python console 怎麼不能調試當前程序
兩種方法:
方法一:選中要運行的代碼,右鍵Execute Selection in Console(Alt + Shift + E)。
方法二:菜單欄——Run——Edit Configuration——勾選Show command line afterwards。
5. spyder consoles 怎麼使用 python console
1、ycharm每次RUN都會打開一個新的python Console,不利於觀察數據結果。
6. 怎麼設置pycharm的python console輸出界面
在網上下載pycharm安裝包雙擊運行進入安裝向導界面
7. 蘋果電腦上的python console怎麼用
您好,方法
選擇anaconda的python,還可以看到各個安裝包。 在pycharm中可以找到控制台,在tools->python console中。
選中要運行的代碼,右鍵Execute Selection in Console(Alt + Shift + E)。
菜單欄——Run——Edit Configuration——勾選Show command line afterwards。
此類支持Windows控制台列印字體 字體顏色定義 ,關鍵在於顏色編碼,由2位十六進制組成,分別取0~f,前一位指的是背景色,後一位指的是字體色 由於該函數的限制,應該是只有這16種,可以前景色與背景色組合。也可以幾種顏色通過或運算組。
假設你需要的是一個將字元串列印輸出到命令行中的函數 Python中對應的函數是print 根據你使用的版本略有不同 如果是Python2,可以使用 print "Hello world!"如果是Python3,可以使用 print("Hello world!")。
8. 怎麼設置pycharm下的python console
從文末鏈接或者Jetbrains官網下載安裝包,雙擊進行安裝;可選擇pycharm作為打開.py文件的默認安裝程序
2
下一步,直至安裝完成。這時候PyCharm就自動運行了。由於是首次使用,我們對下面的彈出窗口依次選擇默認選項即可。
END
開發環境配置
1
安裝完成後,我們的PyCharm是這個樣子的。點擊新建項目。
2
在彈出窗口中,我們可以看到使用的Python版本。如果我們安裝有多個Python環境,可以在設置中進行添加
3
為了方便我們存放PyCharm工程文件,我們最好設置一下工程目錄
END
開發環境測試
1
首先在工程下新建目錄,新建Python文件
2
然後輸入代碼並運行。如果成功輸出「hello world」那麼說明我們的設置就完成了
END
IDE設置
輸出窗口設置
筆者習慣把窗口放在右側,這樣就給了代碼更多空間。
行號設置
字體設置
需要先點擊另存為之後,才可以修改字體
中文設置
Python3 默認編碼UTF-8直接支持中文
Python2 需要在添加# -*-coding:gbk-*-在代碼頭部,並且需要對中文進行u前綴處理,如:u"你好"
開發環境切換
可以方便的在Python3和Python2環境之間進行切換,當然,代碼需要我們自己修改,幸好我們可以新建不同的項目~